summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/expressions.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sqlglot/expressions.html')
-rw-r--r--docs/sqlglot/expressions.html25871
1 files changed, 14156 insertions, 11715 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index e4c3a7b..a536c56 100644
--- a/docs/sqlglot/expressions.html
+++ b/docs/sqlglot/expressions.html
@@ -75,6 +75,9 @@
<a class="function" href="#Expression.copy">copy</a>
</li>
<li>
+ <a class="function" href="#Expression.add_comments">add_comments</a>
+ </li>
+ <li>
<a class="function" href="#Expression.append">append</a>
</li>
<li>
@@ -165,12 +168,18 @@
<a class="function" href="#Condition.not_">not_</a>
</li>
<li>
+ <a class="function" href="#Condition.as_">as_</a>
+ </li>
+ <li>
<a class="function" href="#Condition.isin">isin</a>
</li>
<li>
<a class="function" href="#Condition.between">between</a>
</li>
<li>
+ <a class="function" href="#Condition.is_">is_</a>
+ </li>
+ <li>
<a class="function" href="#Condition.like">like</a>
</li>
<li>
@@ -240,6 +249,12 @@
</li>
<li>
+ <a class="class" href="#Clone">Clone</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Describe">Describe</a>
<ul class="memberlist">
</ul>
@@ -324,6 +339,12 @@
</li>
<li>
+ <a class="class" href="#RawString">RawString</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Column">Column</a>
<ul class="memberlist">
<li>
@@ -375,6 +396,18 @@
</li>
<li>
+ <a class="class" href="#MergeTreeTTLAction">MergeTreeTTLAction</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#MergeTreeTTL">MergeTreeTTL</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#ColumnConstraint">ColumnConstraint</a>
<ul class="memberlist">
</ul>
@@ -611,6 +644,9 @@
<li>
<a class="class" href="#Insert">Insert</a>
<ul class="memberlist">
+ <li>
+ <a class="function" href="#Insert.with_">with_</a>
+ </li>
</ul>
</li>
@@ -762,12 +798,6 @@
</li>
<li>
- <a class="class" href="#AfterJournalProperty">AfterJournalProperty</a>
- <ul class="memberlist">
- </ul>
-
- </li>
- <li>
<a class="class" href="#AlgorithmProperty">AlgorithmProperty</a>
<ul class="memberlist">
</ul>
@@ -984,25 +1014,25 @@
</li>
<li>
- <a class="class" href="#SortKeyProperty">SortKeyProperty</a>
+ <a class="class" href="#SettingsProperty">SettingsProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#SqlSecurityProperty">SqlSecurityProperty</a>
+ <a class="class" href="#SortKeyProperty">SortKeyProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#StabilityProperty">StabilityProperty</a>
+ <a class="class" href="#SqlSecurityProperty">SqlSecurityProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#TableFormatProperty">TableFormatProperty</a>
+ <a class="class" href="#StabilityProperty">StabilityProperty</a>
<ul class="memberlist">
</ul>
@@ -1097,6 +1127,9 @@
<li>
<a class="class" href="#Tuple">Tuple</a>
<ul class="memberlist">
+ <li>
+ <a class="function" href="#Tuple.isin">isin</a>
+ </li>
</ul>
</li>
@@ -1118,6 +1151,9 @@
<li>
<a class="class" href="#Table">Table</a>
<ul class="memberlist">
+ <li>
+ <a class="variable" href="#Table.parts">parts</a>
+ </li>
</ul>
</li>
@@ -1341,85 +1377,88 @@
</li>
<li>
+ <a class="class" href="#DataTypeSize">DataTypeSize</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#DataType">DataType</a>
<ul class="memberlist">
<li>
<a class="class" href="#DataType.Type">DataType.Type</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#DataType.Type.CHAR">CHAR</a>
- </li>
- <li>
- <a class="variable" href="#DataType.Type.NCHAR">NCHAR</a>
+ <a class="variable" href="#DataType.Type.ARRAY">ARRAY</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.VARCHAR">VARCHAR</a>
+ <a class="variable" href="#DataType.Type.BIGDECIMAL">BIGDECIMAL</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.NVARCHAR">NVARCHAR</a>
+ <a class="variable" href="#DataType.Type.BIGINT">BIGINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.TEXT">TEXT</a>
+ <a class="variable" href="#DataType.Type.BIGSERIAL">BIGSERIAL</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.MEDIUMTEXT">MEDIUMTEXT</a>
+ <a class="variable" href="#DataType.Type.BINARY">BINARY</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.LONGTEXT">LONGTEXT</a>
+ <a class="variable" href="#DataType.Type.BIT">BIT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.MEDIUMBLOB">MEDIUMBLOB</a>
+ <a class="variable" href="#DataType.Type.BOOLEAN">BOOLEAN</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.LONGBLOB">LONGBLOB</a>
+ <a class="variable" href="#DataType.Type.CHAR">CHAR</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.BINARY">BINARY</a>
+ <a class="variable" href="#DataType.Type.DATE">DATE</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.VARBINARY">VARBINARY</a>
+ <a class="variable" href="#DataType.Type.DATETIME">DATETIME</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.INT">INT</a>
+ <a class="variable" href="#DataType.Type.DATETIME64">DATETIME64</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.UINT">UINT</a>
+ <a class="variable" href="#DataType.Type.DECIMAL">DECIMAL</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.TINYINT">TINYINT</a>
+ <a class="variable" href="#DataType.Type.DOUBLE">DOUBLE</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.UTINYINT">UTINYINT</a>
+ <a class="variable" href="#DataType.Type.FLOAT">FLOAT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.SMALLINT">SMALLINT</a>
+ <a class="variable" href="#DataType.Type.GEOGRAPHY">GEOGRAPHY</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.USMALLINT">USMALLINT</a>
+ <a class="variable" href="#DataType.Type.GEOMETRY">GEOMETRY</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.BIGINT">BIGINT</a>
+ <a class="variable" href="#DataType.Type.HLLSKETCH">HLLSKETCH</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.UBIGINT">UBIGINT</a>
+ <a class="variable" href="#DataType.Type.HSTORE">HSTORE</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.FLOAT">FLOAT</a>
+ <a class="variable" href="#DataType.Type.IMAGE">IMAGE</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.DOUBLE">DOUBLE</a>
+ <a class="variable" href="#DataType.Type.INET">INET</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.DECIMAL">DECIMAL</a>
+ <a class="variable" href="#DataType.Type.INT">INT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.BIGDECIMAL">BIGDECIMAL</a>
+ <a class="variable" href="#DataType.Type.INT128">INT128</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.BIT">BIT</a>
+ <a class="variable" href="#DataType.Type.INT256">INT256</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.BOOLEAN">BOOLEAN</a>
+ <a class="variable" href="#DataType.Type.INTERVAL">INTERVAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.JSON">JSON</a>
@@ -1428,97 +1467,115 @@
<a class="variable" href="#DataType.Type.JSONB">JSONB</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.INTERVAL">INTERVAL</a>
+ <a class="variable" href="#DataType.Type.LONGBLOB">LONGBLOB</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.TIME">TIME</a>
+ <a class="variable" href="#DataType.Type.LONGTEXT">LONGTEXT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.TIMESTAMP">TIMESTAMP</a>
+ <a class="variable" href="#DataType.Type.MAP">MAP</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.TIMESTAMPTZ">TIMESTAMPTZ</a>
+ <a class="variable" href="#DataType.Type.MEDIUMBLOB">MEDIUMBLOB</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.TIMESTAMPLTZ">TIMESTAMPLTZ</a>
+ <a class="variable" href="#DataType.Type.MEDIUMTEXT">MEDIUMTEXT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.DATE">DATE</a>
+ <a class="variable" href="#DataType.Type.MONEY">MONEY</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.DATETIME">DATETIME</a>
+ <a class="variable" href="#DataType.Type.NCHAR">NCHAR</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.ARRAY">ARRAY</a>
+ <a class="variable" href="#DataType.Type.NULL">NULL</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.MAP">MAP</a>
+ <a class="variable" href="#DataType.Type.NULLABLE">NULLABLE</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.UUID">UUID</a>
+ <a class="variable" href="#DataType.Type.NVARCHAR">NVARCHAR</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.GEOGRAPHY">GEOGRAPHY</a>
+ <a class="variable" href="#DataType.Type.OBJECT">OBJECT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.GEOMETRY">GEOMETRY</a>
+ <a class="variable" href="#DataType.Type.ROWVERSION">ROWVERSION</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.STRUCT">STRUCT</a>
+ <a class="variable" href="#DataType.Type.SERIAL">SERIAL</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.NULLABLE">NULLABLE</a>
+ <a class="variable" href="#DataType.Type.SMALLINT">SMALLINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.HLLSKETCH">HLLSKETCH</a>
+ <a class="variable" href="#DataType.Type.SMALLMONEY">SMALLMONEY</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.HSTORE">HSTORE</a>
+ <a class="variable" href="#DataType.Type.SMALLSERIAL">SMALLSERIAL</a>
+ </li>
+ <li>
+ <a class="variable" href="#DataType.Type.STRUCT">STRUCT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.SUPER">SUPER</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.SERIAL">SERIAL</a>
+ <a class="variable" href="#DataType.Type.TEXT">TEXT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.SMALLSERIAL">SMALLSERIAL</a>
+ <a class="variable" href="#DataType.Type.TIME">TIME</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.BIGSERIAL">BIGSERIAL</a>
+ <a class="variable" href="#DataType.Type.TIMESTAMP">TIMESTAMP</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.XML">XML</a>
+ <a class="variable" href="#DataType.Type.TIMESTAMPTZ">TIMESTAMPTZ</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.UNIQUEIDENTIFIER">UNIQUEIDENTIFIER</a>
+ <a class="variable" href="#DataType.Type.TIMESTAMPLTZ">TIMESTAMPLTZ</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.MONEY">MONEY</a>
+ <a class="variable" href="#DataType.Type.TINYINT">TINYINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.SMALLMONEY">SMALLMONEY</a>
+ <a class="variable" href="#DataType.Type.UBIGINT">UBIGINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.ROWVERSION">ROWVERSION</a>
+ <a class="variable" href="#DataType.Type.UINT">UINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.IMAGE">IMAGE</a>
+ <a class="variable" href="#DataType.Type.USMALLINT">USMALLINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.VARIANT">VARIANT</a>
+ <a class="variable" href="#DataType.Type.UTINYINT">UTINYINT</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.OBJECT">OBJECT</a>
+ <a class="variable" href="#DataType.Type.UNKNOWN">UNKNOWN</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.INET">INET</a>
+ <a class="variable" href="#DataType.Type.UINT128">UINT128</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.NULL">NULL</a>
+ <a class="variable" href="#DataType.Type.UINT256">UINT256</a>
</li>
<li>
- <a class="variable" href="#DataType.Type.UNKNOWN">UNKNOWN</a>
+ <a class="variable" href="#DataType.Type.UNIQUEIDENTIFIER">UNIQUEIDENTIFIER</a>
+ </li>
+ <li>
+ <a class="variable" href="#DataType.Type.UUID">UUID</a>
+ </li>
+ <li>
+ <a class="variable" href="#DataType.Type.VARBINARY">VARBINARY</a>
+ </li>
+ <li>
+ <a class="variable" href="#DataType.Type.VARCHAR">VARCHAR</a>
+ </li>
+ <li>
+ <a class="variable" href="#DataType.Type.VARIANT">VARIANT</a>
+ </li>
+ <li>
+ <a class="variable" href="#DataType.Type.XML">XML</a>
</li>
</ul>
@@ -1539,12 +1596,6 @@
</li>
<li>
- <a class="class" href="#StructKwarg">StructKwarg</a>
- <ul class="memberlist">
- </ul>
-
- </li>
- <li>
<a class="class" href="#SubqueryPredicate">SubqueryPredicate</a>
<ul class="memberlist">
</ul>
@@ -1968,6 +2019,12 @@
</li>
<li>
+ <a class="class" href="#ParameterizedAgg">ParameterizedAgg</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Abs">Abs</a>
<ul class="memberlist">
</ul>
@@ -2118,6 +2175,12 @@
</li>
<li>
+ <a class="class" href="#CastToStrType">CastToStrType</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Collate">Collate</a>
<ul class="memberlist">
</ul>
@@ -2388,13 +2451,19 @@
</li>
<li>
- <a class="class" href="#ExponentialTimeDecayedAvg">ExponentialTimeDecayedAvg</a>
+ <a class="class" href="#Floor">Floor</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#Floor">Floor</a>
+ <a class="class" href="#FromBase64">FromBase64</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#ToBase64">ToBase64</a>
<ul class="memberlist">
</ul>
@@ -2412,49 +2481,49 @@
</li>
<li>
- <a class="class" href="#GroupUniqArray">GroupUniqArray</a>
+ <a class="class" href="#Hex">Hex</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#Hex">Hex</a>
+ <a class="class" href="#If">If</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#Histogram">Histogram</a>
+ <a class="class" href="#IfNull">IfNull</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#If">If</a>
+ <a class="class" href="#Initcap">Initcap</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#IfNull">IfNull</a>
+ <a class="class" href="#JSONKeyValue">JSONKeyValue</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#Initcap">Initcap</a>
+ <a class="class" href="#JSONObject">JSONObject</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#JSONKeyValue">JSONKeyValue</a>
+ <a class="class" href="#OpenJSONColumnDef">OpenJSONColumnDef</a>
<ul class="memberlist">
</ul>
</li>
<li>
- <a class="class" href="#JSONObject">JSONObject</a>
+ <a class="class" href="#OpenJSON">OpenJSON</a>
<ul class="memberlist">
</ul>
@@ -2640,18 +2709,6 @@
</li>
<li>
- <a class="class" href="#Quantiles">Quantiles</a>
- <ul class="memberlist">
- </ul>
-
- </li>
- <li>
- <a class="class" href="#QuantileIf">QuantileIf</a>
- <ul class="memberlist">
- </ul>
-
- </li>
- <li>
<a class="class" href="#ApproxQuantile">ApproxQuantile</a>
<ul class="memberlist">
</ul>
@@ -2760,6 +2817,12 @@
</li>
<li>
+ <a class="class" href="#StandardHash">StandardHash</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#StrPosition">StrPosition</a>
<ul class="memberlist">
</ul>
@@ -3006,6 +3069,9 @@
<a class="function" href="#delete">delete</a>
</li>
<li>
+ <a class="function" href="#insert">insert</a>
+ </li>
+ <li>
<a class="function" href="#condition">condition</a>
</li>
<li>
@@ -3143,14 +3209,14 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</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><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">ParseError</span>
-</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</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-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">AutoName</span><span class="p">,</span>
-</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">camel_to_snake_case</span><span class="p">,</span>
-</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">ensure_collection</span><span class="p">,</span>
-</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">ensure_list</span><span class="p">,</span>
-</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">seq_get</span><span class="p">,</span>
-</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">split_num_words</span><span class="p">,</span>
+</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</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-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">ParseError</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.helper</span> <span class="kn">import</span> <span class="p">(</span>
+</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">AutoName</span><span class="p">,</span>
+</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">camel_to_snake_case</span><span class="p">,</span>
+</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">ensure_collection</span><span class="p">,</span>
+</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">ensure_list</span><span class="p">,</span>
+</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">seq_get</span><span class="p">,</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">subclasses</span><span class="p">,</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="p">)</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">Token</span>
@@ -3158,5339 +3224,5732 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</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-37"><a href="#L-37"><span class="linenos"> 37</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-38"><a href="#L-38"><span class="linenos"> 38</span></a>
-</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="n">E</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">&quot;E&quot;</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="s2">&quot;Expression&quot;</span><span class="p">)</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><span id="L-42"><a href="#L-42"><span class="linenos"> 42</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-43"><a href="#L-43"><span class="linenos"> 43</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-44"><a href="#L-44"><span class="linenos"> 44</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-45"><a href="#L-45"><span class="linenos"> 45</span></a>
-</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="c1"># When an Expression class is created, its key is automatically set to be</span>
-</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="c1"># the lowercase version of the class&#39; name.</span>
-</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</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-49"><a href="#L-49"><span class="linenos"> 49</span></a>
-</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="c1"># This is so that docstrings are not inherited in pdoc</span>
-</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</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-39"><a href="#L-39"><span class="linenos"> 39</span></a>
+</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</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-41"><a href="#L-41"><span class="linenos"> 41</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-42"><a href="#L-42"><span class="linenos"> 42</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-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="c1"># When an Expression class is created, its key is automatically set to be</span>
+</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="c1"># the lowercase version of the class&#39; name.</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="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-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"># This is so that docstrings are not inherited in pdoc</span>
+</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</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-50"><a href="#L-50"><span class="linenos"> 50</span></a>
+</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">return</span> <span class="n">klass</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a>
-</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">return</span> <span class="n">klass</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><span id="L-56"><a href="#L-56"><span class="linenos"> 56</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-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</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-59"><a href="#L-59"><span class="linenos"> 59</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-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> is optional or not.</span>
-</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="sd"> Attributes:</span>
-</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</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-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> and representing expressions as strings.</span>
-</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
-</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</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"> Example:</span>
-</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
-</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
-</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a>
-</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</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-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
-</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a>
-</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> Args:</span>
-</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</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-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
-</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</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-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="sd"> uses to refer to it.</span>
-</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</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-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
-</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> _type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
-</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
-</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> &quot;&quot;&quot;</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="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
-</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-88"><a href="#L-88"><span class="linenos"> 88</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-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="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-91"><a href="#L-91"><span class="linenos"> 91</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-92"><a href="#L-92"><span class="linenos"> 92</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-93"><a href="#L-93"><span class="linenos"> 93</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-94"><a href="#L-94"><span class="linenos"> 94</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-95"><a href="#L-95"><span class="linenos"> 95</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-96"><a href="#L-96"><span class="linenos"> 96</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-97"><a href="#L-97"><span class="linenos"> 97</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-98"><a href="#L-98"><span class="linenos"> 98</span></a>
-</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</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-100"><a href="#L-100"><span class="linenos"> 100</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-101"><a href="#L-101"><span class="linenos"> 101</span></a>
-</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</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-103"><a href="#L-103"><span class="linenos"> 103</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-104"><a href="#L-104"><span class="linenos"> 104</span></a>
-</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="nd">@property</span>
-</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</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-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="n">args</span> <span class="o">=</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">k</span><span class="p">)</span> <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">arg_types</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="k">return</span> <span class="nb">tuple</span><span class="p">(</span>
-</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <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">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> <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">list</span>
-</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span> <span class="k">else</span> <span class="kc">None</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">arg</span> <span class="ow">in</span> <span class="n">args</span>
-</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</span></a> <span class="p">)</span>
-</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a>
-</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</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-117"><a href="#L-117"><span class="linenos"> 117</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-118"><a href="#L-118"><span class="linenos"> 118</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-53"><a href="#L-53"><span class="linenos"> 53</span></a>
+</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</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-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</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-57"><a href="#L-57"><span class="linenos"> 57</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-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> is optional or not.</span>
+</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a>
+</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> Attributes:</span>
+</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</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-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> and representing expressions as strings.</span>
+</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
+</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
+</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
+</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</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-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="sd"> uses to refer to it.</span>
+</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</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-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
+</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> _type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
+</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
+</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a>
+</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> Example:</span>
+</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
+</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
+</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a>
+</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</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-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
+</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a>
+</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> Args:</span>
+</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</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-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a>
+</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
+</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-86"><a href="#L-86"><span class="linenos"> 86</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-87"><a href="#L-87"><span class="linenos"> 87</span></a>
+</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</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-89"><a href="#L-89"><span class="linenos"> 89</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-90"><a href="#L-90"><span class="linenos"> 90</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-91"><a href="#L-91"><span class="linenos"> 91</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-92"><a href="#L-92"><span class="linenos"> 92</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-93"><a href="#L-93"><span class="linenos"> 93</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-94"><a href="#L-94"><span class="linenos"> 94</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-95"><a href="#L-95"><span class="linenos"> 95</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-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">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-98"><a href="#L-98"><span class="linenos"> 98</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-99"><a href="#L-99"><span class="linenos"> 99</span></a>
+</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</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-101"><a href="#L-101"><span class="linenos"> 101</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-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="nd">@property</span>
+</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</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-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="n">args</span> <span class="o">=</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">k</span><span class="p">)</span> <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">arg_types</span><span class="p">)</span>
+</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a>
+</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span>
+</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a> <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">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> <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">list</span>
+</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span>
+</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="p">)</span>
+</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</span></a>
+</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</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-115"><a href="#L-115"><span class="linenos"> 115</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-116"><a href="#L-116"><span class="linenos"> 116</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-117"><a href="#L-117"><span class="linenos"> 117</span></a>
+</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</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-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">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-121"><a href="#L-121"><span class="linenos"> 121</span></a>
-</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a> <span class="nd">@property</span>
-</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</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><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
-</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</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-128"><a href="#L-128"><span class="linenos"> 128</span></a>
-</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a> <span class="nd">@property</span>
-</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</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><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
-</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</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-135"><a href="#L-135"><span class="linenos"> 135</span></a>
-</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a> <span class="nd">@property</span>
-</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</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><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
-</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</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-142"><a href="#L-142"><span class="linenos"> 142</span></a>
-</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</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-144"><a href="#L-144"><span class="linenos"> 144</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</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-146"><a href="#L-146"><span class="linenos"> 146</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
-</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</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-149"><a href="#L-149"><span class="linenos"> 149</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-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="k">return</span> <span class="n">field</span>
-</span><span id="L-151"><a href="#L-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="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-152"><a href="#L-152"><span class="linenos"> 152</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-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="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</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 class="o">.</span><span class="n">name</span>
-</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a>
-</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a> <span class="nd">@property</span>
-</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</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-159"><a href="#L-159"><span class="linenos"> 159</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
-</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</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-163"><a href="#L-163"><span class="linenos"> 163</span></a>
-</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a> <span class="nd">@property</span>
-</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</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-166"><a href="#L-166"><span class="linenos"> 166</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-167"><a href="#L-167"><span class="linenos"> 167</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
-</span><span id="L-168"><a href="#L-168"><span class="linenos"> 168</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</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-170"><a href="#L-170"><span class="linenos"> 170</span></a>
-</span><span id="L-171"><a href="#L-171"><span class="linenos"> 171</span></a> <span class="nd">@property</span>
-</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</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-173"><a href="#L-173"><span class="linenos"> 173</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
-</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</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-177"><a href="#L-177"><span class="linenos"> 177</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</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-179"><a href="#L-179"><span class="linenos"> 179</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
-</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> <span class="k">pass</span>
-</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="k">return</span> <span class="kc">False</span>
-</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a>
-</span><span id="L-184"><a href="#L-184"><span class="linenos"> 184</span></a> <span class="nd">@property</span>
-</span><span id="L-185"><a href="#L-185"><span class="linenos"> 185</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-186"><a href="#L-186"><span class="linenos"> 186</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-187"><a href="#L-187"><span class="linenos"> 187</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-188"><a href="#L-188"><span class="linenos"> 188</span></a>
-</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a> <span class="nd">@property</span>
-</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</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-191"><a href="#L-191"><span class="linenos"> 191</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</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-193"><a href="#L-193"><span class="linenos"> 193</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</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-195"><a href="#L-195"><span class="linenos"> 195</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-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">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a>
-</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="nd">@property</span>
-</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</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-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;this&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_or_name</span><span class="p">(</span><span class="bp">self</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="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-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">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</span></a> <span class="nd">@property</span>
+</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</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><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
+</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</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-126"><a href="#L-126"><span class="linenos"> 126</span></a>
+</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a> <span class="nd">@property</span>
+</span><span id="L-128"><a href="#L-128"><span class="linenos"> 128</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><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
+</span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-132"><a href="#L-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;expression&quot;</span><span class="p">)</span>
+</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a>
+</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="nd">@property</span>
+</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</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><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
+</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-139"><a href="#L-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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a>
+</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</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-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"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
+</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
+</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</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-147"><a href="#L-147"><span class="linenos"> 147</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-148"><a href="#L-148"><span class="linenos"> 148</span></a> <span class="k">return</span> <span class="n">field</span>
+</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</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-150"><a href="#L-150"><span class="linenos"> 150</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-151"><a href="#L-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="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
+</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</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-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a>
+</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="nd">@property</span>
+</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</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-157"><a href="#L-157"><span class="linenos"> 157</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
+</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</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-161"><a href="#L-161"><span class="linenos"> 161</span></a>
+</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="nd">@property</span>
+</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</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-164"><a href="#L-164"><span class="linenos"> 164</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
+</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-167"><a href="#L-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="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-168"><a href="#L-168"><span class="linenos"> 168</span></a>
+</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</span></a> <span class="nd">@property</span>
+</span><span id="L-170"><a href="#L-170"><span class="linenos"> 170</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-171"><a href="#L-171"><span class="linenos"> 171</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
+</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</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-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</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-177"><a href="#L-177"><span class="linenos"> 177</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+</span><span id="L-179"><a href="#L-179"><span class="linenos"> 179</span></a> <span class="k">pass</span>
+</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a>
+</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="nd">@property</span>
+</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</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-184"><a href="#L-184"><span class="linenos"> 184</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-185"><a href="#L-185"><span class="linenos"> 185</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-186"><a href="#L-186"><span class="linenos"> 186</span></a>
+</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a> <span class="nd">@property</span>
+</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</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-189"><a href="#L-189"><span class="linenos"> 189</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</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-191"><a href="#L-191"><span class="linenos"> 191</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</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-193"><a href="#L-193"><span class="linenos"> 193</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-194"><a href="#L-194"><span class="linenos"> 194</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-195"><a href="#L-195"><span class="linenos"> 195</span></a>
+</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="nd">@property</span>
+</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</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-198"><a href="#L-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;this&quot;</span><span class="p">)</span>
+</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a>
+</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="nd">@property</span>
+</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</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-202"><a href="#L-202"><span class="linenos"> 202</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-203"><a href="#L-203"><span class="linenos"> 203</span></a>
+</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="nd">@property</span>
+</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</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-206"><a href="#L-206"><span class="linenos"> 206</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a><span class="sd"> Name of the output column if this expression is a selection.</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="sd"> If the Expression has no output name, an empty string is returned.</span>
</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a>
-</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</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="sd"> Example:</span>
-</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
-</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a><span class="sd"> &#39;a&#39;</span>
-</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</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-218"><a href="#L-218"><span class="linenos"> 218</span></a><span class="sd"> &#39;c&#39;</span>
-</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
-</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a><span class="sd"> &#39;&#39;</span>
-</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</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="nd">@property</span>
-</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</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-226"><a href="#L-226"><span class="linenos"> 226</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-227"><a href="#L-227"><span class="linenos"> 227</span></a>
-</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
-</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</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-230"><a href="#L-230"><span class="linenos"> 230</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-231"><a href="#L-231"><span class="linenos"> 231</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-232"><a href="#L-232"><span class="linenos"> 232</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-233"><a href="#L-233"><span class="linenos"> 233</span></a>
-</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="nd">@property</span>
-</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</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-236"><a href="#L-236"><span class="linenos"> 236</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-237"><a href="#L-237"><span class="linenos"> 237</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-238"><a href="#L-238"><span class="linenos"> 238</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-239"><a href="#L-239"><span class="linenos"> 239</span></a>
-</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</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-241"><a href="#L-241"><span class="linenos"> 241</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-242"><a href="#L-242"><span class="linenos"> 242</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-243"><a href="#L-243"><span class="linenos"> 243</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-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="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-246"><a href="#L-246"><span class="linenos"> 246</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-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">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-249"><a href="#L-249"><span class="linenos"> 249</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-211"><a href="#L-211"><span class="linenos"> 211</span></a><span class="sd"> Example:</span>
+</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</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-216"><a href="#L-216"><span class="linenos"> 216</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</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="nd">@property</span>
+</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</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-224"><a href="#L-224"><span class="linenos"> 224</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-225"><a href="#L-225"><span class="linenos"> 225</span></a>
+</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
+</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</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-228"><a href="#L-228"><span class="linenos"> 228</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-229"><a href="#L-229"><span class="linenos"> 229</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-230"><a href="#L-230"><span class="linenos"> 230</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-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">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-234"><a href="#L-234"><span class="linenos"> 234</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-235"><a href="#L-235"><span class="linenos"> 235</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-236"><a href="#L-236"><span class="linenos"> 236</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-237"><a href="#L-237"><span class="linenos"> 237</span></a>
+</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</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-239"><a href="#L-239"><span class="linenos"> 239</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-240"><a href="#L-240"><span class="linenos"> 240</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-241"><a href="#L-241"><span class="linenos"> 241</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-242"><a href="#L-242"><span class="linenos"> 242</span></a>
+</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</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-244"><a href="#L-244"><span class="linenos"> 244</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-245"><a href="#L-245"><span class="linenos"> 245</span></a>
+</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</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-247"><a href="#L-247"><span class="linenos"> 247</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-248"><a href="#L-248"><span class="linenos"> 248</span></a>
+</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="k">return</span> <span class="n">copy</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">return</span> <span class="n">copy</span>
-</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a>
-</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</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-254"><a href="#L-254"><span class="linenos"> 254</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</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-258"><a href="#L-258"><span class="linenos"> 258</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-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="k">return</span> <span class="n">new</span>
-</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a>
-</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</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="n">value</span><span class="p">):</span>
-</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</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-251"><a href="#L-251"><span class="linenos"> 251</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-252"><a href="#L-252"><span class="linenos"> 252</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</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-256"><a href="#L-256"><span class="linenos"> 256</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-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="k">return</span> <span class="n">new</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">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-260"><a href="#L-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="kc">None</span><span class="p">:</span>
+</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</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-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</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="sd"> Args:</span>
-</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</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-270"><a href="#L-270"><span class="linenos"> 270</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-271"><a href="#L-271"><span class="linenos"> 271</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-272"><a href="#L-272"><span class="linenos"> 272</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-273"><a href="#L-273"><span class="linenos"> 273</span></a>
-</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</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="n">value</span><span class="p">):</span>
-</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
+</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</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-266"><a href="#L-266"><span class="linenos"> 266</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</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-268"><a href="#L-268"><span class="linenos"> 268</span></a>
+</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a><span class="sd"> Args:</span>
+</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</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-274"><a href="#L-274"><span class="linenos"> 274</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-275"><a href="#L-275"><span class="linenos"> 275</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-276"><a href="#L-276"><span class="linenos"> 276</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-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="sd"> Args:</span>
-</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
-</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a><span class="sd"> &quot;&quot;&quot;</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">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-283"><a href="#L-283"><span class="linenos"> 283</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-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">_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="n">value</span><span class="p">):</span>
-</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</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-287"><a href="#L-287"><span class="linenos"> 287</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-288"><a href="#L-288"><span class="linenos"> 288</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-289"><a href="#L-289"><span class="linenos"> 289</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-290"><a href="#L-290"><span class="linenos"> 290</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-291"><a href="#L-291"><span class="linenos"> 291</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-292"><a href="#L-292"><span class="linenos"> 292</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-293"><a href="#L-293"><span class="linenos"> 293</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-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="nd">@property</span>
-</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</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><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a><span class="sd"> Returns the depth of this tree.</span>
-</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</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-301"><a href="#L-301"><span class="linenos"> 301</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-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="k">return</span> <span class="mi">0</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">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-305"><a href="#L-305"><span class="linenos"> 305</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-306"><a href="#L-306"><span class="linenos"> 306</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-307"><a href="#L-307"><span class="linenos"> 307</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-308"><a href="#L-308"><span class="linenos"> 308</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-309"><a href="#L-309"><span class="linenos"> 309</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-310"><a href="#L-310"><span class="linenos"> 310</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-311"><a href="#L-311"><span class="linenos"> 311</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</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-313"><a href="#L-313"><span class="linenos"> 313</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-314"><a href="#L-314"><span class="linenos"> 314</span></a>
-</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a><span class="sd"> the specified types.</span>
-</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a>
-</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a><span class="sd"> Args:</span>
-</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a><span class="sd"> expression_types: the expression type(s) to match.</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="sd"> Returns:</span>
-</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</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-278"><a href="#L-278"><span class="linenos"> 278</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-279"><a href="#L-279"><span class="linenos"> 279</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
+</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a>
+</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a><span class="sd"> Args:</span>
+</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
+</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</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-287"><a href="#L-287"><span class="linenos"> 287</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-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="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-290"><a href="#L-290"><span class="linenos"> 290</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-291"><a href="#L-291"><span class="linenos"> 291</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-292"><a href="#L-292"><span class="linenos"> 292</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-293"><a href="#L-293"><span class="linenos"> 293</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-294"><a href="#L-294"><span class="linenos"> 294</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-295"><a href="#L-295"><span class="linenos"> 295</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-296"><a href="#L-296"><span class="linenos"> 296</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-297"><a href="#L-297"><span class="linenos"> 297</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-298"><a href="#L-298"><span class="linenos"> 298</span></a>
+</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="nd">@property</span>
+</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</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-301"><a href="#L-301"><span class="linenos"> 301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</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-305"><a href="#L-305"><span class="linenos"> 305</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-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="k">return</span> <span class="mi">0</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="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-309"><a href="#L-309"><span class="linenos"> 309</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-310"><a href="#L-310"><span class="linenos"> 310</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-311"><a href="#L-311"><span class="linenos"> 311</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-312"><a href="#L-312"><span class="linenos"> 312</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-313"><a href="#L-313"><span class="linenos"> 313</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-314"><a href="#L-314"><span class="linenos"> 314</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-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</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-317"><a href="#L-317"><span class="linenos"> 317</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-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">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-320"><a href="#L-320"><span class="linenos"> 320</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a><span class="sd"> the specified types.</span>
+</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a>
+</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a><span class="sd"> Args:</span>
+</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</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-327"><a href="#L-327"><span class="linenos"> 327</span></a>
-</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</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="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-329"><a href="#L-329"><span class="linenos"> 329</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a><span class="sd"> Returns:</span>
+</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</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-332"><a href="#L-332"><span class="linenos"> 332</span></a>
-</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a><span class="sd"> Args:</span>
-</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a>
-</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a><span class="sd"> Returns:</span>
-</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</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-340"><a href="#L-340"><span class="linenos"> 340</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-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="k">yield</span> <span class="n">expression</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_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">E</span> <span class="o">|</span> <span class="kc">None</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 a nearest parent matching expression_types.</span>
-</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a>
-</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a><span class="sd"> Args:</span>
-</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a>
-</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a><span class="sd"> Returns:</span>
-</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a><span class="sd"> The parent node.</span>
-</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</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-354"><a href="#L-354"><span class="linenos"> 354</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-355"><a href="#L-355"><span class="linenos"> 355</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-356"><a href="#L-356"><span class="linenos"> 356</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-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="nd">@property</span>
-</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</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><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a><span class="sd"> Returns the parent select statement.</span>
-</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</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-364"><a href="#L-364"><span class="linenos"> 364</span></a>
-</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a> <span class="nd">@property</span>
-</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</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><span id="L-367"><a href="#L-367"><span class="linenos"> 367</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-368"><a href="#L-368"><span class="linenos"> 368</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-369"><a href="#L-369"><span class="linenos"> 369</span></a>
-</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</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-371"><a href="#L-371"><span class="linenos"> 371</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</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-376"><a href="#L-376"><span class="linenos"> 376</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-377"><a href="#L-377"><span class="linenos"> 377</span></a> <span class="k">return</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">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-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 generator object which visits all nodes in this tree.</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"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</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-334"><a href="#L-334"><span class="linenos"> 334</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a><span class="sd"> yields those that match at least one of the specified expression types.</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="sd"> Args:</span>
+</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</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-341"><a href="#L-341"><span class="linenos"> 341</span></a>
+</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a><span class="sd"> Returns:</span>
+</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</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-346"><a href="#L-346"><span class="linenos"> 346</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-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="k">yield</span> <span class="n">expression</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_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-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 a nearest parent matching expression_types.</span>
+</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a>
+</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a><span class="sd"> Args:</span>
+</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a>
+</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a><span class="sd"> Returns:</span>
+</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a><span class="sd"> The parent node.</span>
+</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</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-360"><a href="#L-360"><span class="linenos"> 360</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-361"><a href="#L-361"><span class="linenos"> 361</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-362"><a href="#L-362"><span class="linenos"> 362</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-363"><a href="#L-363"><span class="linenos"> 363</span></a>
+</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a> <span class="nd">@property</span>
+</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</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-366"><a href="#L-366"><span class="linenos"> 366</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a><span class="sd"> Returns the parent select statement.</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">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-370"><a href="#L-370"><span class="linenos"> 370</span></a>
+</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="nd">@property</span>
+</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</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-373"><a href="#L-373"><span class="linenos"> 373</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-374"><a href="#L-374"><span class="linenos"> 374</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-375"><a href="#L-375"><span class="linenos"> 375</span></a>
+</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</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-377"><a href="#L-377"><span class="linenos"> 377</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</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-382"><a href="#L-382"><span class="linenos"> 382</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-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a>
+</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</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-386"><a href="#L-386"><span class="linenos"> 386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a>
-</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a><span class="sd"> Returns:</span>
-</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a><span class="sd"> the generator object.</span>
-</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</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-394"><a href="#L-394"><span class="linenos"> 394</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</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-396"><a href="#L-396"><span class="linenos"> 396</span></a>
-</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</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-398"><a href="#L-398"><span class="linenos"> 398</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a>
-</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a><span class="sd"> Returns:</span>
-</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</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-406"><a href="#L-406"><span class="linenos"> 406</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-407"><a href="#L-407"><span class="linenos"> 407</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-408"><a href="#L-408"><span class="linenos"> 408</span></a> <span class="k">return</span>
-</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a>
-</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</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-411"><a href="#L-411"><span class="linenos"> 411</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-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="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-414"><a href="#L-414"><span class="linenos"> 414</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a>
-</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a><span class="sd"> Returns:</span>
-</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</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-422"><a href="#L-422"><span class="linenos"> 422</span></a>
-</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</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-425"><a href="#L-425"><span class="linenos"> 425</span></a>
-</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</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-427"><a href="#L-427"><span class="linenos"> 427</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-428"><a href="#L-428"><span class="linenos"> 428</span></a> <span class="k">continue</span>
-</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a>
-</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</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-431"><a href="#L-431"><span class="linenos"> 431</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-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">unnest</span><span class="p">(</span><span class="bp">self</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 the first non parenthesis child or self.</span>
-</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</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-439"><a href="#L-439"><span class="linenos"> 439</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-440"><a href="#L-440"><span class="linenos"> 440</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a>
-</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</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-443"><a href="#L-443"><span class="linenos"> 443</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</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-447"><a href="#L-447"><span class="linenos"> 447</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-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a>
-</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</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-451"><a href="#L-451"><span class="linenos"> 451</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</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-389"><a href="#L-389"><span class="linenos"> 389</span></a><span class="sd"> Args:</span>
+</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</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="sd"> Returns:</span>
+</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a><span class="sd"> the generator object.</span>
+</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</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-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</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-402"><a href="#L-402"><span class="linenos"> 402</span></a>
+</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</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-404"><a href="#L-404"><span class="linenos"> 404</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a>
+</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a><span class="sd"> Returns:</span>
+</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</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-412"><a href="#L-412"><span class="linenos"> 412</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-413"><a href="#L-413"><span class="linenos"> 413</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-414"><a href="#L-414"><span class="linenos"> 414</span></a> <span class="k">return</span>
+</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a>
+</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</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-417"><a href="#L-417"><span class="linenos"> 417</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-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="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-420"><a href="#L-420"><span class="linenos"> 420</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a>
+</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a><span class="sd"> Returns:</span>
+</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</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-428"><a href="#L-428"><span class="linenos"> 428</span></a>
+</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</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-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="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-433"><a href="#L-433"><span class="linenos"> 433</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-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="k">continue</span>
+</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a>
+</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</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-437"><a href="#L-437"><span class="linenos"> 437</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-438"><a href="#L-438"><span class="linenos"> 438</span></a>
+</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</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-440"><a href="#L-440"><span class="linenos"> 440</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</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-445"><a href="#L-445"><span class="linenos"> 445</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-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="k">return</span> <span class="n">expression</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="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-449"><a href="#L-449"><span class="linenos"> 449</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</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-453"><a href="#L-453"><span class="linenos"> 453</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-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="k">return</span> <span class="bp">self</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">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-456"><a href="#L-456"><span class="linenos"> 456</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-457"><a href="#L-457"><span class="linenos"> 457</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</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="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</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-463"><a href="#L-463"><span class="linenos"> 463</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-464"><a href="#L-464"><span class="linenos"> 464</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
+</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</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-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">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-463"><a href="#L-463"><span class="linenos"> 463</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</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">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</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-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="fm">__repr__</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="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-466"><a href="#L-466"><span class="linenos"> 466</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</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-469"><a href="#L-469"><span class="linenos"> 469</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-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="L-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">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-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 SQL string representation of this tree.</span>
-</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a>
-</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a><span class="sd"> Args:</span>
-</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</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-478"><a href="#L-478"><span class="linenos"> 478</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</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="sd"> Returns:</span>
-</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a><span class="sd"> The SQL string.</span>
-</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</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-484"><a href="#L-484"><span class="linenos"> 484</span></a>
-</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</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-486"><a href="#L-486"><span class="linenos"> 486</span></a>
-</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</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-488"><a href="#L-488"><span class="linenos"> 488</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-489"><a href="#L-489"><span class="linenos"> 489</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-490"><a href="#L-490"><span class="linenos"> 490</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-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="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-493"><a href="#L-493"><span class="linenos"> 493</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-494"><a href="#L-494"><span class="linenos"> 494</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-495"><a href="#L-495"><span class="linenos"> 495</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-496"><a href="#L-496"><span class="linenos"> 496</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-497"><a href="#L-497"><span class="linenos"> 497</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-498"><a href="#L-498"><span class="linenos"> 498</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-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="p">)</span>
-</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</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-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="p">}</span>
-</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</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-503"><a href="#L-503"><span class="linenos"> 503</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-504"><a href="#L-504"><span class="linenos"> 504</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-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="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-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
-</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a>
-</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</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-510"><a href="#L-510"><span class="linenos"> 510</span></a>
-</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</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-512"><a href="#L-512"><span class="linenos"> 512</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a>
-</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a><span class="sd"> Args:</span>
-</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</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-521"><a href="#L-521"><span class="linenos"> 521</span></a><span class="sd"> modified in place.</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 transformed tree.</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="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-527"><a href="#L-527"><span class="linenos"> 527</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-472"><a href="#L-472"><span class="linenos"> 472</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-473"><a href="#L-473"><span class="linenos"> 473</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-474"><a href="#L-474"><span class="linenos"> 474</span></a>
+</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</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-476"><a href="#L-476"><span class="linenos"> 476</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-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">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-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 SQL string representation of this tree.</span>
+</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a>
+</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a><span class="sd"> Args:</span>
+</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</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-484"><a href="#L-484"><span class="linenos"> 484</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</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="sd"> Returns:</span>
+</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a><span class="sd"> The SQL string.</span>
+</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</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-490"><a href="#L-490"><span class="linenos"> 490</span></a>
+</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</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-492"><a href="#L-492"><span class="linenos"> 492</span></a>
+</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</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-494"><a href="#L-494"><span class="linenos"> 494</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-495"><a href="#L-495"><span class="linenos"> 495</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-496"><a href="#L-496"><span class="linenos"> 496</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-497"><a href="#L-497"><span class="linenos"> 497</span></a>
+</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</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-499"><a href="#L-499"><span class="linenos"> 499</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-500"><a href="#L-500"><span class="linenos"> 500</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-501"><a href="#L-501"><span class="linenos"> 501</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-502"><a href="#L-502"><span class="linenos"> 502</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-503"><a href="#L-503"><span class="linenos"> 503</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-504"><a href="#L-504"><span class="linenos"> 504</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-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="p">)</span>
+</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</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-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="p">}</span>
+</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</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-509"><a href="#L-509"><span class="linenos"> 509</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-510"><a href="#L-510"><span class="linenos"> 510</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-511"><a href="#L-511"><span class="linenos"> 511</span></a>
+</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</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-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</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">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</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">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-518"><a href="#L-518"><span class="linenos"> 518</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a><span class="sd"> and applies the given transformation function to each node.</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="sd"> Args:</span>
+</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</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-527"><a href="#L-527"><span class="linenos"> 527</span></a><span class="sd"> modified in place.</span>
</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a>
-</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</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-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</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-532"><a href="#L-532"><span class="linenos"> 532</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-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a><span class="sd"> Returns:</span>
+</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</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-533"><a href="#L-533"><span class="linenos"> 533</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-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="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-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a>
-</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</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-539"><a href="#L-539"><span class="linenos"> 539</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a><span class="sd"> Swap out this expression with a new expression.</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"> For example::</span>
+</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</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-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</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-538"><a href="#L-538"><span class="linenos"> 538</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-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="k">return</span> <span class="n">new_node</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="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-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a>
-</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a>
-</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a><span class="sd"> Args:</span>
-</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a><span class="sd"> expression (Expression|None): new node</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 new expression or expressions.</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="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-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="k">return</span> <span class="n">expression</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="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-560"><a href="#L-560"><span class="linenos"> 560</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-561"><a href="#L-561"><span class="linenos"> 561</span></a>
-</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</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-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="k">return</span> <span class="n">expression</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="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</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"> Remove this expression from its AST.</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"> Returns:</span>
-</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a><span class="sd"> The popped expression.</span>
-</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</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-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a>
-</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</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><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</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-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="o">...</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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</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-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="o">...</span>
+</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a>
+</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</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-553"><a href="#L-553"><span class="linenos"> 553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a>
+</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a><span class="sd"> For example::</span>
+</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a>
+</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
+</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a><span class="sd"> (COLUMN this: y)</span>
+</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a>
+</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a><span class="sd"> Args:</span>
+</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a><span class="sd"> expression: new node</span>
+</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a>
+</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> Returns:</span>
+</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</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-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a>
+</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</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-574"><a href="#L-574"><span class="linenos"> 574</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-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="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-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a>
-</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="sd"> Otherwise, this returns this expression.</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"> Examples:</span>
-</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a>
-</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</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-587"><a href="#L-587"><span class="linenos"> 587</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</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-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a>
-</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</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-593"><a href="#L-593"><span class="linenos"> 593</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</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-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a>
+</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a><span class="sd"> Returns:</span>
+</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a><span class="sd"> The popped expression.</span>
+</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</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-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a>
+</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</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-590"><a href="#L-590"><span class="linenos"> 590</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</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="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a><span class="sd"> Otherwise, this returns this expression.</span>
</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a>
-</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a><span class="sd"> Args:</span>
-</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</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-598"><a href="#L-598"><span class="linenos"> 598</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</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="sd"> Returns:</span>
-</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a><span class="sd"> Examples:</span>
+</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
+</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a>
+</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</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-601"><a href="#L-601"><span class="linenos"> 601</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</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-604"><a href="#L-604"><span class="linenos"> 604</span></a>
-</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</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-606"><a href="#L-606"><span class="linenos"> 606</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-607"><a href="#L-607"><span class="linenos"> 607</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-608"><a href="#L-608"><span class="linenos"> 608</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-609"><a href="#L-609"><span class="linenos"> 609</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-610"><a href="#L-610"><span class="linenos"> 610</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-611"><a href="#L-611"><span class="linenos"> 611</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-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">if</span> <span class="p">(</span>
-</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="n">args</span>
-</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</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-616"><a href="#L-616"><span class="linenos"> 616</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-617"><a href="#L-617"><span class="linenos"> 617</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-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="p">):</span>
-</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</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-621"><a href="#L-621"><span class="linenos"> 621</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-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="p">)</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="k">return</span> <span class="n">errors</span>
-</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a>
-</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</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-627"><a href="#L-627"><span class="linenos"> 627</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</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-631"><a href="#L-631"><span class="linenos"> 631</span></a>
-</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</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-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="nd">@classmethod</span>
-</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</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-636"><a href="#L-636"><span class="linenos"> 636</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</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-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">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</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><span id="L-644"><a href="#L-644"><span class="linenos"> 644</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-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="nb">str</span><span class="p">,</span>
-</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</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-647"><a href="#L-647"><span class="linenos"> 647</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-648"><a href="#L-648"><span class="linenos"> 648</span></a><span class="p">]</span>
-</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</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-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><span id="L-652"><a href="#L-652"><span class="linenos"> 652</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-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="k">def</span> <span class="nf">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="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
+</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</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-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a>
+</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</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-607"><a href="#L-607"><span class="linenos"> 607</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</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"> Args:</span>
+</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</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-612"><a href="#L-612"><span class="linenos"> 612</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a>
+</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a><span class="sd"> Returns:</span>
+</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a><span class="sd"> A list of error messages for all possible errors that were found.</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="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-618"><a href="#L-618"><span class="linenos"> 618</span></a>
+</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</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-620"><a href="#L-620"><span class="linenos"> 620</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-621"><a href="#L-621"><span class="linenos"> 621</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-622"><a href="#L-622"><span class="linenos"> 622</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-623"><a href="#L-623"><span class="linenos"> 623</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-624"><a href="#L-624"><span class="linenos"> 624</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-625"><a href="#L-625"><span class="linenos"> 625</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-626"><a href="#L-626"><span class="linenos"> 626</span></a>
+</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="n">args</span>
+</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</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-630"><a href="#L-630"><span class="linenos"> 630</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-631"><a href="#L-631"><span class="linenos"> 631</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-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="p">):</span>
+</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</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-635"><a href="#L-635"><span class="linenos"> 635</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-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="p">)</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="k">return</span> <span class="n">errors</span>
+</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a>
+</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</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-641"><a href="#L-641"><span class="linenos"> 641</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</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-645"><a href="#L-645"><span class="linenos"> 645</span></a>
+</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</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-647"><a href="#L-647"><span class="linenos"> 647</span></a>
+</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</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-650"><a href="#L-650"><span class="linenos"> 650</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</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-654"><a href="#L-654"><span class="linenos"> 654</span></a>
+</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</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-656"><a href="#L-656"><span class="linenos"> 656</span></a>
-</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a><span class="sd"> Example:</span>
-</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a>
-</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a><span class="sd"> Args:</span>
-</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="sd"> copy (bool): whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a>
-</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a><span class="sd"> Returns:</span>
-</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a><span class="sd"> And: the new condition.</span>
-</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</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-672"><a href="#L-672"><span class="linenos"> 672</span></a>
-</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="k">def</span> <span class="nf">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="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a>
+</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</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-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="nb">str</span><span class="p">,</span>
+</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</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-661"><a href="#L-661"><span class="linenos"> 661</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-662"><a href="#L-662"><span class="linenos"> 662</span></a><span class="p">]</span>
+</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</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-664"><a href="#L-664"><span class="linenos"> 664</span></a>
+</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a>
+</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</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-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</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-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="n">dialect</span><span 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-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="n">copy</span><span 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-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</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"> OR this condition with one or multiple expressions.</span>
+</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a>
</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a><span class="sd"> Example:</span>
-</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</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="sd"> Args:</span>
-</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="sd"> copy (bool): whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a>
</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="sd"> Returns:</span>
-</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a><span class="sd"> Or: the new condition.</span>
+</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a><span class="sd"> The new And condition.</span>
</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</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-691"><a href="#L-691"><span class="linenos"> 691</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-692"><a href="#L-692"><span class="linenos"> 692</span></a>
-</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</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="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a><span class="sd"> Wrap this condition with NOT.</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="sd"> Example:</span>
-</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a>
-</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a><span class="sd"> Args:</span>
-</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a><span class="sd"> copy (bool): whether or not to copy this object.</span>
-</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a>
-</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a><span class="sd"> Returns:</span>
-</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a><span class="sd"> Not: the new condition.</span>
-</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</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-708"><a href="#L-708"><span class="linenos"> 708</span></a>
-</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</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">ExpOrStr</span><span class="p">,</span> <span class="n">reverse</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-710"><a href="#L-710"><span class="linenos"> 710</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-711"><a href="#L-711"><span class="linenos"> 711</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-712"><a href="#L-712"><span class="linenos"> 712</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-713"><a href="#L-713"><span class="linenos"> 713</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-714"><a href="#L-714"><span class="linenos"> 714</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-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
-</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</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-717"><a href="#L-717"><span class="linenos"> 717</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-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</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-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="n">dialect</span><span 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-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="n">copy</span><span 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-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a>
+</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a><span class="sd"> Example:</span>
+</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</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="sd"> Args:</span>
+</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a>
+</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a><span class="sd"> Returns:</span>
+</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</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-718"><a href="#L-718"><span class="linenos"> 718</span></a>
-</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</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><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
-</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</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-722"><a href="#L-722"><span class="linenos"> 722</span></a> <span class="p">)</span>
-</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a>
-</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</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-729"><a href="#L-729"><span class="linenos"> 729</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-730"><a href="#L-730"><span class="linenos"> 730</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-731"><a href="#L-731"><span class="linenos"> 731</span></a> <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">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="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-734"><a href="#L-734"><span class="linenos"> 734</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</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-736"><a href="#L-736"><span class="linenos"> 736</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-737"><a href="#L-737"><span class="linenos"> 737</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-738"><a href="#L-738"><span class="linenos"> 738</span></a> <span class="p">)</span>
-</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a>
-</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</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-741"><a href="#L-741"><span class="linenos"> 741</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-742"><a href="#L-742"><span class="linenos"> 742</span></a>
-</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</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-744"><a href="#L-744"><span class="linenos"> 744</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-745"><a href="#L-745"><span class="linenos"> 745</span></a>
-</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</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="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-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">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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</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-751"><a href="#L-751"><span class="linenos"> 751</span></a>
-</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</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-753"><a href="#L-753"><span class="linenos"> 753</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-719"><a href="#L-719"><span class="linenos"> 719</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-720"><a href="#L-720"><span class="linenos"> 720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> Wrap this condition with NOT.</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="sd"> Example:</span>
+</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> &#39;NOT x = 1&#39;</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"> Args:</span>
+</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a>
+</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a><span class="sd"> Returns:</span>
+</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</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-734"><a href="#L-734"><span class="linenos"> 734</span></a>
+</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</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-738"><a href="#L-738"><span class="linenos"> 738</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-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="n">dialect</span><span 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-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="n">copy</span><span 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-741"><a href="#L-741"><span class="linenos"> 741</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</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-744"><a href="#L-744"><span class="linenos"> 744</span></a>
+</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</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-746"><a href="#L-746"><span class="linenos"> 746</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-747"><a href="#L-747"><span class="linenos"> 747</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-748"><a href="#L-748"><span class="linenos"> 748</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-749"><a href="#L-749"><span class="linenos"> 749</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-750"><a href="#L-750"><span class="linenos"> 750</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-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
+</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</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-753"><a href="#L-753"><span class="linenos"> 753</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-754"><a href="#L-754"><span class="linenos"> 754</span></a>
-</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</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="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-757"><a href="#L-757"><span class="linenos"> 757</span></a>
-</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
-</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</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-760"><a href="#L-760"><span class="linenos"> 760</span></a>
-</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
-</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</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-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">__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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
-</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</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-766"><a href="#L-766"><span class="linenos"> 766</span></a>
-</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</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-769"><a href="#L-769"><span class="linenos"> 769</span></a>
-</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</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-772"><a href="#L-772"><span class="linenos"> 772</span></a>
-</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</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-755"><a href="#L-755"><span class="linenos"> 755</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><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
+</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</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-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="p">)</span>
+</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a>
+</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><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-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</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-765"><a href="#L-765"><span class="linenos"> 765</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-766"><a href="#L-766"><span class="linenos"> 766</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-767"><a href="#L-767"><span class="linenos"> 767</span></a> <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="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-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">return</span> <span class="n">Between</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="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-772"><a href="#L-772"><span class="linenos"> 772</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-773"><a href="#L-773"><span class="linenos"> 773</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-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="p">)</span>
</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a>
-</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</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-776"><a href="#L-776"><span class="linenos"> 776</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-777"><a href="#L-777"><span class="linenos"> 777</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-778"><a href="#L-778"><span class="linenos"> 778</span></a>
-</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</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="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-779"><a href="#L-779"><span class="linenos"> 779</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-780"><a href="#L-780"><span class="linenos"> 780</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-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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</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-782"><a href="#L-782"><span class="linenos"> 782</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-783"><a href="#L-783"><span class="linenos"> 783</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-784"><a href="#L-784"><span class="linenos"> 784</span></a>
-</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</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-785"><a href="#L-785"><span class="linenos"> 785</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-786"><a href="#L-786"><span class="linenos"> 786</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-787"><a href="#L-787"><span class="linenos"> 787</span></a>
-</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</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-788"><a href="#L-788"><span class="linenos"> 788</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-789"><a href="#L-789"><span class="linenos"> 789</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-790"><a href="#L-790"><span class="linenos"> 790</span></a>
-</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</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-791"><a href="#L-791"><span class="linenos"> 791</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-792"><a href="#L-792"><span class="linenos"> 792</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-793"><a href="#L-793"><span class="linenos"> 793</span></a>
-</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</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-794"><a href="#L-794"><span class="linenos"> 794</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-795"><a href="#L-795"><span class="linenos"> 795</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-796"><a href="#L-796"><span class="linenos"> 796</span></a>
-</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</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-797"><a href="#L-797"><span class="linenos"> 797</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-798"><a href="#L-798"><span class="linenos"> 798</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-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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</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">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-800"><a href="#L-800"><span class="linenos"> 800</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-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">GT</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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</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">Pow</span><span class="p">,</span> <span class="n">other</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="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-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">GTE</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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</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">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-806"><a href="#L-806"><span class="linenos"> 806</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-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">Add</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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</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">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</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-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">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-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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</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">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-812"><a href="#L-812"><span class="linenos"> 812</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-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">Sub</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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</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">Or</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 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-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">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-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="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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</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-818"><a href="#L-818"><span class="linenos"> 818</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-819"><a href="#L-819"><span class="linenos"> 819</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-820"><a href="#L-820"><span class="linenos"> 820</span></a>
-</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</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-822"><a href="#L-822"><span class="linenos"> 822</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-821"><a href="#L-821"><span class="linenos"> 821</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-822"><a href="#L-822"><span class="linenos"> 822</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-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="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-825"><a href="#L-825"><span class="linenos"> 825</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-824"><a href="#L-824"><span class="linenos"> 824</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-825"><a href="#L-825"><span class="linenos"> 825</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-826"><a href="#L-826"><span class="linenos"> 826</span></a>
-</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a>
-</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</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-830"><a href="#L-830"><span class="linenos"> 830</span></a>
-</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a>
-</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="nd">@property</span>
-</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</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><span id="L-835"><a href="#L-835"><span class="linenos"> 835</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-836"><a href="#L-836"><span class="linenos"> 836</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-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><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-839"><a href="#L-839"><span class="linenos"> 839</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">column_list</span><span class="p">]</span>
-</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a>
-</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="nd">@property</span>
-</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</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-827"><a href="#L-827"><span class="linenos"> 827</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-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">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-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">__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-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">IntDiv</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">__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-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">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-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">__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-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">Mod</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">__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-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">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-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">__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-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">Pow</span><span class="p">,</span> <span class="n">other</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">if</span> <span class="n">alias</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="n">alias</span><span class="o">.</span><span class="n">columns</span>
-</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="k">return</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="nd">@property</span>
-</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</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-852"><a href="#L-852"><span class="linenos"> 852</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">__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-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">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-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">__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-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">And</span><span class="p">,</span> <span class="n">other</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">__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-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">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-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">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a><span class="sd"> Builds a UNION expression.</span>
-</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a>
-</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a><span class="sd"> Example:</span>
-</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</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-862"><a href="#L-862"><span class="linenos"> 862</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</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="sd"> Args:</span>
-</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a><span class="sd"> Returns:</span>
-</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a><span class="sd"> Union: the Union expression.</span>
-</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</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-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="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a><span class="sd"> Builds an INTERSECT expression.</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="sd"> Example:</span>
-</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</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-882"><a href="#L-882"><span class="linenos"> 882</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</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-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">Or</span><span class="p">,</span> <span class="n">other</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">__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-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">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-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">__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-861"><a href="#L-861"><span class="linenos"> 861</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-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">__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-864"><a href="#L-864"><span class="linenos"> 864</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-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><span id="L-867"><a href="#L-867"><span class="linenos"> 867</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-868"><a href="#L-868"><span class="linenos"> 868</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-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><span id="L-871"><a href="#L-871"><span class="linenos"> 871</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-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="nd">@property</span>
+</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</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-874"><a href="#L-874"><span class="linenos"> 874</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-875"><a href="#L-875"><span class="linenos"> 875</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-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><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-878"><a href="#L-878"><span class="linenos"> 878</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">column_list</span><span class="p">]</span>
+</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a>
+</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="nd">@property</span>
+</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</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">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-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="sd"> Args:</span>
-</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a><span class="sd"> Returns:</span>
-</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a><span class="sd"> Intersect: the Intersect expression</span>
-</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</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-894"><a href="#L-894"><span class="linenos"> 894</span></a>
-</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a><span class="sd"> Builds an EXCEPT expression.</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 class="sd"> Example:</span>
-</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</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-902"><a href="#L-902"><span class="linenos"> 902</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a>
-</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a><span class="sd"> Args:</span>
-</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a><span class="sd"> Returns:</span>
-</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a><span class="sd"> Except: the Except expression</span>
-</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</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-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><span id="L-916"><a href="#L-916"><span class="linenos"> 916</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-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="k">pass</span>
+</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="nd">@property</span>
+</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</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-887"><a href="#L-887"><span class="linenos"> 887</span></a>
+</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a>
+</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span 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-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</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-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a><span class="sd"> Builds a UNION expression.</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="sd"> Example:</span>
+</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</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-899"><a href="#L-899"><span class="linenos"> 899</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a>
+</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a><span class="sd"> Args:</span>
+</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a>
+</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a><span class="sd"> Returns:</span>
+</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="sd"> The new Union expression.</span>
+</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</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-912"><a href="#L-912"><span class="linenos"> 912</span></a>
+</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</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-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</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;</span>
+</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a><span class="sd"> Builds an INTERSECT expression.</span>
</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><span id="L-920"><a href="#L-920"><span class="linenos"> 920</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-921"><a href="#L-921"><span class="linenos"> 921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</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-923"><a href="#L-923"><span class="linenos"> 923</span></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-924"><a href="#L-924"><span class="linenos"> 924</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-925"><a href="#L-925"><span class="linenos"> 925</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-926"><a href="#L-926"><span class="linenos"> 926</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-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="p">}</span>
-</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a>
-</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a>
-</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</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-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</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-937"><a href="#L-937"><span class="linenos"> 937</span></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-938"><a href="#L-938"><span class="linenos"> 938</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-939"><a href="#L-939"><span class="linenos"> 939</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-940"><a href="#L-940"><span class="linenos"> 940</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-941"><a href="#L-941"><span class="linenos"> 941</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-942"><a href="#L-942"><span class="linenos"> 942</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-943"><a href="#L-943"><span class="linenos"> 943</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-944"><a href="#L-944"><span class="linenos"> 944</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-945"><a href="#L-945"><span class="linenos"> 945</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-946"><a href="#L-946"><span class="linenos"> 946</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-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="p">}</span>
-</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a>
-</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a>
-</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span 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-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-952"><a href="#L-952"><span class="linenos"> 952</span></a>
+</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a><span class="sd"> Example:</span>
+</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</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-922"><a href="#L-922"><span class="linenos"> 922</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a>
+</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a><span class="sd"> Args:</span>
+</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a>
+</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a><span class="sd"> Returns:</span>
+</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a><span class="sd"> The new Intersect expression.</span>
+</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</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-935"><a href="#L-935"><span class="linenos"> 935</span></a>
+</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</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-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a><span class="sd"> Builds an EXCEPT expression.</span>
+</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a>
+</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="sd"> Example:</span>
+</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</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-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a>
+</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a><span class="sd"> Args:</span>
+</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a>
-</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span 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-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="k">pass</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><span id="L-958"><a href="#L-958"><span class="linenos"> 958</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-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="n">arg_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-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><span id="L-962"><a href="#L-962"><span class="linenos"> 962</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-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</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-965"><a href="#L-965"><span class="linenos"> 965</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-966"><a href="#L-966"><span class="linenos"> 966</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-967"><a href="#L-967"><span class="linenos"> 967</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-968"><a href="#L-968"><span class="linenos"> 968</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-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="p">}</span>
-</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a>
-</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a>
-</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</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-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></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-975"><a href="#L-975"><span class="linenos"> 975</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-976"><a href="#L-976"><span class="linenos"> 976</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-977"><a href="#L-977"><span class="linenos"> 977</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-978"><a href="#L-978"><span class="linenos"> 978</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-979"><a href="#L-979"><span class="linenos"> 979</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-980"><a href="#L-980"><span class="linenos"> 980</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-981"><a href="#L-981"><span class="linenos"> 981</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-982"><a href="#L-982"><span class="linenos"> 982</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-983"><a href="#L-983"><span class="linenos"> 983</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-984"><a href="#L-984"><span class="linenos"> 984</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-985"><a href="#L-985"><span class="linenos"> 985</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-986"><a href="#L-986"><span class="linenos"> 986</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-987"><a href="#L-987"><span class="linenos"> 987</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-988"><a href="#L-988"><span class="linenos"> 988</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-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="p">}</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><span id="L-992"><a href="#L-992"><span class="linenos"> 992</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-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-994"><a href="#L-994"><span class="linenos"> 994</span></a>
-</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a>
-</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-998"><a href="#L-998"><span class="linenos"> 998</span></a>
-</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a>
-</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-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 class="nd">@property</span>
-</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</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-1005"><a href="#L-1005"><span class="linenos">1005</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-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="sd"> Returns:</span>
+</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a><span class="sd"> The new Except expression.</span>
+</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</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-958"><a href="#L-958"><span class="linenos"> 958</span></a>
+</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a>
+</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</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-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="nd">@property</span>
+</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</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-964"><a href="#L-964"><span class="linenos"> 964</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-965"><a href="#L-965"><span class="linenos"> 965</span></a>
+</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a>
+</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</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-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</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-970"><a href="#L-970"><span class="linenos"> 970</span></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-971"><a href="#L-971"><span class="linenos"> 971</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-972"><a href="#L-972"><span class="linenos"> 972</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-973"><a href="#L-973"><span class="linenos"> 973</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-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="p">}</span>
+</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a>
+</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a>
+</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</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-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</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-984"><a href="#L-984"><span class="linenos"> 984</span></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-985"><a href="#L-985"><span class="linenos"> 985</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-986"><a href="#L-986"><span class="linenos"> 986</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-987"><a href="#L-987"><span class="linenos"> 987</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-988"><a href="#L-988"><span class="linenos"> 988</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-989"><a href="#L-989"><span class="linenos"> 989</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-990"><a href="#L-990"><span class="linenos"> 990</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-991"><a href="#L-991"><span class="linenos"> 991</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-992"><a href="#L-992"><span class="linenos"> 992</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-993"><a href="#L-993"><span class="linenos"> 993</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-994"><a href="#L-994"><span class="linenos"> 994</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-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="p">}</span>
+</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><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/sql/create-clone</span>
+</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</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-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></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-1002"><a href="#L-1002"><span class="linenos">1002</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-1003"><a href="#L-1003"><span class="linenos">1003</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-1004"><a href="#L-1004"><span class="linenos">1004</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-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="p">}</span>
</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a>
</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a>
-</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1008"><a href="#L-1008"><span class="linenos">1008</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-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1010"><a href="#L-1010"><span class="linenos">1010</span></a>
</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a>
-</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
-</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</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-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="k">pass</span>
</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a>
</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a>
-</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1016"><a href="#L-1016"><span class="linenos">1016</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-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">arg_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-1018"><a href="#L-1018"><span class="linenos">1018</span></a>
-</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="nd">@property</span>
-</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</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-1021"><a href="#L-1021"><span class="linenos">1021</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-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">BitString</span><span class="p">(</span><span class="n">Condition</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">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="k">pass</span>
-</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a>
-</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a>
-</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="k">pass</span>
-</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a>
-</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a>
-</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-1038"><a href="#L-1038"><span class="linenos">1038</span></a>
-</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="nd">@property</span>
-</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</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-1041"><a href="#L-1041"><span class="linenos">1041</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-1042"><a href="#L-1042"><span class="linenos">1042</span></a>
-</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="nd">@property</span>
-</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</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-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">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
-</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a>
-</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="nd">@property</span>
-</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</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-1049"><a href="#L-1049"><span class="linenos">1049</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-1050"><a href="#L-1050"><span class="linenos">1050</span></a>
-</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="nd">@property</span>
-</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</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-1053"><a href="#L-1053"><span class="linenos">1053</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-1054"><a href="#L-1054"><span class="linenos">1054</span></a>
-</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="nd">@property</span>
-</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</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-1057"><a href="#L-1057"><span class="linenos">1057</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-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">part</span><span class="p">]</span>
-</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a>
-</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</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-1062"><a href="#L-1062"><span class="linenos">1062</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-1063"><a href="#L-1063"><span class="linenos">1063</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-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">SetItem</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><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</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-1023"><a href="#L-1023"><span class="linenos">1023</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-1024"><a href="#L-1024"><span class="linenos">1024</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-1025"><a href="#L-1025"><span class="linenos">1025</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-1026"><a href="#L-1026"><span class="linenos">1026</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-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="p">}</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><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</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-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></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-1033"><a href="#L-1033"><span class="linenos">1033</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-1034"><a href="#L-1034"><span class="linenos">1034</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-1035"><a href="#L-1035"><span class="linenos">1035</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-1036"><a href="#L-1036"><span class="linenos">1036</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-1037"><a href="#L-1037"><span class="linenos">1037</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-1038"><a href="#L-1038"><span class="linenos">1038</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-1039"><a href="#L-1039"><span class="linenos">1039</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-1040"><a href="#L-1040"><span class="linenos">1040</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-1041"><a href="#L-1041"><span class="linenos">1041</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-1042"><a href="#L-1042"><span class="linenos">1042</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-1043"><a href="#L-1043"><span class="linenos">1043</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-1044"><a href="#L-1044"><span class="linenos">1044</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-1045"><a href="#L-1045"><span class="linenos">1045</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-1046"><a href="#L-1046"><span class="linenos">1046</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-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="p">}</span>
+</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><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</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-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</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-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</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-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="n">arg_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-1060"><a href="#L-1060"><span class="linenos">1060</span></a>
+</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="nd">@property</span>
+</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</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-1063"><a href="#L-1063"><span class="linenos">1063</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-1064"><a href="#L-1064"><span class="linenos">1064</span></a>
-</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</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-1067"><a href="#L-1067"><span class="linenos">1067</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-1068"><a href="#L-1068"><span class="linenos">1068</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-1065"><a href="#L-1065"><span class="linenos">1065</span></a>
+</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</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-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1068"><a href="#L-1068"><span class="linenos">1068</span></a>
</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a>
-</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
-</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a>
+</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</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-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a>
-</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</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-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1075"><a href="#L-1075"><span class="linenos">1075</span></a>
+</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a>
+</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</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-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1076"><a href="#L-1076"><span class="linenos">1076</span></a>
-</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</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-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></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-1080"><a href="#L-1080"><span class="linenos">1080</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-1081"><a href="#L-1081"><span class="linenos">1081</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-1082"><a href="#L-1082"><span class="linenos">1082</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-1083"><a href="#L-1083"><span class="linenos">1083</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-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="p">}</span>
+</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="nd">@property</span>
+</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</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-1079"><a href="#L-1079"><span class="linenos">1079</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-1080"><a href="#L-1080"><span class="linenos">1080</span></a>
+</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a>
+</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</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-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="k">pass</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><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</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-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="n">arg_types</span> <span class="o">=</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;dtype&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;collate&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;using&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;default&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;drop&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="p">}</span>
+</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</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-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="k">pass</span>
+</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a>
+</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a>
+</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</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-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="k">pass</span>
+</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a>
+</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a>
+</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</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-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="k">pass</span>
</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a>
</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a>
-</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</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-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="k">pass</span>
+</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</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-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1100"><a href="#L-1100"><span class="linenos">1100</span></a>
-</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a>
-</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="nd">@property</span>
+</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</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-1103"><a href="#L-1103"><span class="linenos">1103</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-1104"><a href="#L-1104"><span class="linenos">1104</span></a>
-</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a>
-</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</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-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="nd">@property</span>
+</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</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-1107"><a href="#L-1107"><span class="linenos">1107</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-1108"><a href="#L-1108"><span class="linenos">1108</span></a>
-</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a>
-</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</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-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="nd">@property</span>
+</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</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-1111"><a href="#L-1111"><span class="linenos">1111</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-1112"><a href="#L-1112"><span class="linenos">1112</span></a>
-</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a>
-</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</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-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="k">pass</span>
+</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="nd">@property</span>
+</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</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-1115"><a href="#L-1115"><span class="linenos">1115</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-1116"><a href="#L-1116"><span class="linenos">1116</span></a>
-</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a>
-</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</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-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="k">pass</span>
-</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a>
-</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 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-1123"><a href="#L-1123"><span class="linenos">1123</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-1124"><a href="#L-1124"><span class="linenos">1124</span></a>
+</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="nd">@property</span>
+</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</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-1119"><a href="#L-1119"><span class="linenos">1119</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-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</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-1122"><a href="#L-1122"><span class="linenos">1122</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-1123"><a href="#L-1123"><span class="linenos">1123</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-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <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 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-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="k">pass</span>
-</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a>
-</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a>
-</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</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-1135"><a href="#L-1135"><span class="linenos">1135</span></a> <span class="k">pass</span>
-</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a>
+</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</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-1128"><a href="#L-1128"><span class="linenos">1128</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-1129"><a href="#L-1129"><span class="linenos">1129</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-1130"><a href="#L-1130"><span class="linenos">1130</span></a>
+</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</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-1133"><a href="#L-1133"><span class="linenos">1133</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-1134"><a href="#L-1134"><span class="linenos">1134</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-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 class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a>
-</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</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-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="k">pass</span>
-</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a>
+</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a>
+</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</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-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1141"><a href="#L-1141"><span class="linenos">1141</span></a>
-</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</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-1143"><a href="#L-1143"><span class="linenos">1143</span></a> <span class="k">pass</span>
-</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a>
-</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a>
-</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</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-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1148"><a href="#L-1148"><span class="linenos">1148</span></a>
-</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a>
-</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</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-1151"><a href="#L-1151"><span class="linenos">1151</span></a> <span class="k">pass</span>
-</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a>
-</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a>
-</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</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-1155"><a href="#L-1155"><span class="linenos">1155</span></a> <span class="k">pass</span>
+</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a>
+</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</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-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></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-1146"><a href="#L-1146"><span class="linenos">1146</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-1147"><a href="#L-1147"><span class="linenos">1147</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-1148"><a href="#L-1148"><span class="linenos">1148</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-1149"><a href="#L-1149"><span class="linenos">1149</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-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="p">}</span>
+</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="nd">@property</span>
+</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</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-1154"><a href="#L-1154"><span class="linenos">1154</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-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><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a>
-</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</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-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</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><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</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-1162"><a href="#L-1162"><span class="linenos">1162</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-1163"><a href="#L-1163"><span class="linenos">1163</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-1164"><a href="#L-1164"><span class="linenos">1164</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-1165"><a href="#L-1165"><span class="linenos">1165</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-1166"><a href="#L-1166"><span class="linenos">1166</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-1167"><a href="#L-1167"><span class="linenos">1167</span></a> <span class="p">}</span>
-</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a>
-</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a>
-</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</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-1171"><a href="#L-1171"><span class="linenos">1171</span></a> <span class="k">pass</span>
-</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a>
-</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a>
-</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</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-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;allow_null&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 class="c1"># https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html</span>
-</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</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-1180"><a href="#L-1180"><span class="linenos">1180</span></a> <span class="k">pass</span>
-</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a>
-</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a>
-</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</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-1184"><a href="#L-1184"><span class="linenos">1184</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-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><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</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-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="k">pass</span>
+</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</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-1158"><a href="#L-1158"><span class="linenos">1158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></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-1160"><a href="#L-1160"><span class="linenos">1160</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-1161"><a href="#L-1161"><span class="linenos">1161</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-1162"><a href="#L-1162"><span class="linenos">1162</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-1163"><a href="#L-1163"><span class="linenos">1163</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-1164"><a href="#L-1164"><span class="linenos">1164</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-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <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><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</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-1169"><a href="#L-1169"><span class="linenos">1169</span></a> <span class="k">pass</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="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</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-1177"><a href="#L-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;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-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><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
+</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</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-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><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></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-1184"><a href="#L-1184"><span class="linenos">1184</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-1185"><a href="#L-1185"><span class="linenos">1185</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-1186"><a href="#L-1186"><span class="linenos">1186</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-1187"><a href="#L-1187"><span class="linenos">1187</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-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="p">}</span>
</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a>
</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a>
-</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> <span class="n">arg_types</span><span class="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-1193"><a href="#L-1193"><span class="linenos">1193</span></a>
-</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a>
-</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="n">arg_types</span><span class="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-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><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</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-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="k">pass</span>
-</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a>
-</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a>
-</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a>
-</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a>
-</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a>
-</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="n">dialect</span><span 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-1214"><a href="#L-1214"><span class="linenos">1214</span></a> <span class="n">copy</span><span 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-1215"><a href="#L-1215"><span class="linenos">1215</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
+</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
+</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</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-1193"><a href="#L-1193"><span class="linenos">1193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</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-1195"><a href="#L-1195"><span class="linenos">1195</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-1196"><a href="#L-1196"><span class="linenos">1196</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-1197"><a href="#L-1197"><span class="linenos">1197</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-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="p">}</span>
+</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a>
+</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">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1203"><a href="#L-1203"><span class="linenos">1203</span></a>
+</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="nd">@property</span>
+</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</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-1206"><a href="#L-1206"><span class="linenos">1206</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-1207"><a href="#L-1207"><span class="linenos">1207</span></a>
+</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a>
+</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</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-1210"><a href="#L-1210"><span class="linenos">1210</span></a> <span class="k">pass</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><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</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-1214"><a href="#L-1214"><span class="linenos">1214</span></a> <span class="k">pass</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><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</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-1218"><a href="#L-1218"><span class="linenos">1218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a>
-</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a><span class="sd"> Example:</span>
-</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</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="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-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</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="sd"> Args:</span>
-</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a>
-</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</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-1237"><a href="#L-1237"><span class="linenos">1237</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a> <span class="p">)</span>
-</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a>
-</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</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-1247"><a href="#L-1247"><span class="linenos">1247</span></a> <span class="n">dialect</span><span 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-1248"><a href="#L-1248"><span class="linenos">1248</span></a> <span class="n">copy</span><span 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-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</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="sd"> Example:</span>
-</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</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-1256"><a href="#L-1256"><span class="linenos">1256</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-1257"><a href="#L-1257"><span class="linenos">1257</span></a>
-</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a><span class="sd"> Args:</span>
-</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a>
-</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</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-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a> <span class="p">)</span>
-</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a>
-</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="n">dialect</span><span 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-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="n">copy</span><span 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-1287"><a href="#L-1287"><span class="linenos">1287</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</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="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-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="k">pass</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><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</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-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="k">pass</span>
+</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a>
+</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a>
+</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a><span class="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-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="k">pass</span>
+</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a>
+</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">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="k">pass</span>
+</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a>
+</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a>
+</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</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-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><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><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</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-1246"><a href="#L-1246"><span class="linenos">1246</span></a> <span class="k">pass</span>
+</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a>
+</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a>
+</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</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-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="k">pass</span>
+</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a>
+</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a>
+</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</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-1254"><a href="#L-1254"><span class="linenos">1254</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</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">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;expression&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;on_null&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;start&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;increment&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="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</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-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="p">}</span>
+</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a>
+</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a>
+</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a><span class="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-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="k">pass</span>
+</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a>
+</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a>
+</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</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-1272"><a href="#L-1272"><span class="linenos">1272</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-1273"><a href="#L-1273"><span class="linenos">1273</span></a>
+</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 class="c1"># https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html</span>
+</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</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-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><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</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-1281"><a href="#L-1281"><span class="linenos">1281</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-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><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</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-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="k">pass</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><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</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-1289"><a href="#L-1289"><span class="linenos">1289</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-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><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a><span class="sd"> Example:</span>
-</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</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-1294"><a href="#L-1294"><span class="linenos">1294</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</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-1293"><a href="#L-1293"><span class="linenos">1293</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-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><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a><span class="sd"> Args:</span>
-</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</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-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <span class="k">pass</span>
+</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a>
+</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a>
+</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</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-1301"><a href="#L-1301"><span class="linenos">1301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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="sd"> Returns:</span>
-</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="n">expression</span><span class="o">=</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">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</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-1310"><a href="#L-1310"><span class="linenos">1310</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-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a> <span class="p">)</span>
+</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a>
+</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a><span class="k">class</span> <span class="nc">Delete</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 class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a>
+</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <span class="n">dialect</span><span 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-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="n">copy</span><span 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-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="o">**</span><span class="n">opts</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 class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a>
-</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a>
-</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a><span class="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-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</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-1321"><a href="#L-1321"><span class="linenos">1321</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-1322"><a href="#L-1322"><span class="linenos">1322</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-1323"><a href="#L-1323"><span class="linenos">1323</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-1324"><a href="#L-1324"><span class="linenos">1324</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-1325"><a href="#L-1325"><span class="linenos">1325</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-1326"><a href="#L-1326"><span class="linenos">1326</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-1327"><a href="#L-1327"><span class="linenos">1327</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-1328"><a href="#L-1328"><span class="linenos">1328</span></a> <span class="p">}</span>
-</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a>
-</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a>
-</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a><span 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-1332"><a href="#L-1332"><span class="linenos">1332</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</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-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="k">pass</span>
-</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><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</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-1340"><a href="#L-1340"><span class="linenos">1340</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-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-1342"><a href="#L-1342"><span class="linenos">1342</span></a>
-</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a>
-</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a><span 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-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="s2">&quot;expressions&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 class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="p">}</span>
-</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a>
-</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a>
-</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</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-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;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-1355"><a href="#L-1355"><span class="linenos">1355</span></a>
-</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a>
-</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a> <span class="n">arg_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-1359"><a href="#L-1359"><span class="linenos">1359</span></a>
-</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a>
-</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
-</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</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-1363"><a href="#L-1363"><span class="linenos">1363</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-1364"><a href="#L-1364"><span class="linenos">1364</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-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><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</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-1368"><a href="#L-1368"><span class="linenos">1368</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a>
-</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a>
-</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</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-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="k">pass</span>
-</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><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</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-1376"><a href="#L-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a>
+</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a><span class="sd"> Example:</span>
+</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a>
+</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a><span class="sd"> Args:</span>
+</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a>
+</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</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-1334"><a href="#L-1334"><span class="linenos">1334</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a> <span class="p">)</span>
+</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a>
+</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</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-1343"><a href="#L-1343"><span class="linenos">1343</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-1344"><a href="#L-1344"><span class="linenos">1344</span></a> <span class="n">dialect</span><span 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-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">copy</span><span 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-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a>
+</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a><span class="sd"> Example:</span>
+</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</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-1353"><a href="#L-1353"><span class="linenos">1353</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-1354"><a href="#L-1354"><span class="linenos">1354</span></a>
+</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a><span class="sd"> Args:</span>
+</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</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-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="p">)</span>
</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a>
-</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a><span class="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-1380"><a href="#L-1380"><span class="linenos">1380</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</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-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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="nd">@property</span>
-</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</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-1389"><a href="#L-1389"><span class="linenos">1389</span></a>
-</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a> <span class="nd">@property</span>
-</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</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-1392"><a href="#L-1392"><span class="linenos">1392</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
-</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</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-1394"><a href="#L-1394"><span class="linenos">1394</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
-</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a>
-</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a> <span class="nd">@property</span>
-</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</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-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="n">dialect</span><span 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-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="n">copy</span><span 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-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
+</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a>
+</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a><span class="sd"> Example:</span>
+</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</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-1391"><a href="#L-1391"><span class="linenos">1391</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a>
+</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a><span class="sd"> Args:</span>
+</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a>
-</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a>
-</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</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-1402"><a href="#L-1402"><span class="linenos">1402</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</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-1404"><a href="#L-1404"><span class="linenos">1404</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-1405"><a href="#L-1405"><span class="linenos">1405</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-1406"><a href="#L-1406"><span class="linenos">1406</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-1407"><a href="#L-1407"><span class="linenos">1407</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-1408"><a href="#L-1408"><span class="linenos">1408</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-1409"><a href="#L-1409"><span class="linenos">1409</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-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="p">}</span>
-</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a>
-</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a>
-</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</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-1416"><a href="#L-1416"><span class="linenos">1416</span></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-1417"><a href="#L-1417"><span class="linenos">1417</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-1418"><a href="#L-1418"><span class="linenos">1418</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-1419"><a href="#L-1419"><span class="linenos">1419</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-1420"><a href="#L-1420"><span class="linenos">1420</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-1421"><a href="#L-1421"><span class="linenos">1421</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-1422"><a href="#L-1422"><span class="linenos">1422</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-1423"><a href="#L-1423"><span class="linenos">1423</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-1424"><a href="#L-1424"><span class="linenos">1424</span></a> <span class="p">}</span>
-</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a>
+</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</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-1407"><a href="#L-1407"><span class="linenos">1407</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-1408"><a href="#L-1408"><span class="linenos">1408</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> <span class="o">**</span><span class="n">opts</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">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</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-1418"><a href="#L-1418"><span class="linenos">1418</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-1419"><a href="#L-1419"><span class="linenos">1419</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-1420"><a href="#L-1420"><span class="linenos">1420</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-1421"><a href="#L-1421"><span class="linenos">1421</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-1422"><a href="#L-1422"><span class="linenos">1422</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-1423"><a href="#L-1423"><span class="linenos">1423</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-1424"><a href="#L-1424"><span class="linenos">1424</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-1425"><a href="#L-1425"><span class="linenos">1425</span></a> <span class="p">}</span>
</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">OnConflict</span><span class="p">(</span><span class="n">Expression</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><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</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-1430"><a href="#L-1430"><span class="linenos">1430</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-1431"><a href="#L-1431"><span class="linenos">1431</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-1432"><a href="#L-1432"><span class="linenos">1432</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-1433"><a href="#L-1433"><span class="linenos">1433</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-1434"><a href="#L-1434"><span class="linenos">1434</span></a> <span class="p">}</span>
+</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a>
+</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1429"><a href="#L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</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-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><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</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-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="n">arg_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-1436"><a href="#L-1436"><span class="linenos">1436</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-1437"><a href="#L-1437"><span class="linenos">1437</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-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
-</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</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-1443"><a href="#L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
-</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</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-1448"><a href="#L-1448"><span class="linenos">1448</span></a> <span class="k">pass</span>
+</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</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-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><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</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-1444"><a href="#L-1444"><span class="linenos">1444</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-1445"><a href="#L-1445"><span class="linenos">1445</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-1446"><a href="#L-1446"><span class="linenos">1446</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-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="p">}</span>
+</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a>
</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a>
-</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a>
-</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</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-1452"><a href="#L-1452"><span class="linenos">1452</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></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-1454"><a href="#L-1454"><span class="linenos">1454</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-1455"><a href="#L-1455"><span class="linenos">1455</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-1456"><a href="#L-1456"><span class="linenos">1456</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-1457"><a href="#L-1457"><span class="linenos">1457</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-1458"><a href="#L-1458"><span class="linenos">1458</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-1459"><a href="#L-1459"><span class="linenos">1459</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-1460"><a href="#L-1460"><span class="linenos">1460</span></a> <span class="p">}</span>
-</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a>
+</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</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-1451"><a href="#L-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;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-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><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="n">arg_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-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><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
+</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</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-1460"><a href="#L-1460"><span class="linenos">1460</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-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1462"><a href="#L-1462"><span class="linenos">1462</span></a>
-</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a><span class="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-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</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">Fetch</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><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</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-1470"><a href="#L-1470"><span class="linenos">1470</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-1471"><a href="#L-1471"><span class="linenos">1471</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-1472"><a href="#L-1472"><span class="linenos">1472</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-1473"><a href="#L-1473"><span class="linenos">1473</span></a> <span class="p">}</span>
-</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a>
-</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a>
-</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</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-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</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-1479"><a href="#L-1479"><span class="linenos">1479</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-1480"><a href="#L-1480"><span class="linenos">1480</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-1481"><a href="#L-1481"><span class="linenos">1481</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-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="p">}</span>
-</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</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="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-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="nd">@property</span>
+</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</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-1467"><a href="#L-1467"><span class="linenos">1467</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-1468"><a href="#L-1468"><span class="linenos">1468</span></a>
+</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="nd">@property</span>
+</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</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-1471"><a href="#L-1471"><span class="linenos">1471</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-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">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="k">pass</span>
+</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a>
+</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a>
+</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</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-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="n">arg_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-1480"><a href="#L-1480"><span class="linenos">1480</span></a>
+</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a>
+</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</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-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1487"><a href="#L-1487"><span class="linenos">1487</span></a>
+</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a>
+</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a><span 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-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a>
-</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</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-1490"><a href="#L-1490"><span class="linenos">1490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1491"><a href="#L-1491"><span class="linenos">1491</span></a>
+</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="nd">@property</span>
+</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</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-1491"><a href="#L-1491"><span class="linenos">1491</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-1492"><a href="#L-1492"><span class="linenos">1492</span></a>
-</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</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-1494"><a href="#L-1494"><span class="linenos">1494</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="nd">@property</span>
-</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</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-1498"><a href="#L-1498"><span class="linenos">1498</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-1499"><a href="#L-1499"><span class="linenos">1499</span></a>
-</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</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-1502"><a href="#L-1502"><span class="linenos">1502</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-1493"><a href="#L-1493"><span class="linenos">1493</span></a> <span class="nd">@property</span>
+</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</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-1495"><a href="#L-1495"><span class="linenos">1495</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
+</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</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-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+</span><span id="L-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="nd">@property</span>
+</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</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-1501"><a href="#L-1501"><span class="linenos">1501</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-1502"><a href="#L-1502"><span class="linenos">1502</span></a>
</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a>
-</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</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-1506"><a href="#L-1506"><span class="linenos">1506</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-1507"><a href="#L-1507"><span class="linenos">1507</span></a>
-</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> <span class="nd">@property</span>
-</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</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-1511"><a href="#L-1511"><span class="linenos">1511</span></a>
-</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a>
-</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></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-1516"><a href="#L-1516"><span class="linenos">1516</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-1517"><a href="#L-1517"><span class="linenos">1517</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-1518"><a href="#L-1518"><span class="linenos">1518</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-1519"><a href="#L-1519"><span class="linenos">1519</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-1520"><a href="#L-1520"><span class="linenos">1520</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</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-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="p">}</span>
-</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a>
-</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> <span class="nd">@property</span>
-</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</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-1527"><a href="#L-1527"><span class="linenos">1527</span></a>
-</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a> <span class="nd">@property</span>
-</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</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-1531"><a href="#L-1531"><span class="linenos">1531</span></a>
-</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a> <span class="nd">@property</span>
-</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</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-1535"><a href="#L-1535"><span class="linenos">1535</span></a>
-</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="nd">@property</span>
-</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</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-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="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a>
-</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a><span class="sd"> Example:</span>
-</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</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-1547"><a href="#L-1547"><span class="linenos">1547</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a>
-</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a><span class="sd"> Args:</span>
-</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a>
-</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</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-1563"><a href="#L-1563"><span class="linenos">1563</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</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-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="p">)</span>
-</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">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-1573"><a href="#L-1573"><span class="linenos">1573</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-1504"><a href="#L-1504"><span class="linenos">1504</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-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</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-1507"><a href="#L-1507"><span class="linenos">1507</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-1508"><a href="#L-1508"><span class="linenos">1508</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-1509"><a href="#L-1509"><span class="linenos">1509</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-1510"><a href="#L-1510"><span class="linenos">1510</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-1511"><a href="#L-1511"><span class="linenos">1511</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-1512"><a href="#L-1512"><span class="linenos">1512</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-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><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</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-1519"><a href="#L-1519"><span class="linenos">1519</span></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-1520"><a href="#L-1520"><span class="linenos">1520</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-1521"><a href="#L-1521"><span class="linenos">1521</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-1522"><a href="#L-1522"><span class="linenos">1522</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-1523"><a href="#L-1523"><span class="linenos">1523</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-1524"><a href="#L-1524"><span class="linenos">1524</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-1525"><a href="#L-1525"><span class="linenos">1525</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-1526"><a href="#L-1526"><span class="linenos">1526</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-1527"><a href="#L-1527"><span class="linenos">1527</span></a> <span class="p">}</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="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</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-1534"><a href="#L-1534"><span class="linenos">1534</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-1535"><a href="#L-1535"><span class="linenos">1535</span></a> <span class="n">dialect</span><span 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-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="n">copy</span><span 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-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a>
+</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a><span class="sd"> Example:</span>
+</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</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-1544"><a href="#L-1544"><span class="linenos">1544</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-1545"><a href="#L-1545"><span class="linenos">1545</span></a>
+</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a><span class="sd"> Args:</span>
+</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</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-1563"><a href="#L-1563"><span class="linenos">1563</span></a> <span class="p">)</span>
+</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a>
+</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a>
+</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</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-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</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-1569"><a href="#L-1569"><span class="linenos">1569</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-1570"><a href="#L-1570"><span class="linenos">1570</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-1571"><a href="#L-1571"><span class="linenos">1571</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-1572"><a href="#L-1572"><span class="linenos">1572</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-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="p">}</span>
</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a>
-</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a>
-</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</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="sd"> Example:</span>
-</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</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-1584"><a href="#L-1584"><span class="linenos">1584</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a>
-</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a><span class="sd"> Args:</span>
-</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a>
-</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</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-1599"><a href="#L-1599"><span class="linenos">1599</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</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-1602"><a href="#L-1602"><span class="linenos">1602</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> <span class="p">)</span>
-</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a>
-</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a> <span class="k">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-1609"><a href="#L-1609"><span class="linenos">1609</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-1610"><a href="#L-1610"><span class="linenos">1610</span></a>
-</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</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="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-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a>
+</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a>
+</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
+</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</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-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
+</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</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-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="k">pass</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">LoadData</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;this&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;local&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;overwrite&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;inpath&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;partition&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;input_format&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;serde&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-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">Partition</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;expressions&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-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">Fetch</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><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</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-1609"><a href="#L-1609"><span class="linenos">1609</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-1610"><a href="#L-1610"><span class="linenos">1610</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-1611"><a href="#L-1611"><span class="linenos">1611</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-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="p">}</span>
</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a>
-</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</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-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1616"><a href="#L-1616"><span class="linenos">1616</span></a>
-</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="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-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</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-1621"><a href="#L-1621"><span class="linenos">1621</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-1622"><a href="#L-1622"><span class="linenos">1622</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-1623"><a href="#L-1623"><span class="linenos">1623</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-1624"><a href="#L-1624"><span class="linenos">1624</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-1625"><a href="#L-1625"><span class="linenos">1625</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-1626"><a href="#L-1626"><span class="linenos">1626</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-1627"><a href="#L-1627"><span class="linenos">1627</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-1628"><a href="#L-1628"><span class="linenos">1628</span></a> <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><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
-</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
-</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</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-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="k">pass</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 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-1616"><a href="#L-1616"><span class="linenos">1616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</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-1618"><a href="#L-1618"><span class="linenos">1618</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-1619"><a href="#L-1619"><span class="linenos">1619</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-1620"><a href="#L-1620"><span class="linenos">1620</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-1621"><a href="#L-1621"><span class="linenos">1621</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-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="p">}</span>
+</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a>
+</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a>
+</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1627"><a href="#L-1627"><span class="linenos">1627</span></a>
+</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a>
+</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a>
+</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a>
+</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1635"><a href="#L-1635"><span class="linenos">1635</span></a>
-</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a>
-</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1636"><a href="#L-1636"><span class="linenos">1636</span></a> <span class="nd">@property</span>
+</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</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-1638"><a href="#L-1638"><span class="linenos">1638</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-1639"><a href="#L-1639"><span class="linenos">1639</span></a>
-</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a>
-</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1640"><a href="#L-1640"><span class="linenos">1640</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</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-1642"><a href="#L-1642"><span class="linenos">1642</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-1643"><a href="#L-1643"><span class="linenos">1643</span></a>
-</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a>
-</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a><span class="c1"># hive specific sorts</span>
-</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
-</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</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-1648"><a href="#L-1648"><span class="linenos">1648</span></a> <span class="k">pass</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="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-1652"><a href="#L-1652"><span class="linenos">1652</span></a> <span class="k">pass</span>
-</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><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</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-1656"><a href="#L-1656"><span class="linenos">1656</span></a> <span class="k">pass</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">Ordered</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a>
-</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a>
-</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</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-1664"><a href="#L-1664"><span class="linenos">1664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a>
-</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a>
-</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</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><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</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-1676"><a href="#L-1676"><span class="linenos">1676</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a>
-</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a>
-</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</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-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-1681"><a href="#L-1681"><span class="linenos">1681</span></a>
-</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a>
-</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</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-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-1685"><a href="#L-1685"><span class="linenos">1685</span></a>
-</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a>
-</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</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-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-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><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</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-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a>
-</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</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-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a>
-</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a>
-</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</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-1700"><a href="#L-1700"><span class="linenos">1700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a>
-</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a>
-</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</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-1704"><a href="#L-1704"><span class="linenos">1704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a>
+</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</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-1646"><a href="#L-1646"><span class="linenos">1646</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-1647"><a href="#L-1647"><span class="linenos">1647</span></a>
+</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a> <span class="nd">@property</span>
+</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</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-1650"><a href="#L-1650"><span class="linenos">1650</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-1651"><a href="#L-1651"><span class="linenos">1651</span></a>
+</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a>
+</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</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-1654"><a href="#L-1654"><span class="linenos">1654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></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-1656"><a href="#L-1656"><span class="linenos">1656</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-1657"><a href="#L-1657"><span class="linenos">1657</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-1658"><a href="#L-1658"><span class="linenos">1658</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-1659"><a href="#L-1659"><span class="linenos">1659</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-1660"><a href="#L-1660"><span class="linenos">1660</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</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-1662"><a href="#L-1662"><span class="linenos">1662</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-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="p">}</span>
+</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a>
+</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="nd">@property</span>
+</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</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-1667"><a href="#L-1667"><span class="linenos">1667</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-1668"><a href="#L-1668"><span class="linenos">1668</span></a>
+</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="nd">@property</span>
+</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</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-1671"><a href="#L-1671"><span class="linenos">1671</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-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 class="nd">@property</span>
+</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</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-1675"><a href="#L-1675"><span class="linenos">1675</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-1676"><a href="#L-1676"><span class="linenos">1676</span></a>
+</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="nd">@property</span>
+</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</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-1679"><a href="#L-1679"><span class="linenos">1679</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-1680"><a href="#L-1680"><span class="linenos">1680</span></a>
+</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</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-1684"><a href="#L-1684"><span class="linenos">1684</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-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="n">dialect</span><span 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-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="n">copy</span><span 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-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="o">**</span><span class="n">opts</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 class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a>
+</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a><span class="sd"> Example:</span>
+</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</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-1695"><a href="#L-1695"><span class="linenos">1695</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a>
+</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a><span class="sd"> Args:</span>
+</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="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-1708"><a href="#L-1708"><span class="linenos">1708</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a>
-</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a>
-</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</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-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a>
-</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a>
-</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</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-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1717"><a href="#L-1717"><span class="linenos">1717</span></a>
-</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="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-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1721"><a href="#L-1721"><span class="linenos">1721</span></a>
+</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</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-1711"><a href="#L-1711"><span class="linenos">1711</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</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-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> <span class="p">)</span>
+</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a>
+</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span 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-1721"><a href="#L-1721"><span class="linenos">1721</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-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 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-1724"><a href="#L-1724"><span class="linenos">1724</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-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">FileFormatProperty</span><span class="p">(</span><span class="n">Property</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a>
-</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a>
-</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</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-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</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-1736"><a href="#L-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;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-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><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</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-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><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</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-1742"><a href="#L-1742"><span class="linenos">1742</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-1743"><a href="#L-1743"><span class="linenos">1743</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-1744"><a href="#L-1744"><span class="linenos">1744</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-1745"><a href="#L-1745"><span class="linenos">1745</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-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="p">}</span>
-</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a>
-</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a>
-</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a>
-</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a>
-</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</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-1754"><a href="#L-1754"><span class="linenos">1754</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1755"><a href="#L-1755"><span class="linenos">1755</span></a>
-</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a>
-</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</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-1758"><a href="#L-1758"><span class="linenos">1758</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</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-1762"><a href="#L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</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><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</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-1766"><a href="#L-1766"><span class="linenos">1766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</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-1768"><a href="#L-1768"><span class="linenos">1768</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-1769"><a href="#L-1769"><span class="linenos">1769</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</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-1771"><a href="#L-1771"><span class="linenos">1771</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-1772"><a href="#L-1772"><span class="linenos">1772</span></a> <span class="p">}</span>
-</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a>
-</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a>
-</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a><span class="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-1776"><a href="#L-1776"><span class="linenos">1776</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-1777"><a href="#L-1777"><span class="linenos">1777</span></a>
-</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a>
-</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a><span 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-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1781"><a href="#L-1781"><span class="linenos">1781</span></a>
-</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 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-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a>
+</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</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-1728"><a href="#L-1728"><span class="linenos">1728</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-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">dialect</span><span 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-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="n">copy</span><span 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-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a>
+</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a><span class="sd"> Example:</span>
+</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</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-1739"><a href="#L-1739"><span class="linenos">1739</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</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-1754"><a href="#L-1754"><span class="linenos">1754</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</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-1757"><a href="#L-1757"><span class="linenos">1757</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> <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">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-1764"><a href="#L-1764"><span class="linenos">1764</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-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 class="k">return</span> <span class="n">join</span>
+</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a>
+</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a>
+</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</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-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">MatchRecognize</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;partition_by&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;order&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;measures&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;rows&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;after&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;pattern&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;define&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;alias&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="p">}</span>
+</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a>
</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a>
-</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">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</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">False</span><span class="p">}</span>
-</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a>
+</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
+</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
+</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</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-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="k">pass</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">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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">Offset</span><span class="p">(</span><span class="n">Expression</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">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-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">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</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><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a>
+</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a>
+</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</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-1797"><a href="#L-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">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-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="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-1800"><a href="#L-1800"><span class="linenos">1800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</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-1804"><a href="#L-1804"><span class="linenos">1804</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1799"><a href="#L-1799"><span class="linenos">1799</span></a>
+</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a><span class="c1"># hive specific sorts</span>
+</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
+</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</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-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="k">pass</span>
+</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a>
</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><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</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-1808"><a href="#L-1808"><span class="linenos">1808</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</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-1811"><a href="#L-1811"><span class="linenos">1811</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-1812"><a href="#L-1812"><span class="linenos">1812</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-1813"><a href="#L-1813"><span class="linenos">1813</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-1814"><a href="#L-1814"><span class="linenos">1814</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-1815"><a href="#L-1815"><span class="linenos">1815</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-1816"><a href="#L-1816"><span class="linenos">1816</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-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="p">}</span>
-</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a>
-</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a>
-</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a>
-</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a>
-</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a>
-</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a>
-</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="n">arg_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-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><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</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-1833"><a href="#L-1833"><span class="linenos">1833</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-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><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</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-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</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-1841"><a href="#L-1841"><span class="linenos">1841</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-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><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</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-1845"><a href="#L-1845"><span class="linenos">1845</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1850"><a href="#L-1850"><span class="linenos">1850</span></a>
-</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a>
-</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</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-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;global_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</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-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="k">pass</span>
+</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a>
+</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="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-1811"><a href="#L-1811"><span class="linenos">1811</span></a> <span class="k">pass</span>
+</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a>
+</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a>
+</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a><span class="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-1815"><a href="#L-1815"><span class="linenos">1815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a>
+</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a>
+</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</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-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1820"><a href="#L-1820"><span class="linenos">1820</span></a>
+</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a>
+</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</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-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1824"><a href="#L-1824"><span class="linenos">1824</span></a>
+</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a>
+</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</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-1827"><a href="#L-1827"><span class="linenos">1827</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1828"><a href="#L-1828"><span class="linenos">1828</span></a>
+</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a>
+</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</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-1831"><a href="#L-1831"><span class="linenos">1831</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-1832"><a href="#L-1832"><span class="linenos">1832</span></a>
+</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a>
+</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</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-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1836"><a href="#L-1836"><span class="linenos">1836</span></a>
+</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a>
+</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a><span class="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-1839"><a href="#L-1839"><span class="linenos">1839</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-1840"><a href="#L-1840"><span class="linenos">1840</span></a>
+</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a>
+</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a><span class="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-1843"><a href="#L-1843"><span class="linenos">1843</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1844"><a href="#L-1844"><span class="linenos">1844</span></a>
+</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a>
+</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a><span class="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-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</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-1849"><a href="#L-1849"><span class="linenos">1849</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-1850"><a href="#L-1850"><span class="linenos">1850</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-1851"><a href="#L-1851"><span class="linenos">1851</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-1852"><a href="#L-1852"><span class="linenos">1852</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-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="p">}</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><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</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-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1856"><a href="#L-1856"><span class="linenos">1856</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-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1858"><a href="#L-1858"><span class="linenos">1858</span></a>
</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="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-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1860"><a href="#L-1860"><span class="linenos">1860</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-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</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-1865"><a href="#L-1865"><span class="linenos">1865</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-1864"><a href="#L-1864"><span class="linenos">1864</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-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1866"><a href="#L-1866"><span class="linenos">1866</span></a>
</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a>
-</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</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-1868"><a href="#L-1868"><span class="linenos">1868</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-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1870"><a href="#L-1870"><span class="linenos">1870</span></a>
</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a>
-</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</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-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="n">arg_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-1872"><a href="#L-1872"><span class="linenos">1872</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-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1874"><a href="#L-1874"><span class="linenos">1874</span></a>
-</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</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-1877"><a href="#L-1877"><span class="linenos">1877</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-1878"><a href="#L-1878"><span class="linenos">1878</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-1879"><a href="#L-1879"><span class="linenos">1879</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-1880"><a href="#L-1880"><span class="linenos">1880</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-1881"><a href="#L-1881"><span class="linenos">1881</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-1882"><a href="#L-1882"><span class="linenos">1882</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-1883"><a href="#L-1883"><span class="linenos">1883</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-1884"><a href="#L-1884"><span class="linenos">1884</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-1885"><a href="#L-1885"><span class="linenos">1885</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-1886"><a href="#L-1886"><span class="linenos">1886</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-1887"><a href="#L-1887"><span class="linenos">1887</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-1888"><a href="#L-1888"><span class="linenos">1888</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-1889"><a href="#L-1889"><span class="linenos">1889</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-1890"><a href="#L-1890"><span class="linenos">1890</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-1891"><a href="#L-1891"><span class="linenos">1891</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-1892"><a href="#L-1892"><span class="linenos">1892</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-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="s2">&quot;TABLE_FORMAT&quot;</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span>
-</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="p">}</span>
+</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a>
+</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</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-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1878"><a href="#L-1878"><span class="linenos">1878</span></a>
+</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a>
+</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</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-1881"><a href="#L-1881"><span class="linenos">1881</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-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><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</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-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1886"><a href="#L-1886"><span class="linenos">1886</span></a>
+</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a>
+</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</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-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</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-1893"><a href="#L-1893"><span class="linenos">1893</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-1894"><a href="#L-1894"><span class="linenos">1894</span></a>
</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a>
-</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</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-1897"><a href="#L-1897"><span class="linenos">1897</span></a>
-</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="c1">#</span>
-</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</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-1912"><a href="#L-1912"><span class="linenos">1912</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-1913"><a href="#L-1913"><span class="linenos">1913</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-1914"><a href="#L-1914"><span class="linenos">1914</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-1915"><a href="#L-1915"><span class="linenos">1915</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-1916"><a href="#L-1916"><span class="linenos">1916</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-1917"><a href="#L-1917"><span class="linenos">1917</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-1918"><a href="#L-1918"><span class="linenos">1918</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-1919"><a href="#L-1919"><span class="linenos">1919</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a>
-</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</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-1925"><a href="#L-1925"><span class="linenos">1925</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-1926"><a href="#L-1926"><span class="linenos">1926</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</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-1928"><a href="#L-1928"><span class="linenos">1928</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</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-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 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-1932"><a href="#L-1932"><span class="linenos">1932</span></a>
-</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 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-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="k">pass</span>
+</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</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-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</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-1899"><a href="#L-1899"><span class="linenos">1899</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-1900"><a href="#L-1900"><span class="linenos">1900</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-1901"><a href="#L-1901"><span class="linenos">1901</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-1902"><a href="#L-1902"><span class="linenos">1902</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-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="p">}</span>
+</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a>
+</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a>
+</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</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-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</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-1909"><a href="#L-1909"><span class="linenos">1909</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-1910"><a href="#L-1910"><span class="linenos">1910</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-1911"><a href="#L-1911"><span class="linenos">1911</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-1912"><a href="#L-1912"><span class="linenos">1912</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-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="p">}</span>
+</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a>
+</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="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-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1918"><a href="#L-1918"><span class="linenos">1918</span></a>
+</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a>
+</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</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-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1922"><a href="#L-1922"><span class="linenos">1922</span></a>
+</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a>
+</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</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-1925"><a href="#L-1925"><span class="linenos">1925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1926"><a href="#L-1926"><span class="linenos">1926</span></a>
+</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a>
+</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</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-1929"><a href="#L-1929"><span class="linenos">1929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</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-1931"><a href="#L-1931"><span class="linenos">1931</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-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</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-1934"><a href="#L-1934"><span class="linenos">1934</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-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="p">}</span>
</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a>
</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 class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
-</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</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-1940"><a href="#L-1940"><span class="linenos">1940</span></a> <span class="k">pass</span>
+</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</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-1939"><a href="#L-1939"><span class="linenos">1939</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-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><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</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-1944"><a href="#L-1944"><span class="linenos">1944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1942"><a href="#L-1942"><span class="linenos">1942</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-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 class="s2">&quot;this&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><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a>
-</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a>
-</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a><span 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-1948"><a href="#L-1948"><span class="linenos">1948</span></a> <span class="n">arg_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-1946"><a href="#L-1946"><span class="linenos">1946</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-1947"><a href="#L-1947"><span class="linenos">1947</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1948"><a href="#L-1948"><span class="linenos">1948</span></a>
</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a>
-</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 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-1952"><a href="#L-1952"><span class="linenos">1952</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a>
-</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a><span class="sd"> Example:</span>
-</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</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-1951"><a href="#L-1951"><span class="linenos">1951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a>
+</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 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-1955"><a href="#L-1955"><span class="linenos">1955</span></a> <span class="n">arg_type</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-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">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a>
-</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a><span class="sd"> Args:</span>
-</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</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">ReturnsProperty</span><span class="p">(</span><span class="n">Property</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">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-1964"><a href="#L-1964"><span class="linenos">1964</span></a>
-</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="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-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
-</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</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-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="p">)</span>
-</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a>
-</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
-</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a>
-</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="nd">@property</span>
-</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</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-1979"><a href="#L-1979"><span class="linenos">1979</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-1980"><a href="#L-1980"><span class="linenos">1980</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-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</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-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="nd">@property</span>
-</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</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-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="nd">@property</span>
-</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</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-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">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a> <span class="n">append</span><span class="o">=</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 class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a> <span class="n">copy</span><span class="o">=</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="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="p">):</span>
-</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a>
-</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a><span class="sd"> Example:</span>
-</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</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-2007"><a href="#L-2007"><span class="linenos">2007</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a>
-</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a><span class="sd"> Args:</span>
-</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
-</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
-</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a> <span class="p">)</span>
-</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="p">)</span>
-</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
-</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
-</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
-</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="p">)</span>
-</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</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-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</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-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="p">)</span>
-</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a>
-</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="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</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-2052"><a href="#L-2052"><span class="linenos">2052</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-2053"><a href="#L-2053"><span class="linenos">2053</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-2054"><a href="#L-2054"><span class="linenos">2054</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-2055"><a href="#L-2055"><span class="linenos">2055</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-2056"><a href="#L-2056"><span class="linenos">2056</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-2057"><a href="#L-2057"><span class="linenos">2057</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-2058"><a href="#L-2058"><span class="linenos">2058</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-2059"><a href="#L-2059"><span class="linenos">2059</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-2060"><a href="#L-2060"><span class="linenos">2060</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-2061"><a href="#L-2061"><span class="linenos">2061</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-2062"><a href="#L-2062"><span class="linenos">2062</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-2063"><a href="#L-2063"><span class="linenos">2063</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-2064"><a href="#L-2064"><span class="linenos">2064</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-2065"><a href="#L-2065"><span class="linenos">2065</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-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="s2">&quot;lock&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</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-2068"><a href="#L-2068"><span class="linenos">2068</span></a><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><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</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-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><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></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-2074"><a href="#L-2074"><span class="linenos">2074</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-2075"><a href="#L-2075"><span class="linenos">2075</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-2076"><a href="#L-2076"><span class="linenos">2076</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-2077"><a href="#L-2077"><span class="linenos">2077</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-2078"><a href="#L-2078"><span class="linenos">2078</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-2079"><a href="#L-2079"><span class="linenos">2079</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-2080"><a href="#L-2080"><span class="linenos">2080</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-2081"><a href="#L-2081"><span class="linenos">2081</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-2082"><a href="#L-2082"><span class="linenos">2082</span></a> <span class="p">}</span>
-</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a>
-</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> <span class="nd">@property</span>
-</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</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-2086"><a href="#L-2086"><span class="linenos">2086</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-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="nd">@property</span>
-</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</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-2090"><a href="#L-2090"><span class="linenos">2090</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-2091"><a href="#L-2091"><span class="linenos">2091</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="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-1967"><a href="#L-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">True</span><span class="p">}</span>
+</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a>
+</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a>
+</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a><span class="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-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="p">}</span>
+</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a>
+</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a>
+</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a><span 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-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1985"><a href="#L-1985"><span class="linenos">1985</span></a>
+</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a>
+</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a>
+</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a>
+</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</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-1992"><a href="#L-1992"><span class="linenos">1992</span></a> <span class="n">arg_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-1993"><a href="#L-1993"><span class="linenos">1993</span></a>
+</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a>
+</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a><span class="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-1996"><a href="#L-1996"><span class="linenos">1996</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-1997"><a href="#L-1997"><span class="linenos">1997</span></a>
+</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a>
+</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</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-2000"><a href="#L-2000"><span class="linenos">2000</span></a> <span class="n">arg_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-2001"><a href="#L-2001"><span class="linenos">2001</span></a>
+</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 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-2004"><a href="#L-2004"><span class="linenos">2004</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2005"><a href="#L-2005"><span class="linenos">2005</span></a>
+</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a>
+</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</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-2008"><a href="#L-2008"><span class="linenos">2008</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-2009"><a href="#L-2009"><span class="linenos">2009</span></a>
+</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a>
+</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a><span 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-2012"><a href="#L-2012"><span class="linenos">2012</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a>
+</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a>
+</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a><span class="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-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a>
+</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a>
+</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a><span class="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-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2021"><a href="#L-2021"><span class="linenos">2021</span></a>
+</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a>
+</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a><span class="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-2024"><a href="#L-2024"><span class="linenos">2024</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</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-2028"><a href="#L-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;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-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><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</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-2032"><a href="#L-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>
+</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><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</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-2036"><a href="#L-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><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="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
+</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</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-2041"><a href="#L-2041"><span class="linenos">2041</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-2042"><a href="#L-2042"><span class="linenos">2042</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-2043"><a href="#L-2043"><span class="linenos">2043</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-2044"><a href="#L-2044"><span class="linenos">2044</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-2045"><a href="#L-2045"><span class="linenos">2045</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-2046"><a href="#L-2046"><span class="linenos">2046</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-2047"><a href="#L-2047"><span class="linenos">2047</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-2048"><a href="#L-2048"><span class="linenos">2048</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-2049"><a href="#L-2049"><span class="linenos">2049</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-2050"><a href="#L-2050"><span class="linenos">2050</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-2051"><a href="#L-2051"><span class="linenos">2051</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-2052"><a href="#L-2052"><span class="linenos">2052</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-2053"><a href="#L-2053"><span class="linenos">2053</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-2054"><a href="#L-2054"><span class="linenos">2054</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-2055"><a href="#L-2055"><span class="linenos">2055</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-2056"><a href="#L-2056"><span class="linenos">2056</span></a> <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="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-2059"><a href="#L-2059"><span class="linenos">2059</span></a>
+</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a> <span class="c1">#</span>
+</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</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-2074"><a href="#L-2074"><span class="linenos">2074</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-2075"><a href="#L-2075"><span class="linenos">2075</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-2076"><a href="#L-2076"><span class="linenos">2076</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-2077"><a href="#L-2077"><span class="linenos">2077</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-2078"><a href="#L-2078"><span class="linenos">2078</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-2079"><a href="#L-2079"><span class="linenos">2079</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-2080"><a href="#L-2080"><span class="linenos">2080</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-2081"><a href="#L-2081"><span class="linenos">2081</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</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="nd">@classmethod</span>
+</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</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-2085"><a href="#L-2085"><span class="linenos">2085</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</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-2087"><a href="#L-2087"><span class="linenos">2087</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-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</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-2090"><a href="#L-2090"><span class="linenos">2090</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</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-2092"><a href="#L-2092"><span class="linenos">2092</span></a>
-</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a><span class="c1"># See the TSQL &quot;Querying data in a system-versioned temporal table&quot; page</span>
-</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</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-2097"><a href="#L-2097"><span class="linenos">2097</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-2098"><a href="#L-2098"><span class="linenos">2098</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-2099"><a href="#L-2099"><span class="linenos">2099</span></a> <span class="p">}</span>
-</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="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-2103"><a href="#L-2103"><span class="linenos">2103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</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-2105"><a href="#L-2105"><span class="linenos">2105</span></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-2106"><a href="#L-2106"><span class="linenos">2106</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-2107"><a href="#L-2107"><span class="linenos">2107</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-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a> <span class="p">}</span>
-</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">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a><span class="sd"> Set the LIMIT expression.</span>
-</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="sd"> Example:</span>
-</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</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-2117"><a href="#L-2117"><span class="linenos">2117</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</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="sd"> Args:</span>
-</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a>
-</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a><span class="sd"> Select: The limited subqueryable.</span>
-</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</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-2133"><a href="#L-2133"><span class="linenos">2133</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-2134"><a href="#L-2134"><span class="linenos">2134</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-2135"><a href="#L-2135"><span class="linenos">2135</span></a> <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 class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</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-2141"><a href="#L-2141"><span class="linenos">2141</span></a> <span class="n">dialect</span><span 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-2142"><a href="#L-2142"><span class="linenos">2142</span></a> <span class="n">copy</span><span 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-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</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-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="sd"> Example:</span>
-</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</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-2150"><a href="#L-2150"><span class="linenos">2150</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-2151"><a href="#L-2151"><span class="linenos">2151</span></a>
-</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a><span class="sd"> Args:</span>
-</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</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-2094"><a href="#L-2094"><span class="linenos">2094</span></a>
+</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a>
+</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</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-2097"><a href="#L-2097"><span class="linenos">2097</span></a> <span class="k">pass</span>
+</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a>
+</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a>
+</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
+</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</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-2102"><a href="#L-2102"><span class="linenos">2102</span></a> <span class="k">pass</span>
+</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a>
+</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a>
+</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-2107"><a href="#L-2107"><span class="linenos">2107</span></a>
+</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a>
+</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a><span class="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-2110"><a href="#L-2110"><span class="linenos">2110</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a>
+</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><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-2114"><a href="#L-2114"><span class="linenos">2114</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</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-2117"><a href="#L-2117"><span class="linenos">2117</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-2118"><a href="#L-2118"><span class="linenos">2118</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-2119"><a href="#L-2119"><span class="linenos">2119</span></a> <span class="p">)</span>
+</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a>
+</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a>
+</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</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-2123"><a href="#L-2123"><span class="linenos">2123</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-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</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 class="sd"> Example:</span>
+</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a>
+</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a><span class="sd"> Args:</span>
+</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a>
+</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</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-2140"><a href="#L-2140"><span class="linenos">2140</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-2141"><a href="#L-2141"><span class="linenos">2141</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-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">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-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 class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</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-2147"><a href="#L-2147"><span class="linenos">2147</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</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 class="nd">@property</span>
+</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</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-2152"><a href="#L-2152"><span class="linenos">2152</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-2153"><a href="#L-2153"><span class="linenos">2153</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-2154"><a href="#L-2154"><span class="linenos">2154</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</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-2156"><a href="#L-2156"><span class="linenos">2156</span></a>
+</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="nd">@property</span>
+</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</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-2160"><a href="#L-2160"><span class="linenos">2160</span></a>
-</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</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-2165"><a href="#L-2165"><span class="linenos">2165</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-2166"><a href="#L-2166"><span class="linenos">2166</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-2167"><a href="#L-2167"><span class="linenos">2167</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-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="p">)</span>
-</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="k">return</span> <span class="n">this</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="nd">@property</span>
-</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</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-2174"><a href="#L-2174"><span class="linenos">2174</span></a>
-</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a> <span class="nd">@property</span>
-</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</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-2177"><a href="#L-2177"><span class="linenos">2177</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-2178"><a href="#L-2178"><span class="linenos">2178</span></a>
-</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a> <span class="nd">@property</span>
-</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</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-2182"><a href="#L-2182"><span class="linenos">2182</span></a>
-</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a> <span class="nd">@property</span>
-</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</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-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="nd">@property</span>
-</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</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-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><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</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-2193"><a href="#L-2193"><span class="linenos">2193</span></a> <span class="k">pass</span>
-</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><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</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-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="k">pass</span>
-</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a>
-</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a>
-</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</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><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</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-2203"><a href="#L-2203"><span class="linenos">2203</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-2204"><a href="#L-2204"><span class="linenos">2204</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-2205"><a href="#L-2205"><span class="linenos">2205</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-2206"><a href="#L-2206"><span class="linenos">2206</span></a> <span class="p">}</span>
-</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a>
-</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a>
-</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</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-2210"><a href="#L-2210"><span class="linenos">2210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</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-2212"><a href="#L-2212"><span class="linenos">2212</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-2213"><a href="#L-2213"><span class="linenos">2213</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-2214"><a href="#L-2214"><span class="linenos">2214</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-2215"><a href="#L-2215"><span class="linenos">2215</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-2216"><a href="#L-2216"><span class="linenos">2216</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-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="p">}</span>
-</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a>
-</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a>
-</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</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-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</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-2223"><a href="#L-2223"><span class="linenos">2223</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-2224"><a href="#L-2224"><span class="linenos">2224</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-2225"><a href="#L-2225"><span class="linenos">2225</span></a> <span class="p">}</span>
-</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a>
-</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a>
-</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a><span class="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-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="k">pass</span>
-</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a>
-</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a>
-</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a><span class="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-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2234"><a href="#L-2234"><span class="linenos">2234</span></a>
-</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a>
-</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a><span class="c1"># Used to represent the FOR UPDATE and FOR SHARE locking read types.</span>
-</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html</span>
-</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</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-2239"><a href="#L-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;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a>
+</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="nd">@property</span>
+</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</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-2164"><a href="#L-2164"><span class="linenos">2164</span></a>
+</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</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-2170"><a href="#L-2170"><span class="linenos">2170</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-2171"><a href="#L-2171"><span class="linenos">2171</span></a> <span class="n">dialect</span><span 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-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="n">copy</span><span 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-2173"><a href="#L-2173"><span class="linenos">2173</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a>
+</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a><span class="sd"> Example:</span>
+</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</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-2180"><a href="#L-2180"><span class="linenos">2180</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a>
+</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a><span class="sd"> Args:</span>
+</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a>
+</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</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-2199"><a href="#L-2199"><span class="linenos">2199</span></a> <span class="p">)</span>
+</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a>
+</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a>
+</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</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-2204"><a href="#L-2204"><span class="linenos">2204</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-2205"><a href="#L-2205"><span class="linenos">2205</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-2206"><a href="#L-2206"><span class="linenos">2206</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-2207"><a href="#L-2207"><span class="linenos">2207</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-2208"><a href="#L-2208"><span class="linenos">2208</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-2209"><a href="#L-2209"><span class="linenos">2209</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-2210"><a href="#L-2210"><span class="linenos">2210</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-2211"><a href="#L-2211"><span class="linenos">2211</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-2212"><a href="#L-2212"><span class="linenos">2212</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-2213"><a href="#L-2213"><span class="linenos">2213</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-2214"><a href="#L-2214"><span class="linenos">2214</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-2215"><a href="#L-2215"><span class="linenos">2215</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-2216"><a href="#L-2216"><span class="linenos">2216</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-2217"><a href="#L-2217"><span class="linenos">2217</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-2218"><a href="#L-2218"><span class="linenos">2218</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-2219"><a href="#L-2219"><span class="linenos">2219</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-2220"><a href="#L-2220"><span class="linenos">2220</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-2221"><a href="#L-2221"><span class="linenos">2221</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-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">Table</span><span class="p">(</span><span class="n">Expression</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><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></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-2228"><a href="#L-2228"><span class="linenos">2228</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-2229"><a href="#L-2229"><span class="linenos">2229</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-2230"><a href="#L-2230"><span class="linenos">2230</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-2231"><a href="#L-2231"><span class="linenos">2231</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-2232"><a href="#L-2232"><span class="linenos">2232</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-2233"><a href="#L-2233"><span class="linenos">2233</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-2234"><a href="#L-2234"><span class="linenos">2234</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-2235"><a href="#L-2235"><span class="linenos">2235</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-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="p">}</span>
+</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a>
+</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="nd">@property</span>
+</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</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-2240"><a href="#L-2240"><span class="linenos">2240</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-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">Select</span><span class="p">(</span><span class="n">Subqueryable</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><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</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-2245"><a href="#L-2245"><span class="linenos">2245</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-2246"><a href="#L-2246"><span class="linenos">2246</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-2247"><a href="#L-2247"><span class="linenos">2247</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-2248"><a href="#L-2248"><span class="linenos">2248</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-2249"><a href="#L-2249"><span class="linenos">2249</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-2250"><a href="#L-2250"><span class="linenos">2250</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-2251"><a href="#L-2251"><span class="linenos">2251</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a> <span class="p">}</span>
-</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">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a><span class="sd"> Set the FROM expression.</span>
-</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="sd"> Example:</span>
-</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a>
-</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a><span class="sd"> Args:</span>
-</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
-</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a>
-</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</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-2279"><a href="#L-2279"><span class="linenos">2279</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</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-2282"><a href="#L-2282"><span class="linenos">2282</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a> <span class="p">)</span>
-</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a>
-</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a>
-</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a><span class="sd"> Example:</span>
-</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
-</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a>
-</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a><span class="sd"> Args:</span>
-</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</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-2300"><a href="#L-2300"><span class="linenos">2300</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</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-2310"><a href="#L-2310"><span class="linenos">2310</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-2311"><a href="#L-2311"><span class="linenos">2311</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</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-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</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-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="p">)</span>
-</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a>
-</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a>
-</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a><span class="sd"> Example:</span>
-</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</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-2329"><a href="#L-2329"><span class="linenos">2329</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</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="sd"> Args:</span>
-</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a>
-</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</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-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</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-2351"><a href="#L-2351"><span class="linenos">2351</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="p">)</span>
+</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="nd">@property</span>
+</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</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-2244"><a href="#L-2244"><span class="linenos">2244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
+</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="nd">@property</span>
+</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</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-2248"><a href="#L-2248"><span class="linenos">2248</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-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</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-2251"><a href="#L-2251"><span class="linenos">2251</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;this&quot;</span><span class="p">)</span>
+</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</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-2253"><a href="#L-2253"><span class="linenos">2253</span></a> <span class="p">]</span>
+</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a>
+</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a>
+</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a><span class="c1"># See the TSQL &quot;Querying data in a system-versioned temporal table&quot; page</span>
+</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-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><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</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-2260"><a href="#L-2260"><span class="linenos">2260</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-2261"><a href="#L-2261"><span class="linenos">2261</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-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="p">}</span>
+</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a>
+</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">Union</span><span class="p">(</span><span class="n">Subqueryable</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><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</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-2268"><a href="#L-2268"><span class="linenos">2268</span></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-2269"><a href="#L-2269"><span class="linenos">2269</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-2270"><a href="#L-2270"><span class="linenos">2270</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-2271"><a href="#L-2271"><span class="linenos">2271</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a> <span class="p">}</span>
+</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a>
+</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</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-2276"><a href="#L-2276"><span class="linenos">2276</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a>
+</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a><span class="sd"> Example:</span>
+</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</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-2282"><a href="#L-2282"><span class="linenos">2282</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a>
+</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a><span class="sd"> Args:</span>
+</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a><span class="sd"> The limited subqueryable.</span>
+</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</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-2298"><a href="#L-2298"><span class="linenos">2298</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-2299"><a href="#L-2299"><span class="linenos">2299</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-2300"><a href="#L-2300"><span class="linenos">2300</span></a> <span class="p">)</span>
+</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">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</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-2305"><a href="#L-2305"><span class="linenos">2305</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-2306"><a href="#L-2306"><span class="linenos">2306</span></a> <span class="n">dialect</span><span 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-2307"><a href="#L-2307"><span class="linenos">2307</span></a> <span class="n">copy</span><span 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-2308"><a href="#L-2308"><span class="linenos">2308</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</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-2311"><a href="#L-2311"><span class="linenos">2311</span></a>
+</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a><span class="sd"> Example:</span>
+</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</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-2315"><a href="#L-2315"><span class="linenos">2315</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-2316"><a href="#L-2316"><span class="linenos">2316</span></a>
+</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a><span class="sd"> Args:</span>
+</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a>
+</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</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-2330"><a href="#L-2330"><span class="linenos">2330</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-2331"><a href="#L-2331"><span class="linenos">2331</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-2332"><a href="#L-2332"><span class="linenos">2332</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-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="p">)</span>
+</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a>
+</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a> <span class="nd">@property</span>
+</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</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-2339"><a href="#L-2339"><span class="linenos">2339</span></a>
+</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="nd">@property</span>
+</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</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-2342"><a href="#L-2342"><span class="linenos">2342</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-2343"><a href="#L-2343"><span class="linenos">2343</span></a>
+</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="nd">@property</span>
+</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</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-2347"><a href="#L-2347"><span class="linenos">2347</span></a>
+</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="nd">@property</span>
+</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</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-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="nd">@property</span>
+</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</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-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">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a>
+</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</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-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="k">pass</span>
</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="sd"> Example:</span>
-</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a>
+</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</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 class="sd"> Args:</span>
-</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a>
+</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a><span 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-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><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a> <span class="p">}</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><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</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">expressions</span><span class="p">,</span>
-</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</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-2381"><a href="#L-2381"><span class="linenos">2381</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</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-2384"><a href="#L-2384"><span class="linenos">2384</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="o">**</span><span class="n">opts</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><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</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-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</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-2377"><a href="#L-2377"><span class="linenos">2377</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-2378"><a href="#L-2378"><span class="linenos">2378</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-2379"><a href="#L-2379"><span class="linenos">2379</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-2380"><a href="#L-2380"><span class="linenos">2380</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-2381"><a href="#L-2381"><span class="linenos">2381</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-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="p">}</span>
+</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a>
+</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a>
+</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</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-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</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-2388"><a href="#L-2388"><span class="linenos">2388</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-2389"><a href="#L-2389"><span class="linenos">2389</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-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="p">}</span>
+</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a>
</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a>
-</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a><span class="sd"> Example:</span>
-</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</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-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="k">pass</span>
+</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a>
</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a>
-</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a><span class="sd"> Args:</span>
-</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</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-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-2399"><a href="#L-2399"><span class="linenos">2399</span></a>
+</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a>
+</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/select.html</span>
+</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html</span>
+</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</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-2404"><a href="#L-2404"><span class="linenos">2404</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-2405"><a href="#L-2405"><span class="linenos">2405</span></a>
</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a>
-</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</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-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</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-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="p">)</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="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a>
-</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a><span class="sd"> Example:</span>
-</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</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-2428"><a href="#L-2428"><span class="linenos">2428</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a>
-</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a><span class="sd"> Args:</span>
-</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</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-2408"><a href="#L-2408"><span class="linenos">2408</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</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-2410"><a href="#L-2410"><span class="linenos">2410</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-2411"><a href="#L-2411"><span class="linenos">2411</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-2412"><a href="#L-2412"><span class="linenos">2412</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-2413"><a href="#L-2413"><span class="linenos">2413</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-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="s2">&quot;struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table</span>
+</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</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-2417"><a href="#L-2417"><span class="linenos">2417</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-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="p">}</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="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</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-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a>
+</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a><span class="sd"> Example:</span>
+</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a>
+</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a><span class="sd"> Args:</span>
+</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
-</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</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-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</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-2445"><a href="#L-2445"><span class="linenos">2445</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-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</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-2448"><a href="#L-2448"><span class="linenos">2448</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a> <span class="p">)</span>
</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a>
-</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a>
-</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a><span class="sd"> Example:</span>
-</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</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-2459"><a href="#L-2459"><span class="linenos">2459</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a>
-</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a><span class="sd"> Args:</span>
-</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a>
-</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</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-2477"><a href="#L-2477"><span class="linenos">2477</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</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-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> <span class="p">)</span>
-</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="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</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-2488"><a href="#L-2488"><span class="linenos">2488</span></a> <span class="n">dialect</span><span 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-2489"><a href="#L-2489"><span class="linenos">2489</span></a> <span class="n">copy</span><span 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-2490"><a href="#L-2490"><span class="linenos">2490</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a>
-</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a><span class="sd"> Example:</span>
-</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a>
-</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a><span class="sd"> Args:</span>
-</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> <span class="bp">self</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">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-2456"><a href="#L-2456"><span class="linenos">2456</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-2457"><a href="#L-2457"><span class="linenos">2457</span></a> <span class="n">dialect</span><span 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-2458"><a href="#L-2458"><span class="linenos">2458</span></a> <span class="n">copy</span><span 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-2459"><a href="#L-2459"><span class="linenos">2459</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a><span class="sd"> Set the GROUP BY expression.</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"> Example:</span>
+</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</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-2466"><a href="#L-2466"><span class="linenos">2466</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a>
+</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a><span class="sd"> Args:</span>
+</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</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-2473"><a href="#L-2473"><span class="linenos">2473</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a>
+</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</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-2483"><a href="#L-2483"><span class="linenos">2483</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-2484"><a href="#L-2484"><span class="linenos">2484</span></a>
+</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</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-2489"><a href="#L-2489"><span class="linenos">2489</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</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-2492"><a href="#L-2492"><span class="linenos">2492</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a> <span class="p">)</span>
+</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a>
+</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
+</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</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-2500"><a href="#L-2500"><span class="linenos">2500</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-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="n">dialect</span><span 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-2502"><a href="#L-2502"><span class="linenos">2502</span></a> <span class="n">copy</span><span 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-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a><span class="sd"> Set the ORDER BY expression.</span>
</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="sd"> Returns:</span>
-</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</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-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a> <span class="p">)</span>
-</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a>
-</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a>
-</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a><span class="sd"> Example:</span>
-</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</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-2527"><a href="#L-2527"><span class="linenos">2527</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a>
-</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a><span class="sd"> Args:</span>
-</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a>
-</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</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-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</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-2548"><a href="#L-2548"><span class="linenos">2548</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="p">)</span>
-</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a>
-</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a><span class="sd"> Append to or set the JOIN expressions.</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="sd"> Example:</span>
-</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</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-2570"><a href="#L-2570"><span class="linenos">2570</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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="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-2573"><a href="#L-2573"><span class="linenos">2573</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a>
-</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a><span class="sd"> Example:</span>
+</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</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-2510"><a href="#L-2510"><span class="linenos">2510</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</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 class="sd"> Args:</span>
+</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a>
+</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</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-2529"><a href="#L-2529"><span class="linenos">2529</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</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-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="p">)</span>
+</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a>
+</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</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-2540"><a href="#L-2540"><span class="linenos">2540</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-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="n">dialect</span><span 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-2542"><a href="#L-2542"><span class="linenos">2542</span></a> <span class="n">copy</span><span 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-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a><span class="sd"> Set the SORT BY expression.</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="sd"> Example:</span>
+</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</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-2550"><a href="#L-2550"><span class="linenos">2550</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</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="sd"> Args:</span>
+</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a>
+</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</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-2569"><a href="#L-2569"><span class="linenos">2569</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</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-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> <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="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-2578"><a href="#L-2578"><span class="linenos">2578</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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="sd"> Args:</span>
-</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
-</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a>
-</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
-</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a>
-</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</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-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</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-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="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-2605"><a href="#L-2605"><span class="linenos">2605</span></a>
-</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</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-2607"><a href="#L-2607"><span class="linenos">2607</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-2608"><a href="#L-2608"><span class="linenos">2608</span></a>
-</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
-</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</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-2612"><a href="#L-2612"><span class="linenos">2612</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-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="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a>
-</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
-</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</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-2620"><a href="#L-2620"><span class="linenos">2620</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</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-2577"><a href="#L-2577"><span class="linenos">2577</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</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-2580"><a href="#L-2580"><span class="linenos">2580</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-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="n">dialect</span><span 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-2582"><a href="#L-2582"><span class="linenos">2582</span></a> <span class="n">copy</span><span 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-2583"><a href="#L-2583"><span class="linenos">2583</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a><span class="sd"> Set the CLUSTER BY expression.</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="sd"> Example:</span>
+</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</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-2590"><a href="#L-2590"><span class="linenos">2590</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a>
+</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a><span class="sd"> Args:</span>
+</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a>
+</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</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-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</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-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</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">opts</span><span class="p">,</span>
+</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="p">)</span>
+</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a>
+</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</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-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a>
-</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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-2625"><a href="#L-2625"><span class="linenos">2625</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-2623"><a href="#L-2623"><span class="linenos">2623</span></a><span class="sd"> Example:</span>
+</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</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-2625"><a href="#L-2625"><span class="linenos">2625</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a>
-</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</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-2629"><a href="#L-2629"><span class="linenos">2629</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</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-2632"><a href="#L-2632"><span class="linenos">2632</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a> <span class="p">)</span>
-</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a>
-</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</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-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a><span class="sd"> Args:</span>
+</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a>
+</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</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-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="p">)</span>
-</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a>
-</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a><span class="sd"> Append to or set the WHERE expressions.</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="sd"> Example:</span>
-</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</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-2654"><a href="#L-2654"><span class="linenos">2654</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-2642"><a href="#L-2642"><span class="linenos">2642</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-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</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-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="p">)</span>
+</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a>
+</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
+</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</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-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a><span class="sd"> Set the OFFSET expression.</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="sd"> Args:</span>
-</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a><span class="sd"> dialect (str): 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 (bool): 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 (kwargs): 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"> Select: 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="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</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-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="p">)</span>
-</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a>
-</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a>
-</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a><span class="sd"> Example:</span>
-</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</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-2686"><a href="#L-2686"><span class="linenos">2686</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-2687"><a href="#L-2687"><span class="linenos">2687</span></a>
-</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a><span class="sd"> Args:</span>
-</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a><span class="sd"> Example:</span>
+</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</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-2658"><a href="#L-2658"><span class="linenos">2658</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</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="sd"> Args:</span>
+</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a>
+</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
+</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</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-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="p">)</span>
+</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a>
+</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</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-2686"><a href="#L-2686"><span class="linenos">2686</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-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">dialect</span><span 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-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="n">copy</span><span 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-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a>
+</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a><span class="sd"> Example:</span>
+</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a>
-</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</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-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a> <span class="o">**</span><span class="n">opts</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 class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</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-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</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-2729"><a href="#L-2729"><span class="linenos">2729</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a> <span class="p">)</span>
-</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a>
-</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><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">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 class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a>
-</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a><span class="sd"> Example:</span>
-</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a><span class="sd"> Args:</span>
+</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a>
+</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</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-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="p">)</span>
+</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a>
+</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</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-2723"><a href="#L-2723"><span class="linenos">2723</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-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="n">dialect</span><span 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-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">copy</span><span 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-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a>
+</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a><span class="sd"> Example:</span>
+</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</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-2733"><a href="#L-2733"><span class="linenos">2733</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
+</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a>
+</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a><span class="sd"> Args:</span>
+</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a>
-</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a><span class="sd"> Args:</span>
-</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a>
-</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</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-2753"><a href="#L-2753"><span class="linenos">2753</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="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-2754"><a href="#L-2754"><span class="linenos">2754</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-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="k">return</span> <span class="n">instance</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 class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a>
-</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a><span class="sd"> Example:</span>
-</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</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-2763"><a href="#L-2763"><span class="linenos">2763</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a>
-</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a><span class="sd"> Args:</span>
-</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
-</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
-</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
-</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a>
-</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
-</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</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-2777"><a href="#L-2777"><span class="linenos">2777</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-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a> <span class="p">)</span>
-</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</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-2786"><a href="#L-2786"><span class="linenos">2786</span></a>
-</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</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-2789"><a href="#L-2789"><span class="linenos">2789</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-2790"><a href="#L-2790"><span class="linenos">2790</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</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-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="p">)</span>
-</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a>
-</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</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-2795"><a href="#L-2795"><span class="linenos">2795</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a>
-</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a><span class="sd"> Examples:</span>
-</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</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-2800"><a href="#L-2800"><span class="linenos">2800</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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="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-2803"><a href="#L-2803"><span class="linenos">2803</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a>
-</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a><span class="sd"> Args:</span>
-</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</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-2807"><a href="#L-2807"><span class="linenos">2807</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a>
-</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</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 class="sd"> Returns:</span>
+</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</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-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</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-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="p">)</span>
+</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a>
+</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</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-2763"><a href="#L-2763"><span class="linenos">2763</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">List</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-2764"><a href="#L-2764"><span class="linenos">2764</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-2765"><a href="#L-2765"><span class="linenos">2765</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-2766"><a href="#L-2766"><span class="linenos">2766</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-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="n">dialect</span><span 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-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <span class="n">copy</span><span 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-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a>
+</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a><span class="sd"> Example:</span>
+</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</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-2776"><a href="#L-2776"><span class="linenos">2776</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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="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-2779"><a href="#L-2779"><span class="linenos">2779</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a>
+</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a>
+</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a><span class="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-2784"><a href="#L-2784"><span class="linenos">2784</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a>
+</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a><span class="sd"> Args:</span>
+</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a>
+</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
+</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a>
+</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</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 class="c1"># type: ignore</span>
+</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</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 class="c1"># type: ignore</span>
+</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a>
+</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="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-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="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-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span>
+</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</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-2814"><a href="#L-2814"><span class="linenos">2814</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-2815"><a href="#L-2815"><span class="linenos">2815</span></a>
-</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a>
-</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="nd">@property</span>
-</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</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-2820"><a href="#L-2820"><span class="linenos">2820</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-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="nd">@property</span>
-</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</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-2824"><a href="#L-2824"><span class="linenos">2824</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-2825"><a href="#L-2825"><span class="linenos">2825</span></a>
-</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="nd">@property</span>
-</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</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-2828"><a href="#L-2828"><span class="linenos">2828</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-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
+</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</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-2819"><a href="#L-2819"><span class="linenos">2819</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-2820"><a href="#L-2820"><span class="linenos">2820</span></a>
+</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a>
+</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
+</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</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-2827"><a href="#L-2827"><span class="linenos">2827</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</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-2829"><a href="#L-2829"><span class="linenos">2829</span></a>
-</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a>
-</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a><span class="k">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-2832"><a href="#L-2832"><span class="linenos">2832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></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-2834"><a href="#L-2834"><span class="linenos">2834</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-2835"><a href="#L-2835"><span class="linenos">2835</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-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="p">}</span>
-</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a>
-</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span 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-2840"><a href="#L-2840"><span class="linenos">2840</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</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-2845"><a href="#L-2845"><span class="linenos">2845</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-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a>
-</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="nd">@property</span>
-</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</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-2850"><a href="#L-2850"><span class="linenos">2850</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-2851"><a href="#L-2851"><span class="linenos">2851</span></a>
-</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="nd">@property</span>
-</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</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-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</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-2832"><a href="#L-2832"><span class="linenos">2832</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-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">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</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-2836"><a href="#L-2836"><span class="linenos">2836</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-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</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-2839"><a href="#L-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="L-2840"><a href="#L-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="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="p">)</span>
+</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a>
+</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</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-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="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</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-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="p">)</span>
</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a>
-</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a>
-</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</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-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</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-2860"><a href="#L-2860"><span class="linenos">2860</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-2861"><a href="#L-2861"><span class="linenos">2861</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-2862"><a href="#L-2862"><span class="linenos">2862</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-2863"><a href="#L-2863"><span class="linenos">2863</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-2864"><a href="#L-2864"><span class="linenos">2864</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-2865"><a href="#L-2865"><span class="linenos">2865</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-2866"><a href="#L-2866"><span class="linenos">2866</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-2867"><a href="#L-2867"><span class="linenos">2867</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-2868"><a href="#L-2868"><span class="linenos">2868</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-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="p">}</span>
+</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</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-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="n">dialect</span><span 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-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a>
+</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a><span class="sd"> Example:</span>
+</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</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-2869"><a href="#L-2869"><span class="linenos">2869</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-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><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</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-2873"><a href="#L-2873"><span class="linenos">2873</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-2874"><a href="#L-2874"><span class="linenos">2874</span></a>
-</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</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-2877"><a href="#L-2877"><span class="linenos">2877</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-2878"><a href="#L-2878"><span class="linenos">2878</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-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="p">}</span>
+</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a><span class="sd"> Args:</span>
+</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a>
-</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a>
-</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a><span class="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-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</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-2885"><a href="#L-2885"><span class="linenos">2885</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-2886"><a href="#L-2886"><span class="linenos">2886</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-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</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-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="p">}</span>
-</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a>
-</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a>
-</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></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-2896"><a href="#L-2896"><span class="linenos">2896</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-2897"><a href="#L-2897"><span class="linenos">2897</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-2898"><a href="#L-2898"><span class="linenos">2898</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-2899"><a href="#L-2899"><span class="linenos">2899</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-2900"><a href="#L-2900"><span class="linenos">2900</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-2901"><a href="#L-2901"><span class="linenos">2901</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-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="p">}</span>
-</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a>
-</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a>
-</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a><span class="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-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</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-2908"><a href="#L-2908"><span class="linenos">2908</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-2909"><a href="#L-2909"><span class="linenos">2909</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-2910"><a href="#L-2910"><span class="linenos">2910</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-2911"><a href="#L-2911"><span class="linenos">2911</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-2912"><a href="#L-2912"><span class="linenos">2912</span></a> <span class="p">}</span>
-</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a>
-</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a>
-</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="k">pass</span>
-</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a>
-</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a>
-</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</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-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2921"><a href="#L-2921"><span class="linenos">2921</span></a>
-</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a> <span class="nd">@property</span>
-</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</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-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</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="nd">@property</span>
-</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</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-2929"><a href="#L-2929"><span class="linenos">2929</span></a>
-</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a>
-</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</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-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</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="o">=</span><span class="n">dialect</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="o">=</span><span class="n">copy</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><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a>
+</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</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-2898"><a href="#L-2898"><span class="linenos">2898</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-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="n">dialect</span><span 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-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="n">copy</span><span 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-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a>
+</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a><span class="sd"> Example:</span>
+</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</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-2908"><a href="#L-2908"><span class="linenos">2908</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-2909"><a href="#L-2909"><span class="linenos">2909</span></a>
+</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a><span class="sd"> Args:</span>
+</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a>
+</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</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-2927"><a href="#L-2927"><span class="linenos">2927</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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">opts</span><span class="p">,</span>
+</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="p">)</span>
</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a>
-</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a>
-</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2937"><a href="#L-2937"><span class="linenos">2937</span></a>
-</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a>
-</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><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><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</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-2944"><a href="#L-2944"><span class="linenos">2944</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-2945"><a href="#L-2945"><span class="linenos">2945</span></a>
-</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="nd">@property</span>
-</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</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-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
-</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a>
-</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a>
-</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</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-2952"><a href="#L-2952"><span class="linenos">2952</span></a> <span class="k">pass</span>
-</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a>
-</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a>
-</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</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-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></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-2958"><a href="#L-2958"><span class="linenos">2958</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-2959"><a href="#L-2959"><span class="linenos">2959</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-2960"><a href="#L-2960"><span class="linenos">2960</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-2961"><a href="#L-2961"><span class="linenos">2961</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-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="p">}</span>
-</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a>
-</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</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-2965"><a href="#L-2965"><span class="linenos">2965</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</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-3023"><a href="#L-3023"><span class="linenos">3023</span></a>
-</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="p">}</span>
+</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</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-2937"><a href="#L-2937"><span class="linenos">2937</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-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="n">dialect</span><span 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-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="n">copy</span><span 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-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</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-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="p">)</span>
+</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a>
+</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="bp">self</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 class="n">t</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-2956"><a href="#L-2956"><span class="linenos">2956</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-2957"><a href="#L-2957"><span class="linenos">2957</span></a> <span class="n">dialect</span><span 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-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="n">copy</span><span 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-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</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-2965"><a href="#L-2965"><span class="linenos">2965</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> <span class="p">)</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="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</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-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a>
+</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a><span class="sd"> Example:</span>
+</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</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"> Args:</span>
+</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a>
+</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a><span class="sd"> &quot;&quot;&quot;</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="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-2991"><a href="#L-2991"><span class="linenos">2991</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-2992"><a href="#L-2992"><span class="linenos">2992</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-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a>
+</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</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-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="n">dialect</span><span 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-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="n">copy</span><span 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-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</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"> Convert this expression to a CREATE TABLE AS statement.</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().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#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="sd"> Args:</span>
+</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a>
+</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</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-3022"><a href="#L-3022"><span class="linenos">3022</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-3023"><a href="#L-3023"><span class="linenos">3023</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="p">)</span>
+</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</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-3031"><a href="#L-3031"><span class="linenos">3031</span></a>
-</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span class="p">}</span>
+</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</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-3034"><a href="#L-3034"><span class="linenos">3034</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-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</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-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span class="p">)</span>
</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a>
-</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="p">}</span>
-</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a>
-</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
-</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a>
-</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="p">}</span>
+</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</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-3040"><a href="#L-3040"><span class="linenos">3040</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a>
+</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a><span class="sd"> Examples:</span>
+</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</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-3045"><a href="#L-3045"><span class="linenos">3045</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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="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-3048"><a href="#L-3048"><span class="linenos">3048</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a>
+</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a><span class="sd"> Args:</span>
+</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</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-3052"><a href="#L-3052"><span class="linenos">3052</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a>
-</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</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-3059"><a href="#L-3059"><span class="linenos">3059</span></a>
-</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a> <span class="k">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-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
-</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</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-3068"><a href="#L-3068"><span class="linenos">3068</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-3069"><a href="#L-3069"><span class="linenos">3069</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-3070"><a href="#L-3070"><span class="linenos">3070</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</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-3073"><a href="#L-3073"><span class="linenos">3073</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-3054"><a href="#L-3054"><span class="linenos">3054</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a><span class="sd"> &quot;&quot;&quot;</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="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-3059"><a href="#L-3059"><span class="linenos">3059</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-3060"><a href="#L-3060"><span class="linenos">3060</span></a>
+</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a>
+</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a> <span class="nd">@property</span>
+</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</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-3065"><a href="#L-3065"><span class="linenos">3065</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-3066"><a href="#L-3066"><span class="linenos">3066</span></a>
+</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a> <span class="nd">@property</span>
+</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</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-3069"><a href="#L-3069"><span class="linenos">3069</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-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="nd">@property</span>
+</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</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-3073"><a href="#L-3073"><span class="linenos">3073</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-3074"><a href="#L-3074"><span class="linenos">3074</span></a>
-</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
-</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a>
-</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a>
-</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
-</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="k">pass</span>
-</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a>
+</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a>
+</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a><span class="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-3077"><a href="#L-3077"><span class="linenos">3077</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></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-3079"><a href="#L-3079"><span class="linenos">3079</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-3080"><a href="#L-3080"><span class="linenos">3080</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-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="p">}</span>
</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a>
-</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3086"><a href="#L-3086"><span class="linenos">3086</span></a>
-</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a>
-</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
-</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</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-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="k">pass</span>
-</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a>
+</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</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-3085"><a href="#L-3085"><span class="linenos">3085</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</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-3090"><a href="#L-3090"><span class="linenos">3090</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-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a>
-</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="k">pass</span>
-</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a>
+</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="nd">@property</span>
+</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</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-3095"><a href="#L-3095"><span class="linenos">3095</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-3096"><a href="#L-3096"><span class="linenos">3096</span></a>
-</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">pass</span>
-</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a>
+</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="nd">@property</span>
+</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</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-3099"><a href="#L-3099"><span class="linenos">3099</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-3100"><a href="#L-3100"><span class="linenos">3100</span></a>
-</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="k">pass</span>
-</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a>
-</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a>
-</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
-</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
-</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</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-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3109"><a href="#L-3109"><span class="linenos">3109</span></a>
-</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a>
-</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a>
-</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a>
-</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a>
-</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a>
-</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a>
-</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a>
-</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a>
+</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a><span class="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-3103"><a href="#L-3103"><span class="linenos">3103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</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-3105"><a href="#L-3105"><span class="linenos">3105</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-3106"><a href="#L-3106"><span class="linenos">3106</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-3107"><a href="#L-3107"><span class="linenos">3107</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-3108"><a href="#L-3108"><span class="linenos">3108</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-3109"><a href="#L-3109"><span class="linenos">3109</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-3110"><a href="#L-3110"><span class="linenos">3110</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-3111"><a href="#L-3111"><span class="linenos">3111</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-3112"><a href="#L-3112"><span class="linenos">3112</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-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="p">}</span>
+</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a>
+</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a>
+</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</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-3119"><a href="#L-3119"><span class="linenos">3119</span></a>
+</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</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-3122"><a href="#L-3122"><span class="linenos">3122</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-3123"><a href="#L-3123"><span class="linenos">3123</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-3124"><a href="#L-3124"><span class="linenos">3124</span></a> <span class="p">}</span>
</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a>
</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a>
-</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3129"><a href="#L-3129"><span class="linenos">3129</span></a>
-</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a>
-</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3133"><a href="#L-3133"><span class="linenos">3133</span></a>
-</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a>
-</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
-</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</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-3137"><a href="#L-3137"><span class="linenos">3137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3138"><a href="#L-3138"><span class="linenos">3138</span></a>
-</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="nd">@property</span>
-</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</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-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="nd">@property</span>
-</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</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-3146"><a href="#L-3146"><span class="linenos">3146</span></a>
+</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</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-3130"><a href="#L-3130"><span class="linenos">3130</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-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</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-3134"><a href="#L-3134"><span class="linenos">3134</span></a> <span class="p">}</span>
+</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a>
+</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a>
+</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></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-3140"><a href="#L-3140"><span class="linenos">3140</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-3141"><a href="#L-3141"><span class="linenos">3141</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-3142"><a href="#L-3142"><span class="linenos">3142</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-3143"><a href="#L-3143"><span class="linenos">3143</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-3144"><a href="#L-3144"><span class="linenos">3144</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-3145"><a href="#L-3145"><span class="linenos">3145</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-3146"><a href="#L-3146"><span class="linenos">3146</span></a> <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="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-3149"><a href="#L-3149"><span class="linenos">3149</span></a> <span class="k">pass</span>
-</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a>
-</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a>
-</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</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-3153"><a href="#L-3153"><span class="linenos">3153</span></a> <span class="k">pass</span>
-</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a>
-</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a>
-</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</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-3157"><a href="#L-3157"><span class="linenos">3157</span></a> <span class="k">pass</span>
+</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a>
+</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</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-3152"><a href="#L-3152"><span class="linenos">3152</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-3153"><a href="#L-3153"><span class="linenos">3153</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-3154"><a href="#L-3154"><span class="linenos">3154</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-3155"><a href="#L-3155"><span class="linenos">3155</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-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="p">}</span>
+</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a>
</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a>
-</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a>
-</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</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-3161"><a href="#L-3161"><span class="linenos">3161</span></a> <span class="k">pass</span>
+</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</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-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="k">pass</span>
+</span><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</span></a>
</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a>
-</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a>
-</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</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-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="k">pass</span>
-</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a>
-</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a>
-</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="k">pass</span>
-</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a>
-</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a>
-</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a> <span class="k">pass</span>
+</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</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-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3165"><a href="#L-3165"><span class="linenos">3165</span></a>
+</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="nd">@property</span>
+</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</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-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a>
+</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="nd">@property</span>
+</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</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-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><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a>
-</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="k">pass</span>
+</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a>
</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a>
-</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a>
-</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</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-3181"><a href="#L-3181"><span class="linenos">3181</span></a> <span class="k">pass</span>
+</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3181"><a href="#L-3181"><span class="linenos">3181</span></a>
</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a>
-</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a>
-</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a> <span class="k">pass</span>
+</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-3185"><a href="#L-3185"><span class="linenos">3185</span></a>
</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a>
-</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a>
-</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a> <span class="k">pass</span>
-</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a>
-</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a>
-</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a> <span class="nd">@property</span>
-</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</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-3195"><a href="#L-3195"><span class="linenos">3195</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-3196"><a href="#L-3196"><span class="linenos">3196</span></a>
-</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</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-3199"><a href="#L-3199"><span class="linenos">3199</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-3200"><a href="#L-3200"><span class="linenos">3200</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-3201"><a href="#L-3201"><span class="linenos">3201</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-3187"><a href="#L-3187"><span class="linenos">3187</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-3188"><a href="#L-3188"><span class="linenos">3188</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-3189"><a href="#L-3189"><span class="linenos">3189</span></a>
+</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="nd">@property</span>
+</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</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-3192"><a href="#L-3192"><span class="linenos">3192</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
+</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a>
+</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a>
+</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</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-3196"><a href="#L-3196"><span class="linenos">3196</span></a> <span class="k">pass</span>
+</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a>
+</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a>
+</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a><span class="k">class</span> <span class="nc">DataTypeSize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a>
</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a>
-</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
-</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
-</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a>
-</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> <span 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-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a>
-</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="k">return</span> <span class="n">dot</span>
-</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a>
+</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></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-3206"><a href="#L-3206"><span class="linenos">3206</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-3207"><a href="#L-3207"><span class="linenos">3207</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-3208"><a href="#L-3208"><span class="linenos">3208</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-3209"><a href="#L-3209"><span class="linenos">3209</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-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="p">}</span>
</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a>
-</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a><span 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-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="k">pass</span>
-</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a>
-</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a>
-</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</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-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="k">pass</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><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</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-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="k">pass</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><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</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-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="k">pass</span>
-</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a>
-</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a>
-</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</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-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="k">pass</span>
-</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a>
-</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a>
-</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="k">pass</span>
-</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a>
-</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a>
-</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a><span 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-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="k">pass</span>
-</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a>
-</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a>
-</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a><span class="k">class</span> <span class="nc">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-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="k">pass</span>
-</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a>
-</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a>
-</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a><span 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-3245"><a href="#L-3245"><span class="linenos">3245</span></a> <span class="k">pass</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><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</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-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="k">pass</span>
-</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a>
-</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a>
-</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</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-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="k">pass</span>
-</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a>
-</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a>
-</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</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-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="k">pass</span>
-</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a>
-</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a>
-</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</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-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="k">pass</span>
-</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a>
-</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a>
-</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</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-3266"><a href="#L-3266"><span class="linenos">3266</span></a>
-</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a>
-</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a><span class="k">class</span> <span class="nc">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-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="k">pass</span>
-</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a>
-</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a>
-</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a><span class="k">class</span> <span class="nc">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-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="k">pass</span>
-</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a>
-</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a>
-</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a><span class="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-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="k">pass</span>
-</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a>
-</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a>
-</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</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-3281"><a href="#L-3281"><span class="linenos">3281</span></a> <span class="k">pass</span>
-</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a>
-</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a>
-</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</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-3285"><a href="#L-3285"><span class="linenos">3285</span></a> <span class="k">pass</span>
-</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a>
-</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a>
-</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</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-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="k">pass</span>
-</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a>
-</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a>
-</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a><span class="k">class</span> <span class="nc">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-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="k">pass</span>
-</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a>
-</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a>
-</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a><span class="k">class</span> <span class="nc">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-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="k">pass</span>
+</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</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-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</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-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a>
+</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> <span class="p">}</span>
+</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a>
+</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
+</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
+</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="p">}</span>
+</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a>
+</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="p">}</span>
</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a>
-</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a>
-</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-3302"><a href="#L-3302"><span class="linenos">3302</span></a>
-</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a>
-</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> <span class="k">pass</span>
-</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a>
-</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a>
-</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a> <span class="k">pass</span>
-</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a>
-</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a>
-</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a><span class="c1"># Unary Expressions</span>
-</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a><span class="c1"># (NOT a)</span>
-</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</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-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="k">pass</span>
-</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a>
-</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a>
-</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="k">pass</span>
-</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a>
+</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
+</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a>
+</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
+</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a> <span class="p">}</span>
+</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a>
+</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</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-3315"><a href="#L-3315"><span class="linenos">3315</span></a>
+</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a> <span class="k">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-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a>
-</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">pass</span>
-</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a>
-</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a>
-</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a>
-</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a>
-</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">pass</span>
+</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</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-3325"><a href="#L-3325"><span class="linenos">3325</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-3326"><a href="#L-3326"><span class="linenos">3326</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-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</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-3330"><a href="#L-3330"><span class="linenos">3330</span></a>
+</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">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-3332"><a href="#L-3332"><span class="linenos">3332</span></a>
-</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a>
-</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a>
</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a>
-</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a> <span class="nd">@property</span>
-</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</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-3337"><a href="#L-3337"><span class="linenos">3337</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
+</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a> <span class="k">pass</span>
</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a>
</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a>
-</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a>
-</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="nd">@property</span>
-</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</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-3347"><a href="#L-3347"><span class="linenos">3347</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-3348"><a href="#L-3348"><span class="linenos">3348</span></a>
+</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
+</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</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-3344"><a href="#L-3344"><span class="linenos">3344</span></a> <span class="k">pass</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><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</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-3348"><a href="#L-3348"><span class="linenos">3348</span></a> <span class="k">pass</span>
</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a>
-</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a><span class="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-3351"><a href="#L-3351"><span class="linenos">3351</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a>
+</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a>
+</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a><span 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-3352"><a href="#L-3352"><span class="linenos">3352</span></a> <span class="k">pass</span>
</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a>
-</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a><span class="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-3355"><a href="#L-3355"><span class="linenos">3355</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3356"><a href="#L-3356"><span class="linenos">3356</span></a>
+</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a>
+</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a><span class="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-3356"><a href="#L-3356"><span class="linenos">3356</span></a> <span class="k">pass</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="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-3359"><a href="#L-3359"><span class="linenos">3359</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a>
-</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a>
-</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</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-3363"><a href="#L-3363"><span class="linenos">3363</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3358"><a href="#L-3358"><span class="linenos">3358</span></a>
+</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
+</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
+</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</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-3362"><a href="#L-3362"><span class="linenos">3362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a>
</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a>
-</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a>
-</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</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-3367"><a href="#L-3367"><span class="linenos">3367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></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-3369"><a href="#L-3369"><span class="linenos">3369</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-3370"><a href="#L-3370"><span class="linenos">3370</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-3371"><a href="#L-3371"><span class="linenos">3371</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-3372"><a href="#L-3372"><span class="linenos">3372</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-3373"><a href="#L-3373"><span class="linenos">3373</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-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="p">}</span>
+</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</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-3366"><a href="#L-3366"><span class="linenos">3366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a>
+</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a>
+</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a>
+</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a>
+</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a>
</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a>
-</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</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-3377"><a href="#L-3377"><span class="linenos">3377</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-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a>
-</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> <span 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-3381"><a href="#L-3381"><span class="linenos">3381</span></a>
-</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="k">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-3383"><a href="#L-3383"><span class="linenos">3383</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-3384"><a href="#L-3384"><span class="linenos">3384</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
-</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</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-3387"><a href="#L-3387"><span class="linenos">3387</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-3388"><a href="#L-3388"><span class="linenos">3388</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-3389"><a href="#L-3389"><span class="linenos">3389</span></a>
-</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a>
-</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3393"><a href="#L-3393"><span class="linenos">3393</span></a>
-</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a>
-</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a> <span class="k">pass</span>
-</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a>
-</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a>
-</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> <span class="k">pass</span>
+</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a>
+</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;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-3383"><a href="#L-3383"><span class="linenos">3383</span></a>
+</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a>
+</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3387"><a href="#L-3387"><span class="linenos">3387</span></a>
+</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a>
+</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
+</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</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-3391"><a href="#L-3391"><span class="linenos">3391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a>
+</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="nd">@property</span>
+</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</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-3396"><a href="#L-3396"><span class="linenos">3396</span></a>
+</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a> <span class="nd">@property</span>
+</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</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-3400"><a href="#L-3400"><span class="linenos">3400</span></a>
</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a>
-</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a>
-</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a><span class="c1"># Functions</span>
-</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</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-3405"><a href="#L-3405"><span class="linenos">3405</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a>
-</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a><span class="sd"> Attributes:</span>
-</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</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-3410"><a href="#L-3410"><span class="linenos">3410</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-3411"><a href="#L-3411"><span class="linenos">3411</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-3412"><a href="#L-3412"><span class="linenos">3412</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-3413"><a href="#L-3413"><span class="linenos">3413</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-3414"><a href="#L-3414"><span class="linenos">3414</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</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-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="k">pass</span>
+</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a>
+</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a>
+</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a> <span class="k">pass</span>
+</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a>
+</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a>
+</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> <span class="k">pass</span>
+</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a>
+</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a>
+</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="k">pass</span>
</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a>
-</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a>
-</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</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-3421"><a href="#L-3421"><span class="linenos">3421</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-3422"><a href="#L-3422"><span class="linenos">3422</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-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</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-3425"><a href="#L-3425"><span class="linenos">3425</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-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="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-3428"><a href="#L-3428"><span class="linenos">3428</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-3429"><a href="#L-3429"><span class="linenos">3429</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</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-3431"><a href="#L-3431"><span class="linenos">3431</span></a>
-</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span 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-3417"><a href="#L-3417"><span class="linenos">3417</span></a>
+</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="k">pass</span>
+</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a>
+</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a>
+</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="k">pass</span>
+</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a>
+</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a>
+</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</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-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="k">pass</span>
+</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a>
+</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a>
+</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</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-3431"><a href="#L-3431"><span class="linenos">3431</span></a> <span class="k">pass</span>
+</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a>
</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a>
-</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</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-3436"><a href="#L-3436"><span class="linenos">3436</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-3437"><a href="#L-3437"><span class="linenos">3437</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="p">)</span>
-</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</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-3441"><a href="#L-3441"><span class="linenos">3441</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-3442"><a href="#L-3442"><span class="linenos">3442</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-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="nd">@classmethod</span>
-</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</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-3446"><a href="#L-3446"><span class="linenos">3446</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-3447"><a href="#L-3447"><span class="linenos">3447</span></a>
-</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</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-3450"><a href="#L-3450"><span class="linenos">3450</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-3451"><a href="#L-3451"><span class="linenos">3451</span></a>
-</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a>
-</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="k">pass</span>
-</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a>
+</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</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-3435"><a href="#L-3435"><span class="linenos">3435</span></a> <span class="k">pass</span>
+</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a>
+</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a>
+</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</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-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="k">pass</span>
+</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a>
+</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a>
+</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</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-3443"><a href="#L-3443"><span class="linenos">3443</span></a> <span class="k">pass</span>
+</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a>
+</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a>
+</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</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-3447"><a href="#L-3447"><span class="linenos">3447</span></a> <span class="nd">@property</span>
+</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</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-3449"><a href="#L-3449"><span class="linenos">3449</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-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="nd">@classmethod</span>
+</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</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-3453"><a href="#L-3453"><span class="linenos">3453</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-3454"><a href="#L-3454"><span class="linenos">3454</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-3455"><a href="#L-3455"><span class="linenos">3455</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-3456"><a href="#L-3456"><span class="linenos">3456</span></a>
-</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a><span 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-3458"><a href="#L-3458"><span class="linenos">3458</span></a> <span class="k">pass</span>
+</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
+</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a>
-</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="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-3462"><a href="#L-3462"><span class="linenos">3462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</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-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a>
+</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="k">return</span> <span class="n">dot</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><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
-</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
-</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</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-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a>
+</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</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-3467"><a href="#L-3467"><span class="linenos">3467</span></a> <span class="k">pass</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">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-3471"><a href="#L-3471"><span class="linenos">3471</span></a> <span class="k">pass</span>
</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a>
-</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</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-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&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><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="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-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="k">pass</span>
</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a>
-</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a><span 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-3478"><a href="#L-3478"><span class="linenos">3478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&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="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a>
+</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a><span class="k">class</span> <span class="nc">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-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="k">pass</span>
</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a>
</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a>
-</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
-</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</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-3484"><a href="#L-3484"><span class="linenos">3484</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&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="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-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="k">pass</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><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</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-3488"><a href="#L-3488"><span class="linenos">3488</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-3486"><a href="#L-3486"><span class="linenos">3486</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-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="k">pass</span>
+</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a>
</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a>
-</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a>
-</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</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-3492"><a href="#L-3492"><span class="linenos">3492</span></a> <span class="k">pass</span>
+</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</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-3491"><a href="#L-3491"><span class="linenos">3491</span></a> <span class="k">pass</span>
+</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a>
</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a>
-</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a>
-</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</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-3496"><a href="#L-3496"><span class="linenos">3496</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3494"><a href="#L-3494"><span class="linenos">3494</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-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="k">pass</span>
+</span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</span></a>
</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a>
-</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a>
-</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a><span 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-3500"><a href="#L-3500"><span class="linenos">3500</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3498"><a href="#L-3498"><span class="linenos">3498</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-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="k">pass</span>
+</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a>
</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a>
-</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a>
-</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</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-3504"><a href="#L-3504"><span class="linenos">3504</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a>
-</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a>
-</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a><span class="k">class</span> <span class="nc">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-3509"><a href="#L-3509"><span class="linenos">3509</span></a> <span class="k">pass</span>
-</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a>
-</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a>
-</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</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-3513"><a href="#L-3513"><span class="linenos">3513</span></a> <span class="k">pass</span>
-</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a>
-</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a>
-</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</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-3519"><a href="#L-3519"><span class="linenos">3519</span></a>
+</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a><span class="k">class</span> <span class="nc">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-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <span class="k">pass</span>
+</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a>
+</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a>
+</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a><span 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-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="k">pass</span>
+</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><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</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-3511"><a href="#L-3511"><span class="linenos">3511</span></a> <span class="k">pass</span>
+</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a>
+</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a>
+</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</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-3515"><a href="#L-3515"><span class="linenos">3515</span></a> <span class="k">pass</span>
+</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a>
+</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a>
+</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</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-3519"><a href="#L-3519"><span class="linenos">3519</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-3520"><a href="#L-3520"><span class="linenos">3520</span></a>
-</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3523"><a href="#L-3523"><span class="linenos">3523</span></a>
+</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a>
+</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</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-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="k">pass</span>
</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a>
-</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3527"><a href="#L-3527"><span class="linenos">3527</span></a>
+</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a>
+</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a><span class="k">class</span> <span class="nc">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-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="k">pass</span>
</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a>
-</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3531"><a href="#L-3531"><span class="linenos">3531</span></a>
+</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a>
+</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a><span class="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-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="k">pass</span>
</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a>
-</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a> <span class="k">pass</span>
-</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a>
+</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">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-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-3537"><a href="#L-3537"><span class="linenos">3537</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-3538"><a href="#L-3538"><span class="linenos">3538</span></a> <span class="k">pass</span>
-</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a>
+</span><span id="L-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">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a> <span class="k">pass</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="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-3542"><a href="#L-3542"><span class="linenos">3542</span></a> <span class="k">pass</span>
-</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a>
+</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a>
+</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a><span 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-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="k">pass</span>
</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a>
-</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a> <span class="k">pass</span>
-</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a>
+</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a>
+</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a><span 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-3547"><a href="#L-3547"><span class="linenos">3547</span></a> <span class="k">pass</span>
</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a>
-</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3551"><a href="#L-3551"><span class="linenos">3551</span></a>
-</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span 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-3553"><a href="#L-3553"><span class="linenos">3553</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-3554"><a href="#L-3554"><span class="linenos">3554</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</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-3558"><a href="#L-3558"><span class="linenos">3558</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-3559"><a href="#L-3559"><span class="linenos">3559</span></a> <span class="p">),</span>
-</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a> <span class="p">)</span>
-</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a>
-</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</span></a> <span class="k">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-3564"><a href="#L-3564"><span class="linenos">3564</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-3565"><a href="#L-3565"><span class="linenos">3565</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-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a>
-</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a>
-</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><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">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-3551"><a href="#L-3551"><span class="linenos">3551</span></a> <span class="k">pass</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">Slice</span><span class="p">(</span><span class="n">Binary</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">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-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">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a> <span class="k">pass</span>
+</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">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</span></a> <span class="k">pass</span>
+</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><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a><span class="c1"># Unary Expressions</span>
+</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a><span class="c1"># (NOT a)</span>
+</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</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-3569"><a href="#L-3569"><span class="linenos">3569</span></a> <span class="k">pass</span>
+</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a>
</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">name</span><span class="p">(</span><span class="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">this</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</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-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="k">pass</span>
+</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a>
</span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</span></a>
-</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a> <span class="nd">@property</span>
-</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</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-3576"><a href="#L-3576"><span class="linenos">3576</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-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="k">pass</span>
+</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a>
</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a>
-</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a> <span class="nd">@property</span>
-</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</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-3580"><a href="#L-3580"><span class="linenos">3580</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-3581"><a href="#L-3581"><span class="linenos">3581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&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><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 class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</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-3585"><a href="#L-3585"><span class="linenos">3585</span></a> <span class="k">pass</span>
</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a>
</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a>
-</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="k">pass</span>
+</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</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-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a>
-</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a>
-</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</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-3593"><a href="#L-3593"><span class="linenos">3593</span></a> <span class="k">pass</span>
+</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="nd">@property</span>
+</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</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-3593"><a href="#L-3593"><span class="linenos">3593</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-3594"><a href="#L-3594"><span class="linenos">3594</span></a>
</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a>
-</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</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-3597"><a href="#L-3597"><span class="linenos">3597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="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-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">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&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 class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a>
-</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a>
-</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a> <span class="n">arg_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-3608"><a href="#L-3608"><span class="linenos">3608</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a>
+</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</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-3597"><a href="#L-3597"><span class="linenos">3597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a>
+</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="nd">@property</span>
+</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</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-3601"><a href="#L-3601"><span class="linenos">3601</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-3602"><a href="#L-3602"><span class="linenos">3602</span></a>
+</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a>
+</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</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-3605"><a href="#L-3605"><span class="linenos">3605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3606"><a href="#L-3606"><span class="linenos">3606</span></a>
+</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a>
+</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</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-3609"><a href="#L-3609"><span class="linenos">3609</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3610"><a href="#L-3610"><span class="linenos">3610</span></a>
-</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
-</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</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-3613"><a href="#L-3613"><span class="linenos">3613</span></a>
+</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a>
+</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a>
+</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a>
+</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a><span class="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-3617"><a href="#L-3617"><span class="linenos">3617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3618"><a href="#L-3618"><span class="linenos">3618</span></a>
-</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> <span class="k">pass</span>
-</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a>
-</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a>
-</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a><span class="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-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-3625"><a href="#L-3625"><span class="linenos">3625</span></a>
-</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a>
-</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a>
+</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a><span 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-3621"><a href="#L-3621"><span class="linenos">3621</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></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-3623"><a href="#L-3623"><span class="linenos">3623</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-3624"><a href="#L-3624"><span class="linenos">3624</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-3625"><a href="#L-3625"><span class="linenos">3625</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-3626"><a href="#L-3626"><span class="linenos">3626</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-3627"><a href="#L-3627"><span class="linenos">3627</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-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="p">}</span>
</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a>
</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a>
-</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a><span 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-3632"><a href="#L-3632"><span class="linenos">3632</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-3633"><a href="#L-3633"><span class="linenos">3633</span></a>
-</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a>
-</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</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-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a>
-</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a>
-</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</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-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a>
+</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a>
+</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span 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-3637"><a href="#L-3637"><span class="linenos">3637</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-3638"><a href="#L-3638"><span class="linenos">3638</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
+</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</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-3641"><a href="#L-3641"><span class="linenos">3641</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-3642"><a href="#L-3642"><span class="linenos">3642</span></a>
-</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3643"><a href="#L-3643"><span class="linenos">3643</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-3644"><a href="#L-3644"><span class="linenos">3644</span></a>
</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a>
-</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a>
-</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3649"><a href="#L-3649"><span class="linenos">3649</span></a>
-</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a>
-</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</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-3652"><a href="#L-3652"><span class="linenos">3652</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
-</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3654"><a href="#L-3654"><span class="linenos">3654</span></a>
-</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a>
-</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3658"><a href="#L-3658"><span class="linenos">3658</span></a>
-</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a>
-</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3662"><a href="#L-3662"><span class="linenos">3662</span></a>
-</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a>
-</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">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-3646"><a href="#L-3646"><span class="linenos">3646</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-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3648"><a href="#L-3648"><span class="linenos">3648</span></a>
+</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="nd">@property</span>
+</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</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-3651"><a href="#L-3651"><span class="linenos">3651</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-3652"><a href="#L-3652"><span class="linenos">3652</span></a>
+</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a>
+</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="k">pass</span>
+</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a>
+</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a>
+</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</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-3659"><a href="#L-3659"><span class="linenos">3659</span></a> <span class="k">pass</span>
+</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a>
+</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a>
+</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a><span class="c1"># Functions</span>
+</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</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-3664"><a href="#L-3664"><span class="linenos">3664</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a>
-</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a>
-</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</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-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3670"><a href="#L-3670"><span class="linenos">3670</span></a>
-</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a>
-</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a><span class="k">class</span> <span class="nc">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-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3674"><a href="#L-3674"><span class="linenos">3674</span></a>
+</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a><span class="sd"> Attributes:</span>
+</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</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-3669"><a href="#L-3669"><span class="linenos">3669</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-3670"><a href="#L-3670"><span class="linenos">3670</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-3671"><a href="#L-3671"><span class="linenos">3671</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-3672"><a href="#L-3672"><span class="linenos">3672</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-3673"><a href="#L-3673"><span class="linenos">3673</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a>
-</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a><span 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-3677"><a href="#L-3677"><span class="linenos">3677</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-3678"><a href="#L-3678"><span class="linenos">3678</span></a>
-</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a>
-</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</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-3681"><a href="#L-3681"><span class="linenos">3681</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-3682"><a href="#L-3682"><span class="linenos">3682</span></a>
-</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a>
-</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</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-3685"><a href="#L-3685"><span class="linenos">3685</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-3686"><a href="#L-3686"><span class="linenos">3686</span></a>
-</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a>
-</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</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-3689"><a href="#L-3689"><span class="linenos">3689</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
+</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a>
+</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</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-3680"><a href="#L-3680"><span class="linenos">3680</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-3681"><a href="#L-3681"><span class="linenos">3681</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-3682"><a href="#L-3682"><span class="linenos">3682</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</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-3684"><a href="#L-3684"><span class="linenos">3684</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-3685"><a href="#L-3685"><span class="linenos">3685</span></a>
+</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> <span class="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-3687"><a href="#L-3687"><span class="linenos">3687</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-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</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-3690"><a href="#L-3690"><span class="linenos">3690</span></a>
-</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a>
-</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</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-3693"><a href="#L-3693"><span class="linenos">3693</span></a> <span class="k">pass</span>
-</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a>
-</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a>
-</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</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-3697"><a href="#L-3697"><span class="linenos">3697</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3698"><a href="#L-3698"><span class="linenos">3698</span></a>
-</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a>
-</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</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-3701"><a href="#L-3701"><span class="linenos">3701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3691"><a href="#L-3691"><span class="linenos">3691</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-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="nd">@classmethod</span>
+</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</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-3695"><a href="#L-3695"><span class="linenos">3695</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-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="p">)</span>
+</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</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-3700"><a href="#L-3700"><span class="linenos">3700</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-3701"><a href="#L-3701"><span class="linenos">3701</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-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><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</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-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3703"><a href="#L-3703"><span class="linenos">3703</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</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-3705"><a href="#L-3705"><span class="linenos">3705</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-3706"><a href="#L-3706"><span class="linenos">3706</span></a>
-</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a>
-</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</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-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3707"><a href="#L-3707"><span class="linenos">3707</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</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-3709"><a href="#L-3709"><span class="linenos">3709</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-3710"><a href="#L-3710"><span class="linenos">3710</span></a>
</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a>
-</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a><span class="k">class</span> <span class="nc">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-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3712"><a href="#L-3712"><span class="linenos">3712</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-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="k">pass</span>
</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a>
</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a>
-</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</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-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3716"><a href="#L-3716"><span class="linenos">3716</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-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3718"><a href="#L-3718"><span class="linenos">3718</span></a>
</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a>
-</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</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-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a><span 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-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="k">pass</span>
</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a>
</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a>
-</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</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-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3726"><a href="#L-3726"><span class="linenos">3726</span></a>
+</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</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-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a>
-</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a><span class="k">class</span> <span class="nc">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-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3730"><a href="#L-3730"><span class="linenos">3730</span></a>
-</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a>
-</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</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-3734"><a href="#L-3734"><span class="linenos">3734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3728"><a href="#L-3728"><span class="linenos">3728</span></a>
+</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
+</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
+</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</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-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a>
</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a>
-</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a>
-</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</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-3738"><a href="#L-3738"><span class="linenos">3738</span></a> <span class="k">pass</span>
+</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</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-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> <span class="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-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><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</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-3742"><a href="#L-3742"><span class="linenos">3742</span></a> <span class="k">pass</span>
-</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a>
+</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</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-3742"><a href="#L-3742"><span class="linenos">3742</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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="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-3746"><a href="#L-3746"><span class="linenos">3746</span></a> <span class="k">pass</span>
-</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a>
-</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a>
-</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</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-3750"><a href="#L-3750"><span class="linenos">3750</span></a> <span class="k">pass</span>
-</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a>
-</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a>
-</span><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a><span class="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-3754"><a href="#L-3754"><span class="linenos">3754</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3755"><a href="#L-3755"><span class="linenos">3755</span></a>
-</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a>
-</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</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-3758"><a href="#L-3758"><span class="linenos">3758</span></a> <span class="k">pass</span>
-</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a>
-</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a>
-</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</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-3762"><a href="#L-3762"><span class="linenos">3762</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3763"><a href="#L-3763"><span class="linenos">3763</span></a>
-</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a>
-</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</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-3766"><a href="#L-3766"><span class="linenos">3766</span></a> <span class="k">pass</span>
-</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a>
-</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a>
-</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</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-3770"><a href="#L-3770"><span class="linenos">3770</span></a> <span class="k">pass</span>
+</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a>
+</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
+</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</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-3748"><a href="#L-3748"><span class="linenos">3748</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</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-3752"><a href="#L-3752"><span class="linenos">3752</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-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><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</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-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="k">pass</span>
+</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a>
+</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a>
+</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</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-3760"><a href="#L-3760"><span class="linenos">3760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3761"><a href="#L-3761"><span class="linenos">3761</span></a>
+</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a>
+</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</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-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a>
+</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a>
+</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</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-3768"><a href="#L-3768"><span class="linenos">3768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a>
</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a>
-</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a>
-</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a><span class="k">class</span> <span class="nc">ExponentialTimeDecayedAvg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;decay&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</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-3773"><a href="#L-3773"><span class="linenos">3773</span></a> <span class="k">pass</span>
+</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a>
</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a>
-</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a>
-</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</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-3778"><a href="#L-3778"><span class="linenos">3778</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</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-3777"><a href="#L-3777"><span class="linenos">3777</span></a> <span class="k">pass</span>
+</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a>
</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a>
-</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a>
-</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</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-3782"><a href="#L-3782"><span class="linenos">3782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a><span 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-3781"><a href="#L-3781"><span class="linenos">3781</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</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-3783"><a href="#L-3783"><span class="linenos">3783</span></a>
</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a>
-</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a>
-</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a><span 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-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3787"><a href="#L-3787"><span class="linenos">3787</span></a>
</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a>
-</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a>
-</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a><span class="k">class</span> <span class="nc">GroupUniqArray</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a><span class="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-3790"><a href="#L-3790"><span class="linenos">3790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3791"><a href="#L-3791"><span class="linenos">3791</span></a>
</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a>
-</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a>
-</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> <span class="k">pass</span>
+</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</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-3794"><a href="#L-3794"><span class="linenos">3794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a>
-</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a><span class="k">class</span> <span class="nc">Histogram</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;bins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a><span 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-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="k">pass</span>
+</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a>
</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a>
-</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a>
-</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3801"><a href="#L-3801"><span class="linenos">3801</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-3802"><a href="#L-3802"><span class="linenos">3802</span></a> <span class="k">pass</span>
+</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a>
</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a>
-</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a>
-</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
-</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a>
-</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a>
-</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a> <span class="k">pass</span>
-</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a>
-</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a>
-</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a>
-</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a>
-</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</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-3822"><a href="#L-3822"><span class="linenos">3822</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-3823"><a href="#L-3823"><span class="linenos">3823</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-3824"><a href="#L-3824"><span class="linenos">3824</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-3825"><a href="#L-3825"><span class="linenos">3825</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</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-3827"><a href="#L-3827"><span class="linenos">3827</span></a> <span class="p">}</span>
-</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a>
-</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a>
-</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a><span class="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-3831"><a href="#L-3831"><span class="linenos">3831</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-3805"><a href="#L-3805"><span class="linenos">3805</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-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="k">pass</span>
+</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a>
+</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a>
+</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="k">pass</span>
+</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a>
+</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a>
+</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a><span class="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-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3815"><a href="#L-3815"><span class="linenos">3815</span></a>
+</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="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-3817"><a href="#L-3817"><span class="linenos">3817</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-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</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-3822"><a href="#L-3822"><span class="linenos">3822</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-3823"><a href="#L-3823"><span class="linenos">3823</span></a> <span class="p">),</span>
+</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="p">)</span>
+</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a>
+</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a> <span class="k">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-3828"><a href="#L-3828"><span class="linenos">3828</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-3829"><a href="#L-3829"><span class="linenos">3829</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-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a>
</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 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-3835"><a href="#L-3835"><span class="linenos">3835</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-3836"><a href="#L-3836"><span class="linenos">3836</span></a>
-</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a>
-</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a><span 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-3839"><a href="#L-3839"><span class="linenos">3839</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
-</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a>
-</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a>
-</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a><span class="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-3843"><a href="#L-3843"><span class="linenos">3843</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-3844"><a href="#L-3844"><span class="linenos">3844</span></a>
-</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a>
-</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</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-3847"><a href="#L-3847"><span class="linenos">3847</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-3848"><a href="#L-3848"><span class="linenos">3848</span></a>
-</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a>
-</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a><span 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-3851"><a href="#L-3851"><span class="linenos">3851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-3852"><a href="#L-3852"><span class="linenos">3852</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-3853"><a href="#L-3853"><span class="linenos">3853</span></a>
+</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</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-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3835"><a href="#L-3835"><span class="linenos">3835</span></a>
+</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="nd">@property</span>
+</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</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-3838"><a href="#L-3838"><span class="linenos">3838</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-3839"><a href="#L-3839"><span class="linenos">3839</span></a>
+</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="nd">@property</span>
+</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</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-3842"><a href="#L-3842"><span class="linenos">3842</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-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="nd">@property</span>
+</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</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-3846"><a href="#L-3846"><span class="linenos">3846</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-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">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="L-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><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</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-3853"><a href="#L-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">True</span><span 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-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">Least</span><span class="p">(</span><span class="n">Func</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">False</span><span class="p">}</span>
-</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="k">pass</span>
</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a>
</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a>
-</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</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-3860"><a href="#L-3860"><span class="linenos">3860</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-3861"><a href="#L-3861"><span class="linenos">3861</span></a> <span class="k">pass</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><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</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-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></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-3867"><a href="#L-3867"><span class="linenos">3867</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-3868"><a href="#L-3868"><span class="linenos">3868</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-3869"><a href="#L-3869"><span class="linenos">3869</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-3870"><a href="#L-3870"><span class="linenos">3870</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-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="p">}</span>
+</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</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-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3866"><a href="#L-3866"><span class="linenos">3866</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-3867"><a href="#L-3867"><span class="linenos">3867</span></a>
+</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a>
+</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="k">pass</span>
-</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</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">Concat</span><span class="p">(</span><span class="n">Func</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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a>
-</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a><span 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-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">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-3880"><a href="#L-3880"><span class="linenos">3880</span></a>
+</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a>
+</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
+</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</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-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">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a> <span class="k">pass</span>
-</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a>
+</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a>
+</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3884"><a href="#L-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;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</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="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-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="k">pass</span>
-</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a>
+</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 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-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="k">pass</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="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-3891"><a href="#L-3891"><span class="linenos">3891</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-3892"><a href="#L-3892"><span class="linenos">3892</span></a>
+</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 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-3892"><a href="#L-3892"><span class="linenos">3892</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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="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-3895"><a href="#L-3895"><span class="linenos">3895</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-3896"><a href="#L-3896"><span class="linenos">3896</span></a>
+</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 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-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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 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-3899"><a href="#L-3899"><span class="linenos">3899</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-3900"><a href="#L-3900"><span class="linenos">3900</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 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-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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 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-3903"><a href="#L-3903"><span class="linenos">3903</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3904"><a href="#L-3904"><span class="linenos">3904</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 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-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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 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-3907"><a href="#L-3907"><span class="linenos">3907</span></a> <span class="k">pass</span>
-</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a>
+</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a>
+</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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 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-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</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 class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3913"><a href="#L-3913"><span class="linenos">3913</span></a>
</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a>
-</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
-</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</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-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3915"><a href="#L-3915"><span class="linenos">3915</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</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-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</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-3920"><a href="#L-3920"><span class="linenos">3920</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-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3922"><a href="#L-3922"><span class="linenos">3922</span></a>
</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a>
-</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a>
-</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="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-3924"><a href="#L-3924"><span class="linenos">3924</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-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3926"><a href="#L-3926"><span class="linenos">3926</span></a>
</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a>
-</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a>
-</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</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-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="k">pass</span>
-</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a>
-</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a>
-</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3940"><a href="#L-3940"><span class="linenos">3940</span></a>
-</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a>
-</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="k">pass</span>
-</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a>
-</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a>
-</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a><span class="k">class</span> <span class="nc">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-3947"><a href="#L-3947"><span class="linenos">3947</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-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">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</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">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">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3956"><a href="#L-3956"><span class="linenos">3956</span></a>
-</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a>
-</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</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-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="c1"># Clickhouse-specific:</span>
-</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span>
-</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3930"><a href="#L-3930"><span class="linenos">3930</span></a>
+</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a>
+</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</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-3937"><a href="#L-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;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a>
+</span><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">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-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</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-3945"><a href="#L-3945"><span class="linenos">3945</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-3946"><a href="#L-3946"><span class="linenos">3946</span></a>
+</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a>
+</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</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-3949"><a href="#L-3949"><span class="linenos">3949</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-3950"><a href="#L-3950"><span class="linenos">3950</span></a>
+</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a>
+</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</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-3953"><a href="#L-3953"><span class="linenos">3953</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-3954"><a href="#L-3954"><span class="linenos">3954</span></a>
+</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a>
+</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</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-3957"><a href="#L-3957"><span class="linenos">3957</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-3958"><a href="#L-3958"><span class="linenos">3958</span></a>
+</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a>
+</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</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-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="k">pass</span>
+</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a>
+</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a>
+</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</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-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a>
-</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</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-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-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><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="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-3974"><a href="#L-3974"><span class="linenos">3974</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3972"><a href="#L-3972"><span class="linenos">3972</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-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3974"><a href="#L-3974"><span class="linenos">3974</span></a>
</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a>
-</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a>
-</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</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-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;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-3976"><a href="#L-3976"><span class="linenos">3976</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-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3978"><a href="#L-3978"><span class="linenos">3978</span></a>
</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a>
-</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a>
-</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</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-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
-</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3985"><a href="#L-3985"><span class="linenos">3985</span></a>
+</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a><span class="k">class</span> <span class="nc">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-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3982"><a href="#L-3982"><span class="linenos">3982</span></a>
+</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a>
+</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a><span class="k">class</span> <span class="nc">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-3985"><a href="#L-3985"><span class="linenos">3985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3989"><a href="#L-3989"><span class="linenos">3989</span></a>
+</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a>
+</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a><span class="k">class</span> <span class="nc">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-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</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-3995"><a href="#L-3995"><span class="linenos">3995</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-3996"><a href="#L-3996"><span class="linenos">3996</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-3997"><a href="#L-3997"><span class="linenos">3997</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-3998"><a href="#L-3998"><span class="linenos">3998</span></a> <span class="p">}</span>
+</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a>
+</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a><span class="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-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3994"><a href="#L-3994"><span class="linenos">3994</span></a>
+</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a>
+</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a><span class="k">class</span> <span class="nc">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-3997"><a href="#L-3997"><span class="linenos">3997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3998"><a href="#L-3998"><span class="linenos">3998</span></a>
</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a>
-</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a>
-</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4000"><a href="#L-4000"><span class="linenos">4000</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-4001"><a href="#L-4001"><span class="linenos">4001</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-4002"><a href="#L-4002"><span class="linenos">4002</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-4003"><a href="#L-4003"><span class="linenos">4003</span></a>
</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a>
-</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</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-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="k">pass</span>
</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a>
</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a>
-</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</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-4010"><a href="#L-4010"><span class="linenos">4010</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
-</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</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-4012"><a href="#L-4012"><span class="linenos">4012</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</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-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">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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">SetAgg</span><span class="p">(</span><span class="n">AggFunc</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-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">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</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-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="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-4040"><a href="#L-4040"><span class="linenos">4040</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-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;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a>
+</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</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-4010"><a href="#L-4010"><span class="linenos">4010</span></a> <span class="k">pass</span>
+</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a>
+</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a>
+</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</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-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="k">pass</span>
+</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a>
+</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a>
+</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</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-4018"><a href="#L-4018"><span class="linenos">4018</span></a> <span class="k">pass</span>
+</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a>
+</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a>
+</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</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-4022"><a href="#L-4022"><span class="linenos">4022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4023"><a href="#L-4023"><span class="linenos">4023</span></a>
+</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a>
+</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</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-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <span class="k">pass</span>
+</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</span></a>
+</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a>
+</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4031"><a href="#L-4031"><span class="linenos">4031</span></a>
+</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a>
+</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a><span class="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-4034"><a href="#L-4034"><span class="linenos">4034</span></a> <span class="k">pass</span>
+</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a>
+</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a>
+</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a><span class="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-4038"><a href="#L-4038"><span class="linenos">4038</span></a> <span class="k">pass</span>
+</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a>
+</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a>
+</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</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-4042"><a href="#L-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;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</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">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4046"><a href="#L-4046"><span class="linenos">4046</span></a>
+</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 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-4046"><a href="#L-4046"><span class="linenos">4046</span></a> <span class="k">pass</span>
</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">Split</span><span class="p">(</span><span class="n">Func</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">True</span><span class="p">,</span> <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-4050"><a href="#L-4050"><span class="linenos">4050</span></a>
+</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a>
+</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a><span class="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-4050"><a href="#L-4050"><span class="linenos">4050</span></a> <span class="k">pass</span>
</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a>
-</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
-</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
-</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</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-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-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 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-4054"><a href="#L-4054"><span class="linenos">4054</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></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-4061"><a href="#L-4061"><span class="linenos">4061</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-4062"><a href="#L-4062"><span class="linenos">4062</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-4063"><a href="#L-4063"><span class="linenos">4063</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-4064"><a href="#L-4064"><span class="linenos">4064</span></a> <span class="p">}</span>
+</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a>
+</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a>
+</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a><span class="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-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><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</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-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;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</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-4067"><a href="#L-4067"><span class="linenos">4067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4068"><a href="#L-4068"><span class="linenos">4068</span></a>
</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a>
-</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a>
-</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</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-4072"><a href="#L-4072"><span class="linenos">4072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span><span id="L-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><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a><span class="c1"># Spark allows unix_timestamp()</span>
-</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</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-4077"><a href="#L-4077"><span class="linenos">4077</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-4078"><a href="#L-4078"><span class="linenos">4078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4079"><a href="#L-4079"><span class="linenos">4079</span></a>
-</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a>
-</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4083"><a href="#L-4083"><span class="linenos">4083</span></a>
-</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a>
-</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a><span class="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-4086"><a href="#L-4086"><span class="linenos">4086</span></a> <span class="n">arg_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-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</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-4091"><a href="#L-4091"><span class="linenos">4091</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4075"><a href="#L-4075"><span class="linenos">4075</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-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">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-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">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</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-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</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-4086"><a href="#L-4086"><span class="linenos">4086</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-4087"><a href="#L-4087"><span class="linenos">4087</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-4088"><a href="#L-4088"><span class="linenos">4088</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-4089"><a href="#L-4089"><span class="linenos">4089</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</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-4091"><a href="#L-4091"><span class="linenos">4091</span></a> <span class="p">}</span>
</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a>
</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a>
-</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</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-4095"><a href="#L-4095"><span class="linenos">4095</span></a> <span class="k">pass</span>
+</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</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-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;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-4096"><a href="#L-4096"><span class="linenos">4096</span></a>
</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a>
-</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a><span class="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-4099"><a href="#L-4099"><span class="linenos">4099</span></a> <span class="k">pass</span>
+</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</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-4099"><a href="#L-4099"><span class="linenos">4099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a> <span class="k">pass</span>
+</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</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-4103"><a href="#L-4103"><span class="linenos">4103</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-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">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a> <span class="k">pass</span>
+</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</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-4107"><a href="#L-4107"><span class="linenos">4107</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-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">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a> <span class="k">pass</span>
+</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</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-4111"><a href="#L-4111"><span class="linenos">4111</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-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><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</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-4115"><a href="#L-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;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</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-4115"><a href="#L-4115"><span class="linenos">4115</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-4116"><a href="#L-4116"><span class="linenos">4116</span></a>
</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a>
-</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</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-4119"><a href="#L-4119"><span class="linenos">4119</span></a> <span class="k">pass</span>
+</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</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-4119"><a href="#L-4119"><span class="linenos">4119</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-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">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a> <span class="k">pass</span>
-</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</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">JSONFormat</span><span class="p">(</span><span class="n">Func</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;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-4124"><a href="#L-4124"><span class="linenos">4124</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-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">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a> <span class="k">pass</span>
-</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a>
-</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a>
-</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</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-4131"><a href="#L-4131"><span class="linenos">4131</span></a> <span class="k">pass</span>
-</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a>
-</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 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-4135"><a href="#L-4135"><span class="linenos">4135</span></a> <span class="k">pass</span>
-</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><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</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-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><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></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-4141"><a href="#L-4141"><span class="linenos">4141</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-4142"><a href="#L-4142"><span class="linenos">4142</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-4143"><a href="#L-4143"><span class="linenos">4143</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-4144"><a href="#L-4144"><span class="linenos">4144</span></a> <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">Least</span><span class="p">(</span><span class="n">Func</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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a>
+</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a>
+</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</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-4133"><a href="#L-4133"><span class="linenos">4133</span></a> <span class="k">pass</span>
+</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a>
+</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a>
+</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</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-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><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></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-4139"><a href="#L-4139"><span class="linenos">4139</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-4140"><a href="#L-4140"><span class="linenos">4140</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-4141"><a href="#L-4141"><span class="linenos">4141</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-4142"><a href="#L-4142"><span class="linenos">4142</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-4143"><a href="#L-4143"><span class="linenos">4143</span></a> <span class="p">}</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><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="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-4148"><a href="#L-4148"><span class="linenos">4148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4146"><a href="#L-4146"><span class="linenos">4146</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-4147"><a href="#L-4147"><span class="linenos">4147</span></a> <span class="k">pass</span>
+</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a>
</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a>
-</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a>
-</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</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-4152"><a href="#L-4152"><span class="linenos">4152</span></a> <span class="k">pass</span>
+</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</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-4151"><a href="#L-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;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a>
</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a>
-</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a>
-</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a><span 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-4156"><a href="#L-4156"><span class="linenos">4156</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</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-4155"><a href="#L-4155"><span class="linenos">4155</span></a> <span class="k">pass</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><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a>
-</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a> <span class="k">pass</span>
+</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</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-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="k">pass</span>
+</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a>
</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a>
-</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a>
-</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a> <span class="k">pass</span>
+</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</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-4163"><a href="#L-4163"><span class="linenos">4163</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-4164"><a href="#L-4164"><span class="linenos">4164</span></a>
</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a>
-</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a>
-</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4168"><a href="#L-4168"><span class="linenos">4168</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4166"><a href="#L-4166"><span class="linenos">4166</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-4167"><a href="#L-4167"><span class="linenos">4167</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-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><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="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
-</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
-</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</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-4174"><a href="#L-4174"><span class="linenos">4174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="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-4177"><a href="#L-4177"><span class="linenos">4177</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-4178"><a href="#L-4178"><span class="linenos">4178</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-4179"><a href="#L-4179"><span class="linenos">4179</span></a>
+</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</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-4171"><a href="#L-4171"><span class="linenos">4171</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-4172"><a href="#L-4172"><span class="linenos">4172</span></a>
+</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a>
+</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</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-4176"><a href="#L-4176"><span class="linenos">4176</span></a>
+</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a>
+</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a> <span class="k">pass</span>
</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a>
-</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a><span 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-4182"><a href="#L-4182"><span class="linenos">4182</span></a> <span class="k">pass</span>
-</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a>
-</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</span></a>
-</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a><span 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-4186"><a href="#L-4186"><span class="linenos">4186</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-4187"><a href="#L-4187"><span class="linenos">4187</span></a>
-</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a>
-</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</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-4181"><a href="#L-4181"><span class="linenos">4181</span></a>
+</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</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;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-4184"><a href="#L-4184"><span class="linenos">4184</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</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><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
+</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</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-4189"><a href="#L-4189"><span class="linenos">4189</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4190"><a href="#L-4190"><span class="linenos">4190</span></a>
</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a>
-</span><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">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</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-4192"><a href="#L-4192"><span class="linenos">4192</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-4193"><a href="#L-4193"><span class="linenos">4193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4194"><a href="#L-4194"><span class="linenos">4194</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4197"><a href="#L-4197"><span class="linenos">4197</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-4198"><a href="#L-4198"><span class="linenos">4198</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-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">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4203"><a href="#L-4203"><span class="linenos">4203</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">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4203"><a href="#L-4203"><span class="linenos">4203</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a>
-</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a><span 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-4206"><a href="#L-4206"><span class="linenos">4206</span></a> <span class="k">pass</span>
-</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a>
+</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a>
+</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a> <span class="k">pass</span>
</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a>
-</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a><span 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-4210"><a href="#L-4210"><span class="linenos">4210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4211"><a href="#L-4211"><span class="linenos">4211</span></a>
+</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a>
+</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4212"><a href="#L-4212"><span class="linenos">4212</span></a>
-</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a><span 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-4214"><a href="#L-4214"><span class="linenos">4214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a>
+</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a>
+</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a> <span class="k">pass</span>
</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a>
-</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a><span 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-4218"><a href="#L-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;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-4219"><a href="#L-4219"><span class="linenos">4219</span></a>
+</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a>
+</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a><span class="k">class</span> <span class="nc">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-4219"><a href="#L-4219"><span class="linenos">4219</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-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="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
-</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</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-4223"><a href="#L-4223"><span class="linenos">4223</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-4224"><a href="#L-4224"><span class="linenos">4224</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4221"><a href="#L-4221"><span class="linenos">4221</span></a>
+</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</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-4228"><a href="#L-4228"><span class="linenos">4228</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-4226"><a href="#L-4226"><span class="linenos">4226</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-4227"><a href="#L-4227"><span class="linenos">4227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4228"><a href="#L-4228"><span class="linenos">4228</span></a>
</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a>
-</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a>
-</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</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-4230"><a href="#L-4230"><span class="linenos">4230</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-4231"><a href="#L-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;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a>
</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a>
-</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a><span class="c1"># Helpers</span>
-</span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</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-4238"><a href="#L-4238"><span class="linenos">4238</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="n">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-4240"><a href="#L-4240"><span class="linenos">4240</span></a> <span class="n">dialect</span><span 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-4241"><a href="#L-4241"><span class="linenos">4241</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-4242"><a href="#L-4242"><span class="linenos">4242</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-4243"><a href="#L-4243"><span class="linenos">4243</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a> <span class="o">...</span>
+</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</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-4235"><a href="#L-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">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-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><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</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-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4240"><a href="#L-4240"><span class="linenos">4240</span></a>
+</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a>
+</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</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-4244"><a href="#L-4244"><span class="linenos">4244</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4246"><a href="#L-4246"><span class="linenos">4246</span></a>
</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a>
-</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</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-4251"><a href="#L-4251"><span class="linenos">4251</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</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-4253"><a href="#L-4253"><span class="linenos">4253</span></a> <span class="n">dialect</span><span 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-4254"><a href="#L-4254"><span class="linenos">4254</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-4255"><a href="#L-4255"><span class="linenos">4255</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-4256"><a href="#L-4256"><span class="linenos">4256</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a> <span class="o">...</span>
-</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a>
+</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</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-4249"><a href="#L-4249"><span class="linenos">4249</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4250"><a href="#L-4250"><span class="linenos">4250</span></a>
+</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a>
+</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</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-4253"><a href="#L-4253"><span class="linenos">4253</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></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-4255"><a href="#L-4255"><span class="linenos">4255</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-4256"><a href="#L-4256"><span class="linenos">4256</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-4257"><a href="#L-4257"><span class="linenos">4257</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-4258"><a href="#L-4258"><span class="linenos">4258</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-4259"><a href="#L-4259"><span class="linenos">4259</span></a> <span class="p">}</span>
</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a>
-</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</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-4263"><a href="#L-4263"><span class="linenos">4263</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</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-4265"><a href="#L-4265"><span class="linenos">4265</span></a> <span class="n">dialect</span><span 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-4266"><a href="#L-4266"><span class="linenos">4266</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-4267"><a href="#L-4267"><span class="linenos">4267</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-4268"><a href="#L-4268"><span class="linenos">4268</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
-</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a>
-</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="sd"> Example:</span>
-</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a>
-</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a><span class="sd"> Args:</span>
-</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a>
-</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</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-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</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-4295"><a href="#L-4295"><span class="linenos">4295</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a>
-</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a> <span class="kn">import</span> <span class="nn">sqlglot</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 class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4264"><a href="#L-4264"><span class="linenos">4264</span></a>
+</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a>
+</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</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-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
+</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</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-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;limit&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><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a>
+</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="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-4277"><a href="#L-4277"><span class="linenos">4277</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4278"><a href="#L-4278"><span class="linenos">4278</span></a>
+</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a>
+</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</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-4281"><a href="#L-4281"><span class="linenos">4281</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4282"><a href="#L-4282"><span class="linenos">4282</span></a>
+</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a>
+</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a><span 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-4285"><a href="#L-4285"><span class="linenos">4285</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-4286"><a href="#L-4286"><span class="linenos">4286</span></a>
+</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a>
+</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a>
+</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a>
+</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="k">pass</span>
+</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a>
+</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a>
+</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a><span 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-4297"><a href="#L-4297"><span class="linenos">4297</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-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="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-4300"><a href="#L-4300"><span class="linenos">4300</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</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-4302"><a href="#L-4302"><span class="linenos">4302</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-4299"><a href="#L-4299"><span class="linenos">4299</span></a>
+</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a><span 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-4301"><a href="#L-4301"><span class="linenos">4301</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-4302"><a href="#L-4302"><span class="linenos">4302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4303"><a href="#L-4303"><span class="linenos">4303</span></a>
</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</span></a>
-</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</span></a><span class="k">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-4306"><a href="#L-4306"><span class="linenos">4306</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</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-4306"><a href="#L-4306"><span class="linenos">4306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4307"><a href="#L-4307"><span class="linenos">4307</span></a>
</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a>
-</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a><span class="k">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-4310"><a href="#L-4310"><span class="linenos">4310</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-4309"><a href="#L-4309"><span class="linenos">4309</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-4310"><a href="#L-4310"><span class="linenos">4310</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4311"><a href="#L-4311"><span class="linenos">4311</span></a>
</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a>
-</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a><span class="p">):</span>
-</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</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-4324"><a href="#L-4324"><span class="linenos">4324</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</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-4326"><a href="#L-4326"><span class="linenos">4326</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-4327"><a href="#L-4327"><span class="linenos">4327</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-4328"><a href="#L-4328"><span class="linenos">4328</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4332"><a href="#L-4332"><span class="linenos">4332</span></a> <span class="p">)</span>
-</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</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-4334"><a href="#L-4334"><span class="linenos">4334</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
+</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
+</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</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-4316"><a href="#L-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;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-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><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</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-4320"><a href="#L-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;this&quot;</span><span class="p">:</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-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><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</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-4324"><a href="#L-4324"><span class="linenos">4324</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></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-4326"><a href="#L-4326"><span class="linenos">4326</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-4327"><a href="#L-4327"><span class="linenos">4327</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-4328"><a href="#L-4328"><span class="linenos">4328</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-4329"><a href="#L-4329"><span class="linenos">4329</span></a> <span class="p">}</span>
+</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</span></a>
+</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a>
+</span><span id="L-4332"><a href="#L-4332"><span class="linenos">4332</span></a><span class="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-4333"><a href="#L-4333"><span class="linenos">4333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a>
-</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a> <span class="n">copy</span><span class="o">=</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 class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4348"><a href="#L-4348"><span class="linenos">4348</span></a><span class="p">):</span>
-</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</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-4350"><a href="#L-4350"><span class="linenos">4350</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</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-4352"><a href="#L-4352"><span class="linenos">4352</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-4353"><a href="#L-4353"><span class="linenos">4353</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-4354"><a href="#L-4354"><span class="linenos">4354</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-4355"><a href="#L-4355"><span class="linenos">4355</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4356"><a href="#L-4356"><span class="linenos">4356</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a> <span class="p">)</span>
-</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</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-4336"><a href="#L-4336"><span class="linenos">4336</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-4337"><a href="#L-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;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a>
+</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a>
+</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a><span class="c1"># Spark allows unix_timestamp()</span>
+</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</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-4342"><a href="#L-4342"><span class="linenos">4342</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-4343"><a href="#L-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">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-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><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</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-4347"><a href="#L-4347"><span class="linenos">4347</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</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><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</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-4351"><a href="#L-4351"><span class="linenos">4351</span></a> <span class="n">arg_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-4352"><a href="#L-4352"><span class="linenos">4352</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a>
+</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</span></a>
+</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</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-4356"><a href="#L-4356"><span class="linenos">4356</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4357"><a href="#L-4357"><span class="linenos">4357</span></a>
+</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</span></a>
+</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</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-4360"><a href="#L-4360"><span class="linenos">4360</span></a> <span class="k">pass</span>
+</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a>
</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</span></a>
-</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</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-4364"><a href="#L-4364"><span class="linenos">4364</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-4365"><a href="#L-4365"><span class="linenos">4365</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-4363"><a href="#L-4363"><span class="linenos">4363</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-4364"><a href="#L-4364"><span class="linenos">4364</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><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</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-4368"><a href="#L-4368"><span class="linenos">4368</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-4369"><a href="#L-4369"><span class="linenos">4369</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-4370"><a href="#L-4370"><span class="linenos">4370</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-4371"><a href="#L-4371"><span class="linenos">4371</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a>
+</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</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-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="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-4372"><a href="#L-4372"><span class="linenos">4372</span></a> <span class="k">pass</span>
</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</span></a>
-</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a><span class="p">):</span>
-</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</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-4374"><a href="#L-4374"><span class="linenos">4374</span></a>
+</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a><span 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-4376"><a href="#L-4376"><span class="linenos">4376</span></a> <span class="k">pass</span>
+</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a>
+</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a>
+</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4381"><a href="#L-4381"><span class="linenos">4381</span></a>
+</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</span></a>
+</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</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-4384"><a href="#L-4384"><span class="linenos">4384</span></a> <span class="k">pass</span>
+</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a>
</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a>
-</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</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-4390"><a href="#L-4390"><span class="linenos">4390</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a> <span class="p">)</span>
-</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</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-4396"><a href="#L-4396"><span class="linenos">4396</span></a> <span class="p">]</span>
+</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</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-4388"><a href="#L-4388"><span class="linenos">4388</span></a> <span class="k">pass</span>
+</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a>
+</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a>
+</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</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-4392"><a href="#L-4392"><span class="linenos">4392</span></a> <span class="k">pass</span>
+</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a>
+</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a>
+</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</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-4396"><a href="#L-4396"><span class="linenos">4396</span></a> <span class="k">pass</span>
</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a>
-</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</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-4399"><a href="#L-4399"><span class="linenos">4399</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-4400"><a href="#L-4400"><span class="linenos">4400</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-4398"><a href="#L-4398"><span class="linenos">4398</span></a>
+</span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a><span class="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-4400"><a href="#L-4400"><span class="linenos">4400</span></a> <span class="k">pass</span>
</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a>
-</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a> <span class="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-4403"><a href="#L-4403"><span class="linenos">4403</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</span></a>
-</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 class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a> <span class="o">*</span><span class="n">expressions</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="p">,</span>
-</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a> <span class="n">copy</span><span class="o">=</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a><span class="p">):</span>
-</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</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-4417"><a href="#L-4417"><span class="linenos">4417</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-4418"><a href="#L-4418"><span class="linenos">4418</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a>
+</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a><span class="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-4404"><a href="#L-4404"><span class="linenos">4404</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></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-4406"><a href="#L-4406"><span class="linenos">4406</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-4407"><a href="#L-4407"><span class="linenos">4407</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-4408"><a href="#L-4408"><span class="linenos">4408</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-4409"><a href="#L-4409"><span class="linenos">4409</span></a> <span class="p">}</span>
+</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a>
+</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a>
+</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</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-4413"><a href="#L-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 class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</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="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-4417"><a href="#L-4417"><span class="linenos">4417</span></a> <span class="k">pass</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="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-4421"><a href="#L-4421"><span class="linenos">4421</span></a>
-</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a> <span class="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-4423"><a href="#L-4423"><span class="linenos">4423</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-4424"><a href="#L-4424"><span class="linenos">4424</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-4425"><a href="#L-4425"><span class="linenos">4425</span></a>
-</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</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-4420"><a href="#L-4420"><span class="linenos">4420</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-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;format&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="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-4425"><a href="#L-4425"><span class="linenos">4425</span></a> <span class="k">pass</span>
+</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a>
</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a>
-</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a> <span class="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-4429"><a href="#L-4429"><span class="linenos">4429</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</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-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">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</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 class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
-</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a> <span class="p">]</span>
-</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
-</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</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-4439"><a href="#L-4439"><span class="linenos">4439</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
-</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</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-4441"><a href="#L-4441"><span class="linenos">4441</span></a> <span class="k">return</span> <span class="n">this</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><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</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-4445"><a href="#L-4445"><span class="linenos">4445</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">kind</span><span class="p">):</span>
-</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</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-4433"><a href="#L-4433"><span class="linenos">4433</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
+</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
+</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</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-4439"><a href="#L-4439"><span class="linenos">4439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4440"><a href="#L-4440"><span class="linenos">4440</span></a>
+</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a> <span class="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-4442"><a href="#L-4442"><span class="linenos">4442</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-4443"><a href="#L-4443"><span class="linenos">4443</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-4444"><a href="#L-4444"><span class="linenos">4444</span></a>
+</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a>
+</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</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-4447"><a href="#L-4447"><span class="linenos">4447</span></a> <span class="k">pass</span>
</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a>
</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</span></a>
-</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</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-4451"><a href="#L-4451"><span class="linenos">4451</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-4452"><a href="#L-4452"><span class="linenos">4452</span></a>
</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a>
-</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</span></a><span class="sd"> Example:</span>
-</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</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-4456"><a href="#L-4456"><span class="linenos">4456</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</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-4455"><a href="#L-4455"><span class="linenos">4455</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-4456"><a href="#L-4456"><span class="linenos">4456</span></a>
</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</span></a>
-</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a><span class="sd"> Args:</span>
-</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
-</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-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">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-4458"><a href="#L-4458"><span class="linenos">4458</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-4459"><a href="#L-4459"><span class="linenos">4459</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-4460"><a href="#L-4460"><span class="linenos">4460</span></a>
+</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a>
+</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</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-4463"><a href="#L-4463"><span class="linenos">4463</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4464"><a href="#L-4464"><span class="linenos">4464</span></a>
+</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a>
+</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</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-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;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-4468"><a href="#L-4468"><span class="linenos">4468</span></a>
+</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a>
+</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a><span 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-4471"><a href="#L-4471"><span class="linenos">4471</span></a> <span class="k">pass</span>
+</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a>
</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a>
-</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a>
-</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</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="sd"> Example:</span>
-</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</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-4481"><a href="#L-4481"><span class="linenos">4481</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</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="sd"> Args:</span>
-</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
-</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a>
-</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a> <span class="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-4474"><a href="#L-4474"><span class="linenos">4474</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-4475"><a href="#L-4475"><span class="linenos">4475</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</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-4479"><a href="#L-4479"><span class="linenos">4479</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-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><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</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-4483"><a href="#L-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;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-4484"><a href="#L-4484"><span class="linenos">4484</span></a>
+</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a>
+</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
+</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</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-4488"><a href="#L-4488"><span class="linenos">4488</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-4489"><a href="#L-4489"><span class="linenos">4489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a>
+</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a>
+</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</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-4493"><a href="#L-4493"><span class="linenos">4493</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-4494"><a href="#L-4494"><span class="linenos">4494</span></a>
+</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a>
+</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a><span class="n">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-4497"><a href="#L-4497"><span class="linenos">4497</span></a>
</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a>
-</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a>
-</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a>
-</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a><span class="sd"> Example:</span>
-</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</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-4506"><a href="#L-4506"><span class="linenos">4506</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a>
-</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="sd"> Args:</span>
-</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
-</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4519"><a href="#L-4519"><span class="linenos">4519</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a>
-</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a> <span class="k">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-4523"><a href="#L-4523"><span class="linenos">4523</span></a>
+</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="c1"># Helpers</span>
+</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</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-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</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-4505"><a href="#L-4505"><span class="linenos">4505</span></a> <span class="n">dialect</span><span 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-4506"><a href="#L-4506"><span class="linenos">4506</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-4507"><a href="#L-4507"><span class="linenos">4507</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-4508"><a href="#L-4508"><span class="linenos">4508</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a> <span class="o">...</span>
+</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a>
+</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a>
+</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</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-4516"><a href="#L-4516"><span class="linenos">4516</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</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-4518"><a href="#L-4518"><span class="linenos">4518</span></a> <span class="n">dialect</span><span 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-4519"><a href="#L-4519"><span class="linenos">4519</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-4520"><a href="#L-4520"><span class="linenos">4520</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-4521"><a href="#L-4521"><span class="linenos">4521</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a> <span class="o">...</span>
</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a>
-</span><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a><span class="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-4526"><a href="#L-4526"><span class="linenos">4526</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a>
-</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a><span class="sd"> Example:</span>
-</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</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-4531"><a href="#L-4531"><span class="linenos">4531</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a>
-</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a><span class="sd"> Args:</span>
-</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a>
-</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</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-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">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a>
-</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a><span class="sd"> Example:</span>
-</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</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-4553"><a href="#L-4553"><span class="linenos">4553</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a>
-</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a><span class="sd"> Args:</span>
-</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</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="sd"> Returns:</span>
-</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a>
+</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="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</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-4528"><a href="#L-4528"><span class="linenos">4528</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</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-4530"><a href="#L-4530"><span class="linenos">4530</span></a> <span class="n">dialect</span><span 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-4531"><a href="#L-4531"><span class="linenos">4531</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-4532"><a href="#L-4532"><span class="linenos">4532</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-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a>
+</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="sd"> Example:</span>
+</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a>
+</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a><span class="sd"> Args:</span>
+</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a><span class="sd"> that an input expression is a SQL string).</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 class="sd"> Returns:</span>
+</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</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-4558"><a href="#L-4558"><span class="linenos">4558</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</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-4560"><a href="#L-4560"><span class="linenos">4560</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a>
+</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a>
+</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a> <span class="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-4565"><a href="#L-4565"><span class="linenos">4565</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</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-4567"><a href="#L-4567"><span class="linenos">4567</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-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">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</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-4571"><a href="#L-4571"><span class="linenos">4571</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a> <span class="n">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-4573"><a href="#L-4573"><span class="linenos">4573</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-4574"><a href="#L-4574"><span class="linenos">4574</span></a> <span class="n">dialect</span><span 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-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a>
-</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a><span class="sd"> Example:</span>
-</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</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-4582"><a href="#L-4582"><span class="linenos">4582</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-4583"><a href="#L-4583"><span class="linenos">4583</span></a>
-</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a><span class="sd"> Args:</span>
-</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a>
-</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</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-4596"><a href="#L-4596"><span class="linenos">4596</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-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a> <span class="p">[</span>
-</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</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-4600"><a href="#L-4600"><span class="linenos">4600</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-4601"><a href="#L-4601"><span class="linenos">4601</span></a> <span class="p">],</span>
-</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a> <span class="p">)</span>
-</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</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-4605"><a href="#L-4605"><span class="linenos">4605</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</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-4607"><a href="#L-4607"><span class="linenos">4607</span></a> <span class="p">)</span>
-</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a> <span 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-4609"><a href="#L-4609"><span class="linenos">4609</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-4610"><a href="#L-4610"><span class="linenos">4610</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</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-4612"><a href="#L-4612"><span class="linenos">4612</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</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-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="p">)</span>
-</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="k">return</span> <span class="n">update_expr</span>
-</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><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</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-4621"><a href="#L-4621"><span class="linenos">4621</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-4622"><a href="#L-4622"><span class="linenos">4622</span></a> <span class="n">dialect</span><span 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-4623"><a href="#L-4623"><span class="linenos">4623</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a>
-</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a><span class="sd"> Example:</span>
-</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</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-4630"><a href="#L-4630"><span class="linenos">4630</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a>
-</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a><span class="sd"> Args:</span>
-</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a>
-</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</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-4642"><a href="#L-4642"><span class="linenos">4642</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</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-4644"><a href="#L-4644"><span class="linenos">4644</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
-</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a>
-</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a>
-</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a><span class="sd"> Initialize a logical condition expression.</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 class="sd"> Example:</span>
-</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a><span class="sd"> &#39;x = 1&#39;</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 class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a><span class="sd"> copy (bool): Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</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="sd"> Returns:</span>
-</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a><span class="sd"> Condition: the expression</span>
-</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
-</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a> <span class="p">)</span>
-</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a>
-</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a>
-</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</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="sd"> Example:</span>
-</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</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-4690"><a href="#L-4690"><span class="linenos">4690</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a>
-</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a><span class="sd"> Args:</span>
-</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a><span class="sd"> copy (bool): whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a>
-</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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-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">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a>
-</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a><span class="sd"> Example:</span>
-</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</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-4711"><a href="#L-4711"><span class="linenos">4711</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a>
-</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a><span class="sd"> Args:</span>
-</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a><span class="sd"> copy (bool): whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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-4569"><a href="#L-4569"><span class="linenos">4569</span></a>
+</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="k">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-4571"><a href="#L-4571"><span class="linenos">4571</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a>
+</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a>
+</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="k">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-4575"><a href="#L-4575"><span class="linenos">4575</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-4576"><a href="#L-4576"><span class="linenos">4576</span></a>
+</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a>
+</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="p">):</span>
+</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</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-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</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-4591"><a href="#L-4591"><span class="linenos">4591</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-4592"><a href="#L-4592"><span class="linenos">4592</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-4593"><a href="#L-4593"><span class="linenos">4593</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="p">)</span>
+</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a> <span 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-4599"><a href="#L-4599"><span class="linenos">4599</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a>
+</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a>
+</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a><span class="p">):</span>
+</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</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-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</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-4617"><a href="#L-4617"><span class="linenos">4617</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-4618"><a href="#L-4618"><span class="linenos">4618</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-4619"><a href="#L-4619"><span class="linenos">4619</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-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="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a> <span class="p">)</span>
+</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</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-4629"><a href="#L-4629"><span class="linenos">4629</span></a>
+</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="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-4631"><a href="#L-4631"><span class="linenos">4631</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-4632"><a href="#L-4632"><span class="linenos">4632</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-4633"><a href="#L-4633"><span class="linenos">4633</span></a>
+</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</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-4635"><a href="#L-4635"><span class="linenos">4635</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-4636"><a href="#L-4636"><span class="linenos">4636</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-4637"><a href="#L-4637"><span class="linenos">4637</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-4638"><a href="#L-4638"><span class="linenos">4638</span></a>
+</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a>
+</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a>
+</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</span></a><span class="p">):</span>
+</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</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-4654"><a href="#L-4654"><span class="linenos">4654</span></a>
+</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</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-4658"><a href="#L-4658"><span class="linenos">4658</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a> <span class="p">)</span>
+</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
+</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</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-4665"><a href="#L-4665"><span class="linenos">4665</span></a> <span class="p">]</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 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-4668"><a href="#L-4668"><span class="linenos">4668</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-4669"><a href="#L-4669"><span class="linenos">4669</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-4670"><a href="#L-4670"><span class="linenos">4670</span></a>
+</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="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-4672"><a href="#L-4672"><span class="linenos">4672</span></a> <span class="k">return</span> <span class="n">inst</span>
+</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><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a><span class="p">):</span>
+</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</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-4686"><a href="#L-4686"><span class="linenos">4686</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-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a>
+</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a> <span class="n">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-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="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-4692"><a href="#L-4692"><span class="linenos">4692</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-4693"><a href="#L-4693"><span class="linenos">4693</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-4694"><a href="#L-4694"><span class="linenos">4694</span></a>
+</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a> <span class="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-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="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-4698"><a href="#L-4698"><span class="linenos">4698</span></a> <span class="k">return</span> <span class="n">inst</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">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
+</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</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-4706"><a href="#L-4706"><span class="linenos">4706</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-4707"><a href="#L-4707"><span class="linenos">4707</span></a> <span class="n">dialect</span><span 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-4708"><a href="#L-4708"><span class="linenos">4708</span></a> <span class="n">copy</span><span 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-4709"><a href="#L-4709"><span class="linenos">4709</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</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-4712"><a href="#L-4712"><span class="linenos">4712</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-4713"><a href="#L-4713"><span class="linenos">4713</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-4714"><a href="#L-4714"><span class="linenos">4714</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</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-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</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-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="p">)</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><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a>
-</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a><span class="sd"> Example:</span>
-</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a>
-</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a><span class="sd"> Args:</span>
-</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a>
-</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a><span class="sd"> Not: the new condition</span>
-</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a> <span class="p">)</span>
-</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</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-4725"><a href="#L-4725"><span class="linenos">4725</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
+</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</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-4727"><a href="#L-4727"><span class="linenos">4727</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-4728"><a href="#L-4728"><span class="linenos">4728</span></a> <span class="n">dialect</span><span 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-4729"><a href="#L-4729"><span class="linenos">4729</span></a> <span class="n">copy</span><span 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-4730"><a href="#L-4730"><span class="linenos">4730</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</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-4734"><a href="#L-4734"><span class="linenos">4734</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-4735"><a href="#L-4735"><span class="linenos">4735</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-4736"><a href="#L-4736"><span class="linenos">4736</span></a> <span class="p">]</span>
+</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a>
+</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</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-4739"><a href="#L-4739"><span class="linenos">4739</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</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-4741"><a href="#L-4741"><span class="linenos">4741</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-4742"><a href="#L-4742"><span class="linenos">4742</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-4743"><a href="#L-4743"><span class="linenos">4743</span></a>
+</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a> <span class="k">return</span> <span class="n">this</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">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-4748"><a href="#L-4748"><span class="linenos">4748</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-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><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</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">copy</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-4753"><a href="#L-4753"><span class="linenos">4753</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_copy</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="p">))</span>
-</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a>
-</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a>
-</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a><span class="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-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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="o">...</span>
-</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a>
-</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a>
-</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a> <span class="o">...</span>
-</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a>
-</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a>
-</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a>
-</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a><span class="sd"> Args:</span>
-</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a>
+</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a><span class="sd"> Example:</span>
+</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</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-4759"><a href="#L-4759"><span class="linenos">4759</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a>
+</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a><span class="sd"> Args:</span>
+</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-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="sd"> Returns:</span>
-</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</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">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-4781"><a href="#L-4781"><span class="linenos">4781</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a>
-</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a> <span class="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-4784"><a href="#L-4784"><span class="linenos">4784</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
-</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</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-4786"><a href="#L-4786"><span class="linenos">4786</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</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-4789"><a href="#L-4789"><span class="linenos">4789</span></a> <span class="p">)</span>
-</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</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-4792"><a href="#L-4792"><span class="linenos">4792</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a>
-</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 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-4796"><a href="#L-4796"><span class="linenos">4796</span></a>
+</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</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-4777"><a href="#L-4777"><span class="linenos">4777</span></a>
+</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a>
+</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a>
+</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="sd"> Example:</span>
+</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</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-4787"><a href="#L-4787"><span class="linenos">4787</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a>
+</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a><span class="sd"> Args:</span>
+</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a>
-</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</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-4799"><a href="#L-4799"><span class="linenos">4799</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-4800"><a href="#L-4800"><span class="linenos">4800</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-4801"><a href="#L-4801"><span class="linenos">4801</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-4802"><a href="#L-4802"><span class="linenos">4802</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-4798"><a href="#L-4798"><span class="linenos">4798</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a>
-</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a> <span class="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-4804"><a href="#L-4804"><span class="linenos">4804</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-4805"><a href="#L-4805"><span class="linenos">4805</span></a>
-</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a> <span class="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-4807"><a href="#L-4807"><span class="linenos">4807</span></a>
-</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
-</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</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-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 class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</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-4813"><a href="#L-4813"><span class="linenos">4813</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-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="p">)</span>
-</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a>
+</span><span id="L-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 class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a>
+</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a><span class="sd"> Example:</span>
+</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</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-4815"><a href="#L-4815"><span class="linenos">4815</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a>
-</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</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-4819"><a href="#L-4819"><span class="linenos">4819</span></a> <span class="o">...</span>
-</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a>
-</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a>
-</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</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-4824"><a href="#L-4824"><span class="linenos">4824</span></a> <span class="o">...</span>
+</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a><span class="sd"> Args:</span>
+</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</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><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</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-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a>
-</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a><span class="sd"> Args:</span>
-</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</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-4833"><a href="#L-4833"><span class="linenos">4833</span></a>
</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a>
-</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</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-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</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-4841"><a href="#L-4841"><span class="linenos">4841</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-4835"><a href="#L-4835"><span class="linenos">4835</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-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a>
+</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a><span class="sd"> Example:</span>
+</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</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-4841"><a href="#L-4841"><span class="linenos">4841</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a>
-</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
-</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-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">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-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a><span class="sd"> Args:</span>
+</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a>
-</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a>
-</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="sd"> Args:</span>
-</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</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-4859"><a href="#L-4859"><span class="linenos">4859</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</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-4861"><a href="#L-4861"><span class="linenos">4861</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-4862"><a href="#L-4862"><span class="linenos">4862</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-4863"><a href="#L-4863"><span class="linenos">4863</span></a>
+</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</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-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">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-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a>
+</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="sd"> Example:</span>
+</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a>
-</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</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-4868"><a href="#L-4868"><span class="linenos">4868</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-4869"><a href="#L-4869"><span class="linenos">4869</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-4870"><a href="#L-4870"><span class="linenos">4870</span></a> <span class="n">dialect</span><span 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-4871"><a href="#L-4871"><span class="linenos">4871</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a><span class="p">):</span>
-</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</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 class="sd"> Example:</span>
-</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a><span class="sd"> Args:</span>
+</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a>
+</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a> <span class="k">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-4877"><a href="#L-4877"><span class="linenos">4877</span></a>
</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a>
-</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</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-4880"><a href="#L-4880"><span class="linenos">4880</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a>
-</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a><span class="sd"> Args:</span>
-</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</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-4888"><a href="#L-4888"><span class="linenos">4888</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a>
-</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</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-4897"><a href="#L-4897"><span class="linenos">4897</span></a>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</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-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="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="n">exp</span>
-</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</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-4903"><a href="#L-4903"><span class="linenos">4903</span></a>
-</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a> <span 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-4905"><a href="#L-4905"><span class="linenos">4905</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-4906"><a href="#L-4906"><span class="linenos">4906</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-4907"><a href="#L-4907"><span class="linenos">4907</span></a>
-</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a>
-</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="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-4911"><a href="#L-4911"><span class="linenos">4911</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-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a> <span class="c1">#</span>
-</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a>
-</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> <span class="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-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</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-4919"><a href="#L-4919"><span class="linenos">4919</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</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-4921"><a href="#L-4921"><span class="linenos">4921</span></a>
-</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a>
-</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</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-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</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-4883"><a href="#L-4883"><span class="linenos">4883</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-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="n">dialect</span><span 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-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a>
+</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a><span class="sd"> Example:</span>
+</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</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-4892"><a href="#L-4892"><span class="linenos">4892</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-4893"><a href="#L-4893"><span class="linenos">4893</span></a>
+</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a><span class="sd"> Args:</span>
+</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</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-4906"><a href="#L-4906"><span class="linenos">4906</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-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="p">[</span>
+</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</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-4910"><a href="#L-4910"><span class="linenos">4910</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-4911"><a href="#L-4911"><span class="linenos">4911</span></a> <span class="p">],</span>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="p">)</span>
+</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</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-4915"><a href="#L-4915"><span class="linenos">4915</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</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-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="p">)</span>
+</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</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-4919"><a href="#L-4919"><span class="linenos">4919</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-4920"><a href="#L-4920"><span class="linenos">4920</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</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-4922"><a href="#L-4922"><span class="linenos">4922</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</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-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="p">)</span>
+</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a>
-</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a><span class="sd"> Example:</span>
-</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</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-4929"><a href="#L-4929"><span class="linenos">4929</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
-</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a>
+</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</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-4931"><a href="#L-4931"><span class="linenos">4931</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-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="n">dialect</span><span 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-4933"><a href="#L-4933"><span class="linenos">4933</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a><span class="sd"> Builds a delete statement.</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 class="sd"> Returns:</span>
-</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
-</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a><span class="sd"> Example:</span>
+</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</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-4940"><a href="#L-4940"><span class="linenos">4940</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a>
-</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a> <span 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-4943"><a href="#L-4943"><span class="linenos">4943</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-4944"><a href="#L-4944"><span class="linenos">4944</span></a>
-</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a>
-</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</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-4948"><a href="#L-4948"><span class="linenos">4948</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-4949"><a href="#L-4949"><span class="linenos">4949</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-4950"><a href="#L-4950"><span class="linenos">4950</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-4951"><a href="#L-4951"><span class="linenos">4951</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-4952"><a href="#L-4952"><span class="linenos">4952</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a><span class="sd"> Build a Column.</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 class="sd"> Args:</span>
-</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a><span class="sd"> col: column name</span>
-</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a><span class="sd"> table: table name</span>
-</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a><span class="sd"> db: db name</span>
-</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a><span class="sd"> catalog: catalog name</span>
-</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
-</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a><span class="sd"> Column: column instance</span>
-</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</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-4967"><a href="#L-4967"><span class="linenos">4967</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-4968"><a href="#L-4968"><span class="linenos">4968</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-4969"><a href="#L-4969"><span class="linenos">4969</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-4970"><a href="#L-4970"><span class="linenos">4970</span></a> <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">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a>
-</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a><span class="sd"> Example:</span>
-</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a>
-</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a><span class="sd"> Args:</span>
-</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a><span class="sd"> Args:</span>
+</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> <span class="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-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</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-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a>
+</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a>
+</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</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-4963"><a href="#L-4963"><span class="linenos">4963</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-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="n">dialect</span><span 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-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="n">copy</span><span 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-4966"><a href="#L-4966"><span class="linenos">4966</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a>
+</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a><span class="sd"> Example:</span>
+</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a>
+</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a><span class="sd"> Args:</span>
+</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a>
</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a><span class="sd"> A cast node.</span>
+</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a> <span class="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-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</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-4988"><a href="#L-4988"><span class="linenos">4988</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-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">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</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 class="sd"> Args:</span>
-</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a><span class="sd"> table (str | Expression): column name</span>
-</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a><span class="sd"> db (str | Expression): db name</span>
-</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
-</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="sd"> Returns:</span>
-</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a><span class="sd"> Table: table instance</span>
-</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</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-5005"><a href="#L-5005"><span class="linenos">5005</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-5006"><a href="#L-5006"><span class="linenos">5006</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-5007"><a href="#L-5007"><span class="linenos">5007</span></a> <span class="p">)</span>
-</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a>
+</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</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-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</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-4994"><a href="#L-4994"><span class="linenos">4994</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-4995"><a href="#L-4995"><span class="linenos">4995</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="n">copy</span><span class="o">=</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="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a> <span class="o">**</span><span class="n">opts</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 class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a>
+</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a>
+</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</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-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a><span class="sd"> Initialize a logical condition expression.</span>
</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a>
-</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</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-5012"><a href="#L-5012"><span class="linenos">5012</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-5013"><a href="#L-5013"><span class="linenos">5013</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-5014"><a href="#L-5014"><span class="linenos">5014</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a>
-</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a><span class="sd"> Example:</span>
-</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</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 class="sd"> Args:</span>
-</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</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-5025"><a href="#L-5025"><span class="linenos">5025</span></a><span class="sd"> If either are provided then an alias is also required.</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 class="sd"> Returns:</span>
-</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</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-5031"><a href="#L-5031"><span class="linenos">5031</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-5032"><a href="#L-5032"><span class="linenos">5032</span></a>
-</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</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-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="n">alias</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="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-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</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-5039"><a href="#L-5039"><span class="linenos">5039</span></a> <span class="p">),</span>
-</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a> <span class="p">)</span>
-</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a>
-</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a>
-</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a><span class="k">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-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a>
-</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a><span class="sd"> Example:</span>
-</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a>
-</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a>
-</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span class="sd"> Args:</span>
-</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</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-5055"><a href="#L-5055"><span class="linenos">5055</span></a>
-</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</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-5060"><a href="#L-5060"><span class="linenos">5060</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-5061"><a href="#L-5061"><span class="linenos">5061</span></a>
-</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a> <span class="k">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-5063"><a href="#L-5063"><span class="linenos">5063</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-5064"><a href="#L-5064"><span class="linenos">5064</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-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">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-5068"><a href="#L-5068"><span class="linenos">5068</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="sd"> Example:</span>
+</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a>
+</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a>
+</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a><span class="sd"> Args:</span>
+</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
+</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a> <span class="p">)</span>
+</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a>
+</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a>
+</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</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-5043"><a href="#L-5043"><span class="linenos">5043</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a>
+</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a><span class="sd"> Example:</span>
+</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</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-5049"><a href="#L-5049"><span class="linenos">5049</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a>
+</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a><span class="sd"> Args:</span>
+</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a>
+</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="sd"> And: the new condition</span>
+</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</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-5062"><a href="#L-5062"><span class="linenos">5062</span></a>
+</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</span></a>
+</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</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-5066"><a href="#L-5066"><span class="linenos">5066</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a>
-</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a><span class="sd"> Args:</span>
-</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a><span class="sd"> Example:</span>
+</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</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-5072"><a href="#L-5072"><span class="linenos">5072</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
</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="sd"> Returns:</span>
-</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</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-5078"><a href="#L-5078"><span class="linenos">5078</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-5079"><a href="#L-5079"><span class="linenos">5079</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</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-5081"><a href="#L-5081"><span class="linenos">5081</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</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-5083"><a href="#L-5083"><span class="linenos">5083</span></a> <span class="p">],</span>
-</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a> <span class="p">)</span>
+</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a><span class="sd"> Args:</span>
+</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</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-5085"><a href="#L-5085"><span class="linenos">5085</span></a>
</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a>
-</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</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-5088"><a href="#L-5088"><span class="linenos">5088</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-5089"><a href="#L-5089"><span class="linenos">5089</span></a>
-</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a>
-</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="sd"> Args:</span>
-</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="sd"> value: A python object.</span>
-</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a>
-</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</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-5100"><a href="#L-5100"><span class="linenos">5100</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-5101"><a href="#L-5101"><span class="linenos">5101</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-5102"><a href="#L-5102"><span class="linenos">5102</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-5103"><a href="#L-5103"><span class="linenos">5103</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-5104"><a href="#L-5104"><span class="linenos">5104</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-5105"><a href="#L-5105"><span class="linenos">5105</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-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</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-5108"><a href="#L-5108"><span class="linenos">5108</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-5109"><a href="#L-5109"><span class="linenos">5109</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-5110"><a href="#L-5110"><span class="linenos">5110</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-5111"><a href="#L-5111"><span class="linenos">5111</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-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 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-5114"><a href="#L-5114"><span class="linenos">5114</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-5115"><a href="#L-5115"><span class="linenos">5115</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-5116"><a href="#L-5116"><span class="linenos">5116</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-5117"><a href="#L-5117"><span class="linenos">5117</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-5118"><a href="#L-5118"><span class="linenos">5118</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-5119"><a href="#L-5119"><span class="linenos">5119</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-5120"><a href="#L-5120"><span class="linenos">5120</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-5121"><a href="#L-5121"><span class="linenos">5121</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-5122"><a href="#L-5122"><span class="linenos">5122</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="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-5124"><a href="#L-5124"><span class="linenos">5124</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="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-5125"><a href="#L-5125"><span class="linenos">5125</span></a> <span class="p">)</span>
-</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</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-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">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</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-5132"><a href="#L-5132"><span class="linenos">5132</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</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-5134"><a href="#L-5134"><span class="linenos">5134</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-5087"><a href="#L-5087"><span class="linenos">5087</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-5088"><a href="#L-5088"><span class="linenos">5088</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a>
+</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a><span class="sd"> Example:</span>
+</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a>
+</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a><span class="sd"> Args:</span>
+</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a><span class="sd"> The new condition.</span>
+</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a> <span class="p">)</span>
+</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a> <span class="k">return</span> <span class="n">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-5112"><a href="#L-5112"><span class="linenos">5112</span></a>
+</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a>
+</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a><span class="k">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-5115"><a href="#L-5115"><span class="linenos">5115</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a><span class="sd"> Wrap an expression in parentheses.</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="sd"> Example:</span>
+</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a><span class="sd"> &#39;(5 + 3)&#39;</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 class="sd"> Args:</span>
+</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a>
+</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</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-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 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-5134"><a href="#L-5134"><span class="linenos">5134</span></a>
</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a>
-</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a> <span class="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-5137"><a href="#L-5137"><span class="linenos">5137</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</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">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-5140"><a href="#L-5140"><span class="linenos">5140</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-5141"><a href="#L-5141"><span class="linenos">5141</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-5142"><a href="#L-5142"><span class="linenos">5142</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-5143"><a href="#L-5143"><span class="linenos">5143</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-5144"><a href="#L-5144"><span class="linenos">5144</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-5145"><a href="#L-5145"><span class="linenos">5145</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</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-5136"><a href="#L-5136"><span class="linenos">5136</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a><span class="k">def</span> <span class="nf">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-5138"><a href="#L-5138"><span class="linenos">5138</span></a> <span class="o">...</span>
+</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a>
+</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a>
+</span><span id="L-5141"><a href="#L-5141"><span class="linenos">5141</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
+</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <span class="n">name</span><span class="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-5144"><a href="#L-5144"><span class="linenos">5144</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a> <span class="o">...</span>
+</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a>
</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</span></a>
-</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a> <span 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-5149"><a href="#L-5149"><span class="linenos">5149</span></a>
+</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</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-5149"><a href="#L-5149"><span class="linenos">5149</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</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">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a><span class="sd"> Return all table names referenced through columns in an expression.</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 class="sd"> Example:</span>
-</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
-</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
+</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a><span class="sd"> Args:</span>
+</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a>
-</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a><span class="sd"> Args:</span>
-</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
+</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</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-5161"><a href="#L-5161"><span class="linenos">5161</span></a> <span class="k">return</span> <span class="kc">None</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 class="sd"> Returns:</span>
-</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a><span class="sd"> list: A list of unique names</span>
-</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
-</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a>
-</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a>
-</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</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-5171"><a href="#L-5171"><span class="linenos">5171</span></a>
-</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a><span class="sd"> Args:</span>
-</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
+</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</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-5164"><a href="#L-5164"><span class="linenos">5164</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-5165"><a href="#L-5165"><span class="linenos">5165</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-5166"><a href="#L-5166"><span class="linenos">5166</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</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-5169"><a href="#L-5169"><span class="linenos">5169</span></a> <span class="p">)</span>
+</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</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-5172"><a href="#L-5172"><span class="linenos">5172</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a>
</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a>
-</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</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-5178"><a href="#L-5178"><span class="linenos">5178</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a>
-</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a><span class="sd"> The table name.</span>
-</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</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-5176"><a href="#L-5176"><span class="linenos">5176</span></a>
+</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a>
+</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</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-5179"><a href="#L-5179"><span class="linenos">5179</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-5180"><a href="#L-5180"><span class="linenos">5180</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
+</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a> <span class="k">if</span> <span class="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-5182"><a href="#L-5182"><span class="linenos">5182</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-5183"><a href="#L-5183"><span class="linenos">5183</span></a>
-</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</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-5185"><a href="#L-5185"><span class="linenos">5185</span></a>
-</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</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-5188"><a href="#L-5188"><span class="linenos">5188</span></a>
-</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a> <span class="k">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-5190"><a href="#L-5190"><span class="linenos">5190</span></a> <span class="n">part</span>
-</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
-</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
-</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
-</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a> <span class="p">)</span>
-</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a> <span class="k">if</span> <span class="n">part</span>
-</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a> <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">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
-</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</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-5202"><a href="#L-5202"><span class="linenos">5202</span></a>
-</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a><span class="sd"> Args:</span>
-</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
+</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</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-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">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
+</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</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-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="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</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-5193"><a href="#L-5193"><span class="linenos">5193</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-5194"><a href="#L-5194"><span class="linenos">5194</span></a> <span class="p">)</span>
+</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a>
+</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a>
+</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a><span class="k">def</span> <span class="nf">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-5199"><a href="#L-5199"><span class="linenos">5199</span></a> <span class="o">...</span>
+</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a>
+</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a>
+</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a><span class="k">def</span> <span class="nf">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-5204"><a href="#L-5204"><span class="linenos">5204</span></a> <span class="o">...</span>
+</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a>
</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a>
-</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</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-5210"><a href="#L-5210"><span class="linenos">5210</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</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="sd"> Returns:</span>
-</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a><span class="sd"> &quot;&quot;&quot;</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">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
-</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</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-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
-</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
-</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="p">)</span>
-</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a> <span class="k">return</span> <span class="n">node</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">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
-</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a>
-</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a>
-</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</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-5210"><a href="#L-5210"><span class="linenos">5210</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</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-5212"><a href="#L-5212"><span class="linenos">5212</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a>
+</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a><span class="sd"> Args:</span>
+</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a>
+</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</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-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</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-5225"><a href="#L-5225"><span class="linenos">5225</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-5226"><a href="#L-5226"><span class="linenos">5226</span></a>
+</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a> <span class="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-5228"><a href="#L-5228"><span class="linenos">5228</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</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-5230"><a href="#L-5230"><span class="linenos">5230</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-5231"><a href="#L-5231"><span class="linenos">5231</span></a>
-</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a><span class="sd"> Args:</span>
-</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</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="sd"> Examples:</span>
-</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</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-5242"><a href="#L-5242"><span class="linenos">5242</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</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="sd"> Returns:</span>
-</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-5247"><a href="#L-5247"><span class="linenos">5247</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</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">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-5250"><a href="#L-5250"><span class="linenos">5250</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-5251"><a href="#L-5251"><span class="linenos">5251</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-5252"><a href="#L-5252"><span class="linenos">5252</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-5253"><a href="#L-5253"><span class="linenos">5253</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</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-5255"><a href="#L-5255"><span class="linenos">5255</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</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-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a> <span class="k">pass</span>
-</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a>
-</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</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-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="k">return</span> <span class="n">table</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">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-5236"><a href="#L-5236"><span class="linenos">5236</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a>
+</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</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="sd"> Args:</span>
+</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</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-5247"><a href="#L-5247"><span class="linenos">5247</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</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-5249"><a href="#L-5249"><span class="linenos">5249</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-5250"><a href="#L-5250"><span class="linenos">5250</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-5251"><a href="#L-5251"><span class="linenos">5251</span></a>
+</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a>
+</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</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-5256"><a href="#L-5256"><span class="linenos">5256</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-5257"><a href="#L-5257"><span class="linenos">5257</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-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">dialect</span><span 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-5259"><a href="#L-5259"><span class="linenos">5259</span></a> <span class="n">copy</span><span 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-5260"><a href="#L-5260"><span class="linenos">5260</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a><span class="p">):</span>
+</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</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><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</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-5269"><a href="#L-5269"><span class="linenos">5269</span></a>
-</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</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-5273"><a href="#L-5273"><span class="linenos">5273</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a>
-</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a><span 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-5276"><a href="#L-5276"><span class="linenos">5276</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-5277"><a href="#L-5277"><span class="linenos">5277</span></a>
-</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a><span class="sd"> Args:</span>
-</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</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 class="sd"> Returns:</span>
-</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a>
-</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</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-5288"><a href="#L-5288"><span class="linenos">5288</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-5289"><a href="#L-5289"><span class="linenos">5289</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</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-5291"><a href="#L-5291"><span class="linenos">5291</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</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-5293"><a href="#L-5293"><span class="linenos">5293</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-5294"><a href="#L-5294"><span class="linenos">5294</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-5295"><a href="#L-5295"><span class="linenos">5295</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a>
-</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</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-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><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a><span class="sd"> Example:</span>
+</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a><span class="sd"> &#39;foo AS bar&#39;</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="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-5269"><a href="#L-5269"><span class="linenos">5269</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a>
+</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="sd"> Args:</span>
+</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</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-5277"><a href="#L-5277"><span class="linenos">5277</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a>
+</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</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-5286"><a href="#L-5286"><span class="linenos">5286</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-5287"><a href="#L-5287"><span class="linenos">5287</span></a>
+</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</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-5290"><a href="#L-5290"><span class="linenos">5290</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-5291"><a href="#L-5291"><span class="linenos">5291</span></a>
+</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a> <span class="k">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-5293"><a href="#L-5293"><span class="linenos">5293</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-5294"><a href="#L-5294"><span class="linenos">5294</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-5295"><a href="#L-5295"><span class="linenos">5295</span></a>
+</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="k">return</span> <span class="n">exp</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"># 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-5299"><a href="#L-5299"><span class="linenos">5299</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-5300"><a href="#L-5300"><span class="linenos">5300</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</span></a> <span class="c1">#</span>
+</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a>
-</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-5306"><a href="#L-5306"><span class="linenos">5306</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</span></a>
-</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
-</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a>
-</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a><span class="sd"> Args:</span>
-</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</span></a>
-</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a><span class="sd"> Note:</span>
-</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a>
-</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</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-5322"><a href="#L-5322"><span class="linenos">5322</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</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-5325"><a href="#L-5325"><span class="linenos">5325</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-5326"><a href="#L-5326"><span class="linenos">5326</span></a>
-</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a>
-</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="L-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="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
-</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a>
-</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="L-5336"><a href="#L-5336"><span class="linenos">5336</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</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-5339"><a href="#L-5339"><span class="linenos">5339</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-5340"><a href="#L-5340"><span class="linenos">5340</span></a>
-</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a> <span class="k">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-5342"><a href="#L-5342"><span class="linenos">5342</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-5343"><a href="#L-5343"><span class="linenos">5343</span></a>
-</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a> <span class="k">return</span> <span class="n">function</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">def</span> <span class="nf">true</span><span class="p">():</span>
-</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</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-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><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
-</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</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-5305"><a href="#L-5305"><span class="linenos">5305</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-5306"><a href="#L-5306"><span class="linenos">5306</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</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-5308"><a href="#L-5308"><span class="linenos">5308</span></a>
+</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a>
+</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</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-5313"><a href="#L-5313"><span class="linenos">5313</span></a> <span class="n">dialect</span><span 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-5314"><a href="#L-5314"><span class="linenos">5314</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a><span class="sd"> Build a subquery expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</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-5321"><a href="#L-5321"><span class="linenos">5321</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a>
+</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a>
+</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a> <span 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-5335"><a href="#L-5335"><span class="linenos">5335</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-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><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</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-5340"><a href="#L-5340"><span class="linenos">5340</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-5341"><a href="#L-5341"><span class="linenos">5341</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-5342"><a href="#L-5342"><span class="linenos">5342</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-5343"><a href="#L-5343"><span class="linenos">5343</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-5344"><a href="#L-5344"><span class="linenos">5344</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a>
+</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="sd"> Args:</span>
+</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a><span class="sd"> col: Column name.</span>
+</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a>
+</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a><span class="sd"> The new Column instance.</span>
</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</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-5359"><a href="#L-5359"><span class="linenos">5359</span></a>
-</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a>
-</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
-</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
-</span><span id="L-5366"><a href="#L-5366"><span class="linenos">5366</span></a>
-</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</span></a>
-</span><span id="L-5368"><a href="#L-5368"><span class="linenos">5368</span></a><span class="c1"># TODO: deprecate this</span>
-</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</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-5370"><a href="#L-5370"><span class="linenos">5370</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-5371"><a href="#L-5371"><span class="linenos">5371</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</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">Column</span><span class="p">(</span>
+</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</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-5360"><a href="#L-5360"><span class="linenos">5360</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-5361"><a href="#L-5361"><span class="linenos">5361</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-5362"><a href="#L-5362"><span class="linenos">5362</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-5363"><a href="#L-5363"><span class="linenos">5363</span></a> <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="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</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 class="sd"> Example:</span>
+</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</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="sd"> Args:</span>
+</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a><span class="sd"> to: The datatype to cast to.</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 class="sd"> Returns:</span>
+</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5380"><a href="#L-5380"><span class="linenos">5380</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-5381"><a href="#L-5381"><span class="linenos">5381</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-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><span id="L-5384"><a href="#L-5384"><span class="linenos">5384</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</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-5386"><a href="#L-5386"><span class="linenos">5386</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-5387"><a href="#L-5387"><span class="linenos">5387</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-5388"><a href="#L-5388"><span class="linenos">5388</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-5389"><a href="#L-5389"><span class="linenos">5389</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-5390"><a href="#L-5390"><span class="linenos">5390</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-5391"><a href="#L-5391"><span class="linenos">5391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</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 class="sd"> Args:</span>
+</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a>
+</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</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-5406"><a href="#L-5406"><span class="linenos">5406</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-5407"><a href="#L-5407"><span class="linenos">5407</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-5408"><a href="#L-5408"><span class="linenos">5408</span></a> <span class="p">)</span>
+</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a>
+</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a>
+</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</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-5413"><a href="#L-5413"><span class="linenos">5413</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-5414"><a href="#L-5414"><span class="linenos">5414</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-5415"><a href="#L-5415"><span class="linenos">5415</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a>
+</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a><span class="sd"> Example:</span>
+</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a>
+</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a><span class="sd"> Args:</span>
+</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="L-5424"><a href="#L-5424"><span class="linenos">5424</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-5425"><a href="#L-5425"><span class="linenos">5425</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-5426"><a href="#L-5426"><span class="linenos">5426</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a>
+</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5429"><a href="#L-5429"><span class="linenos">5429</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</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-5432"><a href="#L-5432"><span class="linenos">5432</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-5433"><a href="#L-5433"><span class="linenos">5433</span></a>
+</span><span id="L-5434"><a href="#L-5434"><span class="linenos">5434</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</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-5436"><a href="#L-5436"><span class="linenos">5436</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</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-5438"><a href="#L-5438"><span class="linenos">5438</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</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-5440"><a href="#L-5440"><span class="linenos">5440</span></a> <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><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="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-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a>
+</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a><span class="sd"> Example:</span>
+</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a>
+</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a>
+</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a><span class="sd"> Args:</span>
+</span><span id="L-5455"><a href="#L-5455"><span class="linenos">5455</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-5456"><a href="#L-5456"><span class="linenos">5456</span></a>
+</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</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-5461"><a href="#L-5461"><span class="linenos">5461</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-5462"><a href="#L-5462"><span class="linenos">5462</span></a>
+</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a> <span class="k">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-5464"><a href="#L-5464"><span class="linenos">5464</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-5465"><a href="#L-5465"><span class="linenos">5465</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-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><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</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-5469"><a href="#L-5469"><span class="linenos">5469</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a>
+</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a><span class="sd"> Args:</span>
+</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a><span class="sd"> new_name: The new name of the table</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="sd"> Returns:</span>
+</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</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-5479"><a href="#L-5479"><span class="linenos">5479</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-5480"><a href="#L-5480"><span class="linenos">5480</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-5481"><a href="#L-5481"><span class="linenos">5481</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-5482"><a href="#L-5482"><span class="linenos">5482</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</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-5484"><a href="#L-5484"><span class="linenos">5484</span></a> <span class="p">],</span>
+</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a> <span class="p">)</span>
+</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</span></a>
+</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a>
+</span><span id="L-5488"><a href="#L-5488"><span class="linenos">5488</span></a><span class="k">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-5489"><a href="#L-5489"><span class="linenos">5489</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-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 class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a>
+</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a><span class="sd"> Args:</span>
+</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a><span class="sd"> value: A python object.</span>
+</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</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="sd"> Returns:</span>
+</span><span id="L-5498"><a href="#L-5498"><span class="linenos">5498</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</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-5501"><a href="#L-5501"><span class="linenos">5501</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-5502"><a href="#L-5502"><span class="linenos">5502</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-5503"><a href="#L-5503"><span class="linenos">5503</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-5504"><a href="#L-5504"><span class="linenos">5504</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-5505"><a href="#L-5505"><span class="linenos">5505</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-5506"><a href="#L-5506"><span class="linenos">5506</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-5507"><a href="#L-5507"><span class="linenos">5507</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</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-5509"><a href="#L-5509"><span class="linenos">5509</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-5510"><a href="#L-5510"><span class="linenos">5510</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-5511"><a href="#L-5511"><span class="linenos">5511</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-5512"><a href="#L-5512"><span class="linenos">5512</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-5513"><a href="#L-5513"><span class="linenos">5513</span></a> <span class="p">)</span>
+</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</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-5515"><a href="#L-5515"><span class="linenos">5515</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-5516"><a href="#L-5516"><span class="linenos">5516</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-5517"><a href="#L-5517"><span class="linenos">5517</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-5518"><a href="#L-5518"><span class="linenos">5518</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-5519"><a href="#L-5519"><span class="linenos">5519</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-5520"><a href="#L-5520"><span class="linenos">5520</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-5521"><a href="#L-5521"><span class="linenos">5521</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-5522"><a href="#L-5522"><span class="linenos">5522</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-5523"><a href="#L-5523"><span class="linenos">5523</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="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-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="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-5526"><a href="#L-5526"><span class="linenos">5526</span></a> <span class="p">)</span>
+</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</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-5528"><a href="#L-5528"><span class="linenos">5528</span></a>
+</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a>
+</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</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-5531"><a href="#L-5531"><span class="linenos">5531</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</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-5533"><a href="#L-5533"><span class="linenos">5533</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</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-5535"><a href="#L-5535"><span class="linenos">5535</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-5536"><a href="#L-5536"><span class="linenos">5536</span></a>
+</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a> <span class="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-5538"><a href="#L-5538"><span class="linenos">5538</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a>
+</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a> <span 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-5541"><a href="#L-5541"><span class="linenos">5541</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-5542"><a href="#L-5542"><span class="linenos">5542</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-5543"><a href="#L-5543"><span class="linenos">5543</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-5544"><a href="#L-5544"><span class="linenos">5544</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-5545"><a href="#L-5545"><span class="linenos">5545</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-5546"><a href="#L-5546"><span class="linenos">5546</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</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-5548"><a href="#L-5548"><span class="linenos">5548</span></a>
+</span><span id="L-5549"><a href="#L-5549"><span class="linenos">5549</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-5550"><a href="#L-5550"><span class="linenos">5550</span></a>
+</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a>
+</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</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="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-5553"><a href="#L-5553"><span class="linenos">5553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a>
+</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</span></a><span class="sd"> Example:</span>
+</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
+</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
+</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="sd"> Args:</span>
+</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a><span class="sd"> expression: expression to find table names.</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 class="sd"> Returns:</span>
+</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
+</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a>
+</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a>
+</span><span id="L-5570"><a href="#L-5570"><span class="linenos">5570</span></a><span class="k">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="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</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-5572"><a href="#L-5572"><span class="linenos">5572</span></a>
+</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a><span class="sd"> Args:</span>
+</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="sd"> table: table expression node or string.</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"> Examples:</span>
+</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</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-5579"><a href="#L-5579"><span class="linenos">5579</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a>
+</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a><span class="sd"> The table name.</span>
+</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a>
+</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a>
+</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</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-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="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">part</span><span class="p">)</span>
+</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a>
+</span><span id="L-5592"><a href="#L-5592"><span class="linenos">5592</span></a>
+</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</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-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="sd"> Args:</span>
+</span><span id="L-5597"><a href="#L-5597"><span class="linenos">5597</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a><span class="sd"> mapping: mapping of table names.</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="sd"> Examples:</span>
+</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5602"><a href="#L-5602"><span class="linenos">5602</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-5603"><a href="#L-5603"><span class="linenos">5603</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a>
+</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a>
+</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a> <span class="k">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-5610"><a href="#L-5610"><span class="linenos">5610</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-5611"><a href="#L-5611"><span class="linenos">5611</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
+</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
+</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a> <span class="p">)</span>
+</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a>
+</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
+</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a>
+</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a>
+</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a><span 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-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a>
+</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a><span class="sd"> Args:</span>
+</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</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="sd"> Examples:</span>
+</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-5633"><a href="#L-5633"><span class="linenos">5633</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</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-5635"><a href="#L-5635"><span class="linenos">5635</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a>
+</span><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a>
+</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="k">def</span> <span class="nf">_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-5643"><a href="#L-5643"><span class="linenos">5643</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-5644"><a href="#L-5644"><span class="linenos">5644</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-5645"><a href="#L-5645"><span class="linenos">5645</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-5646"><a href="#L-5646"><span class="linenos">5646</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</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-5648"><a href="#L-5648"><span class="linenos">5648</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</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-5651"><a href="#L-5651"><span class="linenos">5651</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a> <span class="k">pass</span>
+</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a>
+</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a> <span 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-5656"><a href="#L-5656"><span class="linenos">5656</span></a>
+</span><span id="L-5657"><a href="#L-5657"><span class="linenos">5657</span></a>
+</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</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-5662"><a href="#L-5662"><span class="linenos">5662</span></a>
+</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</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-5666"><a href="#L-5666"><span class="linenos">5666</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a>
+</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="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-5669"><a href="#L-5669"><span class="linenos">5669</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-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"> Args:</span>
+</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a>
+</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a>
+</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a> <span class="k">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-5681"><a href="#L-5681"><span class="linenos">5681</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-5682"><a href="#L-5682"><span class="linenos">5682</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</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-5684"><a href="#L-5684"><span class="linenos">5684</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</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-5686"><a href="#L-5686"><span class="linenos">5686</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-5687"><a href="#L-5687"><span class="linenos">5687</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-5688"><a href="#L-5688"><span class="linenos">5688</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a>
+</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a> <span 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-5691"><a href="#L-5691"><span class="linenos">5691</span></a>
+</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a>
+</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</span></a><span class="sd"> Returns a Func expression.</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"> Examples:</span>
+</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a>
+</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
+</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a>
+</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="sd"> Args:</span>
+</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a>
+</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a><span class="sd"> Note:</span>
+</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</span></a>
+</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</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-5715"><a href="#L-5715"><span class="linenos">5715</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</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-5718"><a href="#L-5718"><span class="linenos">5718</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-5719"><a href="#L-5719"><span class="linenos">5719</span></a>
+</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</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="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</span></a>
+</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
+</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a>
+</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</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-5732"><a href="#L-5732"><span class="linenos">5732</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-5733"><a href="#L-5733"><span class="linenos">5733</span></a>
+</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a> <span class="k">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-5735"><a href="#L-5735"><span class="linenos">5735</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-5736"><a href="#L-5736"><span class="linenos">5736</span></a>
+</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a>
+</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</span></a>
+</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</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-5741"><a href="#L-5741"><span class="linenos">5741</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</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-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><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</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-5748"><a href="#L-5748"><span class="linenos">5748</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5751"><a href="#L-5751"><span class="linenos">5751</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-5752"><a href="#L-5752"><span class="linenos">5752</span></a>
+</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a>
+</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="k">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-5755"><a href="#L-5755"><span class="linenos">5755</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-5759"><a href="#L-5759"><span class="linenos">5759</span></a>
+</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a>
+</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a><span class="c1"># TODO: deprecate this</span>
+</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</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-5763"><a href="#L-5763"><span class="linenos">5763</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-5764"><a href="#L-5764"><span class="linenos">5764</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -8506,592 +8965,608 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</div>
<a class="headerlink" href="#Expression"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression-57"><a href="#Expression-57"><span class="linenos"> 57</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-58"><a href="#Expression-58"><span class="linenos"> 58</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-59"><a href="#Expression-59"><span class="linenos"> 59</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-60"><a href="#Expression-60"><span class="linenos"> 60</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-61"><a href="#Expression-61"><span class="linenos"> 61</span></a><span class="sd"> is optional or not.</span>
-</span><span id="Expression-62"><a href="#Expression-62"><span class="linenos"> 62</span></a>
-</span><span id="Expression-63"><a href="#Expression-63"><span class="linenos"> 63</span></a><span class="sd"> Attributes:</span>
-</span><span id="Expression-64"><a href="#Expression-64"><span class="linenos"> 64</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-65"><a href="#Expression-65"><span class="linenos"> 65</span></a><span class="sd"> and representing expressions as strings.</span>
-</span><span id="Expression-66"><a href="#Expression-66"><span class="linenos"> 66</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
-</span><span id="Expression-67"><a href="#Expression-67"><span class="linenos"> 67</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</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"> Example:</span>
-</span><span id="Expression-70"><a href="#Expression-70"><span class="linenos"> 70</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
-</span><span id="Expression-71"><a href="#Expression-71"><span class="linenos"> 71</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
-</span><span id="Expression-72"><a href="#Expression-72"><span class="linenos"> 72</span></a>
-</span><span id="Expression-73"><a href="#Expression-73"><span class="linenos"> 73</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-74"><a href="#Expression-74"><span class="linenos"> 74</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
-</span><span id="Expression-75"><a href="#Expression-75"><span class="linenos"> 75</span></a>
-</span><span id="Expression-76"><a href="#Expression-76"><span class="linenos"> 76</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-77"><a href="#Expression-77"><span class="linenos"> 77</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-78"><a href="#Expression-78"><span class="linenos"> 78</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
-</span><span id="Expression-79"><a href="#Expression-79"><span class="linenos"> 79</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-80"><a href="#Expression-80"><span class="linenos"> 80</span></a><span class="sd"> uses to refer to it.</span>
-</span><span id="Expression-81"><a href="#Expression-81"><span class="linenos"> 81</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-82"><a href="#Expression-82"><span class="linenos"> 82</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
-</span><span id="Expression-83"><a href="#Expression-83"><span class="linenos"> 83</span></a><span class="sd"> _type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
-</span><span id="Expression-84"><a href="#Expression-84"><span class="linenos"> 84</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
-</span><span id="Expression-85"><a href="#Expression-85"><span class="linenos"> 85</span></a><span class="sd"> &quot;&quot;&quot;</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="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
-</span><span id="Expression-88"><a href="#Expression-88"><span class="linenos"> 88</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-89"><a href="#Expression-89"><span class="linenos"> 89</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-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="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-92"><a href="#Expression-92"><span class="linenos"> 92</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-93"><a href="#Expression-93"><span class="linenos"> 93</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-94"><a href="#Expression-94"><span class="linenos"> 94</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-95"><a href="#Expression-95"><span class="linenos"> 95</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-96"><a href="#Expression-96"><span class="linenos"> 96</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-97"><a href="#Expression-97"><span class="linenos"> 97</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-98"><a href="#Expression-98"><span class="linenos"> 98</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-99"><a href="#Expression-99"><span class="linenos"> 99</span></a>
-</span><span id="Expression-100"><a href="#Expression-100"><span class="linenos">100</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-101"><a href="#Expression-101"><span class="linenos">101</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-102"><a href="#Expression-102"><span class="linenos">102</span></a>
-</span><span id="Expression-103"><a href="#Expression-103"><span class="linenos">103</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-104"><a href="#Expression-104"><span class="linenos">104</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-105"><a href="#Expression-105"><span class="linenos">105</span></a>
-</span><span id="Expression-106"><a href="#Expression-106"><span class="linenos">106</span></a> <span class="nd">@property</span>
-</span><span id="Expression-107"><a href="#Expression-107"><span class="linenos">107</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-108"><a href="#Expression-108"><span class="linenos">108</span></a> <span class="n">args</span> <span class="o">=</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">k</span><span class="p">)</span> <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">arg_types</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="k">return</span> <span class="nb">tuple</span><span class="p">(</span>
-</span><span id="Expression-111"><a href="#Expression-111"><span class="linenos">111</span></a> <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">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-112"><a href="#Expression-112"><span class="linenos">112</span></a> <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">list</span>
-</span><span id="Expression-113"><a href="#Expression-113"><span class="linenos">113</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span> <span class="k">else</span> <span class="kc">None</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">arg</span> <span class="ow">in</span> <span class="n">args</span>
-</span><span id="Expression-115"><a href="#Expression-115"><span class="linenos">115</span></a> <span class="p">)</span>
-</span><span id="Expression-116"><a href="#Expression-116"><span class="linenos">116</span></a>
-</span><span id="Expression-117"><a href="#Expression-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="Expression-118"><a href="#Expression-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="Expression-119"><a href="#Expression-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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression-55"><a href="#Expression-55"><span class="linenos"> 55</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-56"><a href="#Expression-56"><span class="linenos"> 56</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-57"><a href="#Expression-57"><span class="linenos"> 57</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-58"><a href="#Expression-58"><span class="linenos"> 58</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-59"><a href="#Expression-59"><span class="linenos"> 59</span></a><span class="sd"> is optional or not.</span>
+</span><span id="Expression-60"><a href="#Expression-60"><span class="linenos"> 60</span></a>
+</span><span id="Expression-61"><a href="#Expression-61"><span class="linenos"> 61</span></a><span class="sd"> Attributes:</span>
+</span><span id="Expression-62"><a href="#Expression-62"><span class="linenos"> 62</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-63"><a href="#Expression-63"><span class="linenos"> 63</span></a><span class="sd"> and representing expressions as strings.</span>
+</span><span id="Expression-64"><a href="#Expression-64"><span class="linenos"> 64</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
+</span><span id="Expression-65"><a href="#Expression-65"><span class="linenos"> 65</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
+</span><span id="Expression-66"><a href="#Expression-66"><span class="linenos"> 66</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
+</span><span id="Expression-67"><a href="#Expression-67"><span class="linenos"> 67</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-68"><a href="#Expression-68"><span class="linenos"> 68</span></a><span class="sd"> uses to refer to it.</span>
+</span><span id="Expression-69"><a href="#Expression-69"><span class="linenos"> 69</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-70"><a href="#Expression-70"><span class="linenos"> 70</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
+</span><span id="Expression-71"><a href="#Expression-71"><span class="linenos"> 71</span></a><span class="sd"> _type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
+</span><span id="Expression-72"><a href="#Expression-72"><span class="linenos"> 72</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
+</span><span id="Expression-73"><a href="#Expression-73"><span class="linenos"> 73</span></a>
+</span><span id="Expression-74"><a href="#Expression-74"><span class="linenos"> 74</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-75"><a href="#Expression-75"><span class="linenos"> 75</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
+</span><span id="Expression-76"><a href="#Expression-76"><span class="linenos"> 76</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
+</span><span id="Expression-77"><a href="#Expression-77"><span class="linenos"> 77</span></a>
+</span><span id="Expression-78"><a href="#Expression-78"><span class="linenos"> 78</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-79"><a href="#Expression-79"><span class="linenos"> 79</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
+</span><span id="Expression-80"><a href="#Expression-80"><span class="linenos"> 80</span></a>
+</span><span id="Expression-81"><a href="#Expression-81"><span class="linenos"> 81</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-82"><a href="#Expression-82"><span class="linenos"> 82</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-83"><a href="#Expression-83"><span class="linenos"> 83</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-84"><a href="#Expression-84"><span class="linenos"> 84</span></a>
+</span><span id="Expression-85"><a href="#Expression-85"><span class="linenos"> 85</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
+</span><span id="Expression-86"><a href="#Expression-86"><span class="linenos"> 86</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-87"><a href="#Expression-87"><span class="linenos"> 87</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-88"><a href="#Expression-88"><span class="linenos"> 88</span></a>
+</span><span id="Expression-89"><a href="#Expression-89"><span class="linenos"> 89</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-90"><a href="#Expression-90"><span class="linenos"> 90</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-91"><a href="#Expression-91"><span class="linenos"> 91</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-92"><a href="#Expression-92"><span class="linenos"> 92</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-93"><a href="#Expression-93"><span class="linenos"> 93</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-94"><a href="#Expression-94"><span class="linenos"> 94</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-95"><a href="#Expression-95"><span class="linenos"> 95</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-96"><a href="#Expression-96"><span class="linenos"> 96</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-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">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-99"><a href="#Expression-99"><span class="linenos"> 99</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-100"><a href="#Expression-100"><span class="linenos">100</span></a>
+</span><span id="Expression-101"><a href="#Expression-101"><span class="linenos">101</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-102"><a href="#Expression-102"><span class="linenos">102</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-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="nd">@property</span>
+</span><span id="Expression-105"><a href="#Expression-105"><span class="linenos">105</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-106"><a href="#Expression-106"><span class="linenos">106</span></a> <span class="n">args</span> <span class="o">=</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">k</span><span class="p">)</span> <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">arg_types</span><span class="p">)</span>
+</span><span id="Expression-107"><a href="#Expression-107"><span class="linenos">107</span></a>
+</span><span id="Expression-108"><a href="#Expression-108"><span class="linenos">108</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span>
+</span><span id="Expression-109"><a href="#Expression-109"><span class="linenos">109</span></a> <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">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-110"><a href="#Expression-110"><span class="linenos">110</span></a> <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">list</span>
+</span><span id="Expression-111"><a href="#Expression-111"><span class="linenos">111</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-112"><a href="#Expression-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span>
+</span><span id="Expression-113"><a href="#Expression-113"><span class="linenos">113</span></a> <span class="p">)</span>
+</span><span id="Expression-114"><a href="#Expression-114"><span class="linenos">114</span></a>
+</span><span id="Expression-115"><a href="#Expression-115"><span class="linenos">115</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-116"><a href="#Expression-116"><span class="linenos">116</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-117"><a href="#Expression-117"><span class="linenos">117</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-118"><a href="#Expression-118"><span class="linenos">118</span></a>
+</span><span id="Expression-119"><a href="#Expression-119"><span class="linenos">119</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-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">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-122"><a href="#Expression-122"><span class="linenos">122</span></a>
-</span><span id="Expression-123"><a href="#Expression-123"><span class="linenos">123</span></a> <span class="nd">@property</span>
-</span><span id="Expression-124"><a href="#Expression-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><span id="Expression-125"><a href="#Expression-125"><span class="linenos">125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-126"><a href="#Expression-126"><span class="linenos">126</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
-</span><span id="Expression-127"><a href="#Expression-127"><span class="linenos">127</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-128"><a href="#Expression-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="Expression-129"><a href="#Expression-129"><span class="linenos">129</span></a>
-</span><span id="Expression-130"><a href="#Expression-130"><span class="linenos">130</span></a> <span class="nd">@property</span>
-</span><span id="Expression-131"><a href="#Expression-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><span id="Expression-132"><a href="#Expression-132"><span class="linenos">132</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-133"><a href="#Expression-133"><span class="linenos">133</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
-</span><span id="Expression-134"><a href="#Expression-134"><span class="linenos">134</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-135"><a href="#Expression-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="Expression-136"><a href="#Expression-136"><span class="linenos">136</span></a>
-</span><span id="Expression-137"><a href="#Expression-137"><span class="linenos">137</span></a> <span class="nd">@property</span>
-</span><span id="Expression-138"><a href="#Expression-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><span id="Expression-139"><a href="#Expression-139"><span class="linenos">139</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-140"><a href="#Expression-140"><span class="linenos">140</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
-</span><span id="Expression-141"><a href="#Expression-141"><span class="linenos">141</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-142"><a href="#Expression-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="Expression-143"><a href="#Expression-143"><span class="linenos">143</span></a>
-</span><span id="Expression-144"><a href="#Expression-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="Expression-145"><a href="#Expression-145"><span class="linenos">145</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-146"><a href="#Expression-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="Expression-147"><a href="#Expression-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="Expression-148"><a href="#Expression-148"><span class="linenos">148</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-149"><a href="#Expression-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="Expression-150"><a href="#Expression-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="Expression-151"><a href="#Expression-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="n">field</span>
-</span><span id="Expression-152"><a href="#Expression-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="Expression-153"><a href="#Expression-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="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="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</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 class="o">.</span><span class="n">name</span>
-</span><span id="Expression-156"><a href="#Expression-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Expression-157"><a href="#Expression-157"><span class="linenos">157</span></a>
-</span><span id="Expression-158"><a href="#Expression-158"><span class="linenos">158</span></a> <span class="nd">@property</span>
-</span><span id="Expression-159"><a href="#Expression-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="Expression-160"><a href="#Expression-160"><span class="linenos">160</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-161"><a href="#Expression-161"><span class="linenos">161</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
-</span><span id="Expression-162"><a href="#Expression-162"><span class="linenos">162</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-163"><a href="#Expression-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="Expression-164"><a href="#Expression-164"><span class="linenos">164</span></a>
-</span><span id="Expression-165"><a href="#Expression-165"><span class="linenos">165</span></a> <span class="nd">@property</span>
-</span><span id="Expression-166"><a href="#Expression-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="Expression-167"><a href="#Expression-167"><span class="linenos">167</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-168"><a href="#Expression-168"><span class="linenos">168</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
-</span><span id="Expression-169"><a href="#Expression-169"><span class="linenos">169</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-170"><a href="#Expression-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="Expression-171"><a href="#Expression-171"><span class="linenos">171</span></a>
-</span><span id="Expression-172"><a href="#Expression-172"><span class="linenos">172</span></a> <span class="nd">@property</span>
-</span><span id="Expression-173"><a href="#Expression-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="Expression-174"><a href="#Expression-174"><span class="linenos">174</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-175"><a href="#Expression-175"><span class="linenos">175</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
-</span><span id="Expression-176"><a href="#Expression-176"><span class="linenos">176</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-177"><a href="#Expression-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="Expression-178"><a href="#Expression-178"><span class="linenos">178</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Expression-179"><a href="#Expression-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="Expression-180"><a href="#Expression-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="Expression-181"><a href="#Expression-181"><span class="linenos">181</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
-</span><span id="Expression-182"><a href="#Expression-182"><span class="linenos">182</span></a> <span class="k">pass</span>
-</span><span id="Expression-183"><a href="#Expression-183"><span class="linenos">183</span></a> <span class="k">return</span> <span class="kc">False</span>
-</span><span id="Expression-184"><a href="#Expression-184"><span class="linenos">184</span></a>
-</span><span id="Expression-185"><a href="#Expression-185"><span class="linenos">185</span></a> <span class="nd">@property</span>
-</span><span id="Expression-186"><a href="#Expression-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="Expression-187"><a href="#Expression-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="Expression-188"><a href="#Expression-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="Expression-189"><a href="#Expression-189"><span class="linenos">189</span></a>
-</span><span id="Expression-190"><a href="#Expression-190"><span class="linenos">190</span></a> <span class="nd">@property</span>
-</span><span id="Expression-191"><a href="#Expression-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="Expression-192"><a href="#Expression-192"><span class="linenos">192</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-193"><a href="#Expression-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="Expression-194"><a href="#Expression-194"><span class="linenos">194</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-195"><a href="#Expression-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="Expression-196"><a href="#Expression-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="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">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</span></a>
-</span><span id="Expression-199"><a href="#Expression-199"><span class="linenos">199</span></a> <span class="nd">@property</span>
-</span><span id="Expression-200"><a href="#Expression-200"><span class="linenos">200</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-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;this&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_or_name</span><span class="p">(</span><span class="bp">self</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="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-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">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-209"><a href="#Expression-209"><span class="linenos">209</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-210"><a href="#Expression-210"><span class="linenos">210</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="Expression-121"><a href="#Expression-121"><span class="linenos">121</span></a> <span class="nd">@property</span>
+</span><span id="Expression-122"><a href="#Expression-122"><span class="linenos">122</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><span id="Expression-123"><a href="#Expression-123"><span class="linenos">123</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-124"><a href="#Expression-124"><span class="linenos">124</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
+</span><span id="Expression-125"><a href="#Expression-125"><span class="linenos">125</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-126"><a href="#Expression-126"><span class="linenos">126</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-127"><a href="#Expression-127"><span class="linenos">127</span></a>
+</span><span id="Expression-128"><a href="#Expression-128"><span class="linenos">128</span></a> <span class="nd">@property</span>
+</span><span id="Expression-129"><a href="#Expression-129"><span class="linenos">129</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><span id="Expression-130"><a href="#Expression-130"><span class="linenos">130</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-131"><a href="#Expression-131"><span class="linenos">131</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
+</span><span id="Expression-132"><a href="#Expression-132"><span class="linenos">132</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-133"><a href="#Expression-133"><span class="linenos">133</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-134"><a href="#Expression-134"><span class="linenos">134</span></a>
+</span><span id="Expression-135"><a href="#Expression-135"><span class="linenos">135</span></a> <span class="nd">@property</span>
+</span><span id="Expression-136"><a href="#Expression-136"><span class="linenos">136</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><span id="Expression-137"><a href="#Expression-137"><span class="linenos">137</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-138"><a href="#Expression-138"><span class="linenos">138</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
+</span><span id="Expression-139"><a href="#Expression-139"><span class="linenos">139</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-140"><a href="#Expression-140"><span class="linenos">140</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-141"><a href="#Expression-141"><span class="linenos">141</span></a>
+</span><span id="Expression-142"><a href="#Expression-142"><span class="linenos">142</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-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"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
+</span><span id="Expression-145"><a href="#Expression-145"><span class="linenos">145</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
+</span><span id="Expression-146"><a href="#Expression-146"><span class="linenos">146</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-147"><a href="#Expression-147"><span class="linenos">147</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-148"><a href="#Expression-148"><span class="linenos">148</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-149"><a href="#Expression-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="n">field</span>
+</span><span id="Expression-150"><a href="#Expression-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="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-151"><a href="#Expression-151"><span class="linenos">151</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-152"><a href="#Expression-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">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
+</span><span id="Expression-153"><a href="#Expression-153"><span class="linenos">153</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-154"><a href="#Expression-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Expression-155"><a href="#Expression-155"><span class="linenos">155</span></a>
+</span><span id="Expression-156"><a href="#Expression-156"><span class="linenos">156</span></a> <span class="nd">@property</span>
+</span><span id="Expression-157"><a href="#Expression-157"><span class="linenos">157</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-158"><a href="#Expression-158"><span class="linenos">158</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-159"><a href="#Expression-159"><span class="linenos">159</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
+</span><span id="Expression-160"><a href="#Expression-160"><span class="linenos">160</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-161"><a href="#Expression-161"><span class="linenos">161</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-162"><a href="#Expression-162"><span class="linenos">162</span></a>
+</span><span id="Expression-163"><a href="#Expression-163"><span class="linenos">163</span></a> <span class="nd">@property</span>
+</span><span id="Expression-164"><a href="#Expression-164"><span class="linenos">164</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-165"><a href="#Expression-165"><span class="linenos">165</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-166"><a href="#Expression-166"><span class="linenos">166</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
+</span><span id="Expression-167"><a href="#Expression-167"><span class="linenos">167</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-168"><a href="#Expression-168"><span class="linenos">168</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-169"><a href="#Expression-169"><span class="linenos">169</span></a>
+</span><span id="Expression-170"><a href="#Expression-170"><span class="linenos">170</span></a> <span class="nd">@property</span>
+</span><span id="Expression-171"><a href="#Expression-171"><span class="linenos">171</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-172"><a href="#Expression-172"><span class="linenos">172</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-173"><a href="#Expression-173"><span class="linenos">173</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
+</span><span id="Expression-174"><a href="#Expression-174"><span class="linenos">174</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-175"><a href="#Expression-175"><span class="linenos">175</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-176"><a href="#Expression-176"><span class="linenos">176</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Expression-177"><a href="#Expression-177"><span class="linenos">177</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-178"><a href="#Expression-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="Expression-179"><a href="#Expression-179"><span class="linenos">179</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+</span><span id="Expression-180"><a href="#Expression-180"><span class="linenos">180</span></a> <span class="k">pass</span>
+</span><span id="Expression-181"><a href="#Expression-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="Expression-182"><a href="#Expression-182"><span class="linenos">182</span></a>
+</span><span id="Expression-183"><a href="#Expression-183"><span class="linenos">183</span></a> <span class="nd">@property</span>
+</span><span id="Expression-184"><a href="#Expression-184"><span class="linenos">184</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-185"><a href="#Expression-185"><span class="linenos">185</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-186"><a href="#Expression-186"><span class="linenos">186</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-187"><a href="#Expression-187"><span class="linenos">187</span></a>
+</span><span id="Expression-188"><a href="#Expression-188"><span class="linenos">188</span></a> <span class="nd">@property</span>
+</span><span id="Expression-189"><a href="#Expression-189"><span class="linenos">189</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-190"><a href="#Expression-190"><span class="linenos">190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-191"><a href="#Expression-191"><span class="linenos">191</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-192"><a href="#Expression-192"><span class="linenos">192</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-193"><a href="#Expression-193"><span class="linenos">193</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-194"><a href="#Expression-194"><span class="linenos">194</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-195"><a href="#Expression-195"><span class="linenos">195</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-196"><a href="#Expression-196"><span class="linenos">196</span></a>
+</span><span id="Expression-197"><a href="#Expression-197"><span class="linenos">197</span></a> <span class="nd">@property</span>
+</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</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-199"><a href="#Expression-199"><span class="linenos">199</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-200"><a href="#Expression-200"><span class="linenos">200</span></a>
+</span><span id="Expression-201"><a href="#Expression-201"><span class="linenos">201</span></a> <span class="nd">@property</span>
+</span><span id="Expression-202"><a href="#Expression-202"><span class="linenos">202</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-203"><a href="#Expression-203"><span class="linenos">203</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-204"><a href="#Expression-204"><span class="linenos">204</span></a>
+</span><span id="Expression-205"><a href="#Expression-205"><span class="linenos">205</span></a> <span class="nd">@property</span>
+</span><span id="Expression-206"><a href="#Expression-206"><span class="linenos">206</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-207"><a href="#Expression-207"><span class="linenos">207</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-208"><a href="#Expression-208"><span class="linenos">208</span></a><span class="sd"> Name of the output column if this expression is a selection.</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="sd"> If the Expression has no output name, an empty string is returned.</span>
</span><span id="Expression-211"><a href="#Expression-211"><span class="linenos">211</span></a>
-</span><span id="Expression-212"><a href="#Expression-212"><span class="linenos">212</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</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="sd"> Example:</span>
-</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
-</span><span id="Expression-217"><a href="#Expression-217"><span class="linenos">217</span></a><span class="sd"> &#39;a&#39;</span>
-</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</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-219"><a href="#Expression-219"><span class="linenos">219</span></a><span class="sd"> &#39;c&#39;</span>
-</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
-</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a><span class="sd"> &#39;&#39;</span>
-</span><span id="Expression-222"><a href="#Expression-222"><span class="linenos">222</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-223"><a href="#Expression-223"><span class="linenos">223</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</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="nd">@property</span>
-</span><span id="Expression-226"><a href="#Expression-226"><span class="linenos">226</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-227"><a href="#Expression-227"><span class="linenos">227</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-228"><a href="#Expression-228"><span class="linenos">228</span></a>
-</span><span id="Expression-229"><a href="#Expression-229"><span class="linenos">229</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
-</span><span id="Expression-230"><a href="#Expression-230"><span class="linenos">230</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-231"><a href="#Expression-231"><span class="linenos">231</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-232"><a href="#Expression-232"><span class="linenos">232</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-233"><a href="#Expression-233"><span class="linenos">233</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-234"><a href="#Expression-234"><span class="linenos">234</span></a>
-</span><span id="Expression-235"><a href="#Expression-235"><span class="linenos">235</span></a> <span class="nd">@property</span>
-</span><span id="Expression-236"><a href="#Expression-236"><span class="linenos">236</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-237"><a href="#Expression-237"><span class="linenos">237</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-238"><a href="#Expression-238"><span class="linenos">238</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-239"><a href="#Expression-239"><span class="linenos">239</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-240"><a href="#Expression-240"><span class="linenos">240</span></a>
-</span><span id="Expression-241"><a href="#Expression-241"><span class="linenos">241</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-242"><a href="#Expression-242"><span class="linenos">242</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-243"><a href="#Expression-243"><span class="linenos">243</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-244"><a href="#Expression-244"><span class="linenos">244</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-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="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-247"><a href="#Expression-247"><span class="linenos">247</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-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">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-250"><a href="#Expression-250"><span class="linenos">250</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-212"><a href="#Expression-212"><span class="linenos">212</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-213"><a href="#Expression-213"><span class="linenos">213</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Expression-214"><a href="#Expression-214"><span class="linenos">214</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</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-217"><a href="#Expression-217"><span class="linenos">217</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="Expression-219"><a href="#Expression-219"><span class="linenos">219</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</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="nd">@property</span>
+</span><span id="Expression-224"><a href="#Expression-224"><span class="linenos">224</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-225"><a href="#Expression-225"><span class="linenos">225</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-226"><a href="#Expression-226"><span class="linenos">226</span></a>
+</span><span id="Expression-227"><a href="#Expression-227"><span class="linenos">227</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
+</span><span id="Expression-228"><a href="#Expression-228"><span class="linenos">228</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-229"><a href="#Expression-229"><span class="linenos">229</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-230"><a href="#Expression-230"><span class="linenos">230</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-231"><a href="#Expression-231"><span class="linenos">231</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-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">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-235"><a href="#Expression-235"><span class="linenos">235</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-236"><a href="#Expression-236"><span class="linenos">236</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-237"><a href="#Expression-237"><span class="linenos">237</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-238"><a href="#Expression-238"><span class="linenos">238</span></a>
+</span><span id="Expression-239"><a href="#Expression-239"><span class="linenos">239</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-240"><a href="#Expression-240"><span class="linenos">240</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-241"><a href="#Expression-241"><span class="linenos">241</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-242"><a href="#Expression-242"><span class="linenos">242</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-243"><a href="#Expression-243"><span class="linenos">243</span></a>
+</span><span id="Expression-244"><a href="#Expression-244"><span class="linenos">244</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-245"><a href="#Expression-245"><span class="linenos">245</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-246"><a href="#Expression-246"><span class="linenos">246</span></a>
+</span><span id="Expression-247"><a href="#Expression-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="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-248"><a href="#Expression-248"><span class="linenos">248</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-249"><a href="#Expression-249"><span class="linenos">249</span></a>
+</span><span id="Expression-250"><a href="#Expression-250"><span class="linenos">250</span></a> <span class="k">return</span> <span class="n">copy</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">return</span> <span class="n">copy</span>
-</span><span id="Expression-253"><a href="#Expression-253"><span class="linenos">253</span></a>
-</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</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-255"><a href="#Expression-255"><span class="linenos">255</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="Expression-257"><a href="#Expression-257"><span class="linenos">257</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-258"><a href="#Expression-258"><span class="linenos">258</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-259"><a href="#Expression-259"><span class="linenos">259</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-260"><a href="#Expression-260"><span class="linenos">260</span></a> <span class="k">return</span> <span class="n">new</span>
-</span><span id="Expression-261"><a href="#Expression-261"><span class="linenos">261</span></a>
-</span><span id="Expression-262"><a href="#Expression-262"><span class="linenos">262</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="n">value</span><span class="p">):</span>
-</span><span id="Expression-263"><a href="#Expression-263"><span class="linenos">263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</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-252"><a href="#Expression-252"><span class="linenos">252</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-253"><a href="#Expression-253"><span class="linenos">253</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="Expression-255"><a href="#Expression-255"><span class="linenos">255</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</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-257"><a href="#Expression-257"><span class="linenos">257</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-258"><a href="#Expression-258"><span class="linenos">258</span></a> <span class="k">return</span> <span class="n">new</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">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-261"><a href="#Expression-261"><span class="linenos">261</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-262"><a href="#Expression-262"><span class="linenos">262</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-263"><a href="#Expression-263"><span class="linenos">263</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</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="sd"> Args:</span>
-</span><span id="Expression-267"><a href="#Expression-267"><span class="linenos">267</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="Expression-269"><a href="#Expression-269"><span class="linenos">269</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</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-271"><a href="#Expression-271"><span class="linenos">271</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-272"><a href="#Expression-272"><span class="linenos">272</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-273"><a href="#Expression-273"><span class="linenos">273</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-274"><a href="#Expression-274"><span class="linenos">274</span></a>
-</span><span id="Expression-275"><a href="#Expression-275"><span class="linenos">275</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="n">value</span><span class="p">):</span>
-</span><span id="Expression-276"><a href="#Expression-276"><span class="linenos">276</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-277"><a href="#Expression-277"><span class="linenos">277</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
+</span><span id="Expression-266"><a href="#Expression-266"><span class="linenos">266</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-267"><a href="#Expression-267"><span class="linenos">267</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</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-269"><a href="#Expression-269"><span class="linenos">269</span></a>
+</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-271"><a href="#Expression-271"><span class="linenos">271</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="Expression-272"><a href="#Expression-272"><span class="linenos">272</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="Expression-273"><a href="#Expression-273"><span class="linenos">273</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-274"><a href="#Expression-274"><span class="linenos">274</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-275"><a href="#Expression-275"><span class="linenos">275</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-276"><a href="#Expression-276"><span class="linenos">276</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-277"><a href="#Expression-277"><span class="linenos">277</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-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="sd"> Args:</span>
-</span><span id="Expression-280"><a href="#Expression-280"><span class="linenos">280</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
-</span><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a><span class="sd"> &quot;&quot;&quot;</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">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-284"><a href="#Expression-284"><span class="linenos">284</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-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">_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="n">value</span><span class="p">):</span>
-</span><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</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-288"><a href="#Expression-288"><span class="linenos">288</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-289"><a href="#Expression-289"><span class="linenos">289</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-290"><a href="#Expression-290"><span class="linenos">290</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-291"><a href="#Expression-291"><span class="linenos">291</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-292"><a href="#Expression-292"><span class="linenos">292</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-293"><a href="#Expression-293"><span class="linenos">293</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-294"><a href="#Expression-294"><span class="linenos">294</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-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="nd">@property</span>
-</span><span id="Expression-297"><a href="#Expression-297"><span class="linenos">297</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><span id="Expression-298"><a href="#Expression-298"><span class="linenos">298</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-299"><a href="#Expression-299"><span class="linenos">299</span></a><span class="sd"> Returns the depth of this tree.</span>
-</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</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-302"><a href="#Expression-302"><span class="linenos">302</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-303"><a href="#Expression-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="mi">0</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">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-306"><a href="#Expression-306"><span class="linenos">306</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-307"><a href="#Expression-307"><span class="linenos">307</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-308"><a href="#Expression-308"><span class="linenos">308</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-309"><a href="#Expression-309"><span class="linenos">309</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-310"><a href="#Expression-310"><span class="linenos">310</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-311"><a href="#Expression-311"><span class="linenos">311</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-312"><a href="#Expression-312"><span class="linenos">312</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression-313"><a href="#Expression-313"><span class="linenos">313</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-314"><a href="#Expression-314"><span class="linenos">314</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-315"><a href="#Expression-315"><span class="linenos">315</span></a>
-</span><span id="Expression-316"><a href="#Expression-316"><span class="linenos">316</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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-318"><a href="#Expression-318"><span class="linenos">318</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="Expression-319"><a href="#Expression-319"><span class="linenos">319</span></a><span class="sd"> the specified types.</span>
-</span><span id="Expression-320"><a href="#Expression-320"><span class="linenos">320</span></a>
-</span><span id="Expression-321"><a href="#Expression-321"><span class="linenos">321</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a><span class="sd"> expression_types: the expression type(s) to match.</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="sd"> Returns:</span>
-</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</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-279"><a href="#Expression-279"><span class="linenos">279</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-280"><a href="#Expression-280"><span class="linenos">280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
+</span><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a>
+</span><span id="Expression-283"><a href="#Expression-283"><span class="linenos">283</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-284"><a href="#Expression-284"><span class="linenos">284</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
+</span><span id="Expression-285"><a href="#Expression-285"><span class="linenos">285</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="Expression-286"><a href="#Expression-286"><span class="linenos">286</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</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-288"><a href="#Expression-288"><span class="linenos">288</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-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="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-291"><a href="#Expression-291"><span class="linenos">291</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-292"><a href="#Expression-292"><span class="linenos">292</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-293"><a href="#Expression-293"><span class="linenos">293</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-294"><a href="#Expression-294"><span class="linenos">294</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-295"><a href="#Expression-295"><span class="linenos">295</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-296"><a href="#Expression-296"><span class="linenos">296</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-297"><a href="#Expression-297"><span class="linenos">297</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-298"><a href="#Expression-298"><span class="linenos">298</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-299"><a href="#Expression-299"><span class="linenos">299</span></a>
+</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a> <span class="nd">@property</span>
+</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</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-302"><a href="#Expression-302"><span class="linenos">302</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-303"><a href="#Expression-303"><span class="linenos">303</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="Expression-304"><a href="#Expression-304"><span class="linenos">304</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-305"><a href="#Expression-305"><span class="linenos">305</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-306"><a href="#Expression-306"><span class="linenos">306</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-307"><a href="#Expression-307"><span class="linenos">307</span></a> <span class="k">return</span> <span class="mi">0</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="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-310"><a href="#Expression-310"><span class="linenos">310</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-311"><a href="#Expression-311"><span class="linenos">311</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-312"><a href="#Expression-312"><span class="linenos">312</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-313"><a href="#Expression-313"><span class="linenos">313</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-314"><a href="#Expression-314"><span class="linenos">314</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-315"><a href="#Expression-315"><span class="linenos">315</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-316"><a href="#Expression-316"><span class="linenos">316</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</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-318"><a href="#Expression-318"><span class="linenos">318</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-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">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-321"><a href="#Expression-321"><span class="linenos">321</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="Expression-323"><a href="#Expression-323"><span class="linenos">323</span></a><span class="sd"> the specified types.</span>
+</span><span id="Expression-324"><a href="#Expression-324"><span class="linenos">324</span></a>
+</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</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-328"><a href="#Expression-328"><span class="linenos">328</span></a>
-</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</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="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-330"><a href="#Expression-330"><span class="linenos">330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-330"><a href="#Expression-330"><span class="linenos">330</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</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-333"><a href="#Expression-333"><span class="linenos">333</span></a>
-</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-335"><a href="#Expression-335"><span class="linenos">335</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a>
-</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-338"><a href="#Expression-338"><span class="linenos">338</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-339"><a href="#Expression-339"><span class="linenos">339</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</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-341"><a href="#Expression-341"><span class="linenos">341</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-342"><a href="#Expression-342"><span class="linenos">342</span></a> <span class="k">yield</span> <span class="n">expression</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_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">E</span> <span class="o">|</span> <span class="kc">None</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 a nearest parent matching expression_types.</span>
-</span><span id="Expression-347"><a href="#Expression-347"><span class="linenos">347</span></a>
-</span><span id="Expression-348"><a href="#Expression-348"><span class="linenos">348</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-349"><a href="#Expression-349"><span class="linenos">349</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-350"><a href="#Expression-350"><span class="linenos">350</span></a>
-</span><span id="Expression-351"><a href="#Expression-351"><span class="linenos">351</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-352"><a href="#Expression-352"><span class="linenos">352</span></a><span class="sd"> The parent node.</span>
-</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</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-355"><a href="#Expression-355"><span class="linenos">355</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-356"><a href="#Expression-356"><span class="linenos">356</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-357"><a href="#Expression-357"><span class="linenos">357</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-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="nd">@property</span>
-</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</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><span id="Expression-361"><a href="#Expression-361"><span class="linenos">361</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-362"><a href="#Expression-362"><span class="linenos">362</span></a><span class="sd"> Returns the parent select statement.</span>
-</span><span id="Expression-363"><a href="#Expression-363"><span class="linenos">363</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-364"><a href="#Expression-364"><span class="linenos">364</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-365"><a href="#Expression-365"><span class="linenos">365</span></a>
-</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</span></a> <span class="nd">@property</span>
-</span><span id="Expression-367"><a href="#Expression-367"><span class="linenos">367</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><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</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-369"><a href="#Expression-369"><span class="linenos">369</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-370"><a href="#Expression-370"><span class="linenos">370</span></a>
-</span><span id="Expression-371"><a href="#Expression-371"><span class="linenos">371</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-372"><a href="#Expression-372"><span class="linenos">372</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-373"><a href="#Expression-373"><span class="linenos">373</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="Expression-374"><a href="#Expression-374"><span class="linenos">374</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-375"><a href="#Expression-375"><span class="linenos">375</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-376"><a href="#Expression-376"><span class="linenos">376</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-377"><a href="#Expression-377"><span class="linenos">377</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-378"><a href="#Expression-378"><span class="linenos">378</span></a> <span class="k">return</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">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-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 generator object which visits all nodes in this tree.</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"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="Expression-387"><a href="#Expression-387"><span class="linenos">387</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</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-335"><a href="#Expression-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a><span class="sd"> yields those that match at least one of the specified expression types.</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="sd"> Args:</span>
+</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-341"><a href="#Expression-341"><span class="linenos">341</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-342"><a href="#Expression-342"><span class="linenos">342</span></a>
+</span><span id="Expression-343"><a href="#Expression-343"><span class="linenos">343</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-344"><a href="#Expression-344"><span class="linenos">344</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-345"><a href="#Expression-345"><span class="linenos">345</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-346"><a href="#Expression-346"><span class="linenos">346</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-347"><a href="#Expression-347"><span class="linenos">347</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-348"><a href="#Expression-348"><span class="linenos">348</span></a> <span class="k">yield</span> <span class="n">expression</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_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-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 a nearest parent matching expression_types.</span>
+</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a>
+</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-355"><a href="#Expression-355"><span class="linenos">355</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-356"><a href="#Expression-356"><span class="linenos">356</span></a>
+</span><span id="Expression-357"><a href="#Expression-357"><span class="linenos">357</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-358"><a href="#Expression-358"><span class="linenos">358</span></a><span class="sd"> The parent node.</span>
+</span><span id="Expression-359"><a href="#Expression-359"><span class="linenos">359</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</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-361"><a href="#Expression-361"><span class="linenos">361</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-362"><a href="#Expression-362"><span class="linenos">362</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-363"><a href="#Expression-363"><span class="linenos">363</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-364"><a href="#Expression-364"><span class="linenos">364</span></a>
+</span><span id="Expression-365"><a href="#Expression-365"><span class="linenos">365</span></a> <span class="nd">@property</span>
+</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</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-367"><a href="#Expression-367"><span class="linenos">367</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</span></a><span class="sd"> Returns the parent select statement.</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">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-371"><a href="#Expression-371"><span class="linenos">371</span></a>
+</span><span id="Expression-372"><a href="#Expression-372"><span class="linenos">372</span></a> <span class="nd">@property</span>
+</span><span id="Expression-373"><a href="#Expression-373"><span class="linenos">373</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-374"><a href="#Expression-374"><span class="linenos">374</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-375"><a href="#Expression-375"><span class="linenos">375</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-376"><a href="#Expression-376"><span class="linenos">376</span></a>
+</span><span id="Expression-377"><a href="#Expression-377"><span class="linenos">377</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-378"><a href="#Expression-378"><span class="linenos">378</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-379"><a href="#Expression-379"><span class="linenos">379</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="Expression-380"><a href="#Expression-380"><span class="linenos">380</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-381"><a href="#Expression-381"><span class="linenos">381</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-382"><a href="#Expression-382"><span class="linenos">382</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-383"><a href="#Expression-383"><span class="linenos">383</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-384"><a href="#Expression-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-385"><a href="#Expression-385"><span class="linenos">385</span></a>
+</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</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-387"><a href="#Expression-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="Expression-389"><a href="#Expression-389"><span class="linenos">389</span></a>
-</span><span id="Expression-390"><a href="#Expression-390"><span class="linenos">390</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a><span class="sd"> the generator object.</span>
-</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</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-395"><a href="#Expression-395"><span class="linenos">395</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression-396"><a href="#Expression-396"><span class="linenos">396</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-397"><a href="#Expression-397"><span class="linenos">397</span></a>
-</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</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-399"><a href="#Expression-399"><span class="linenos">399</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression-401"><a href="#Expression-401"><span class="linenos">401</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</span></a>
-</span><span id="Expression-403"><a href="#Expression-403"><span class="linenos">403</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-405"><a href="#Expression-405"><span class="linenos">405</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</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-407"><a href="#Expression-407"><span class="linenos">407</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-408"><a href="#Expression-408"><span class="linenos">408</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-409"><a href="#Expression-409"><span class="linenos">409</span></a> <span class="k">return</span>
-</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a>
-</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</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-412"><a href="#Expression-412"><span class="linenos">412</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-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="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-415"><a href="#Expression-415"><span class="linenos">415</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="Expression-418"><a href="#Expression-418"><span class="linenos">418</span></a>
-</span><span id="Expression-419"><a href="#Expression-419"><span class="linenos">419</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-420"><a href="#Expression-420"><span class="linenos">420</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-421"><a href="#Expression-421"><span class="linenos">421</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</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-423"><a href="#Expression-423"><span class="linenos">423</span></a>
-</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</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-426"><a href="#Expression-426"><span class="linenos">426</span></a>
-</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</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-428"><a href="#Expression-428"><span class="linenos">428</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-429"><a href="#Expression-429"><span class="linenos">429</span></a> <span class="k">continue</span>
-</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a>
-</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</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-432"><a href="#Expression-432"><span class="linenos">432</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-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">unnest</span><span class="p">(</span><span class="bp">self</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 the first non parenthesis child or self.</span>
-</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-438"><a href="#Expression-438"><span class="linenos">438</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-439"><a href="#Expression-439"><span class="linenos">439</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-440"><a href="#Expression-440"><span class="linenos">440</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-441"><a href="#Expression-441"><span class="linenos">441</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a>
-</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</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-444"><a href="#Expression-444"><span class="linenos">444</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="Expression-446"><a href="#Expression-446"><span class="linenos">446</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-447"><a href="#Expression-447"><span class="linenos">447</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-448"><a href="#Expression-448"><span class="linenos">448</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-449"><a href="#Expression-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-450"><a href="#Expression-450"><span class="linenos">450</span></a>
-</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</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-452"><a href="#Expression-452"><span class="linenos">452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="Expression-454"><a href="#Expression-454"><span class="linenos">454</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-455"><a href="#Expression-455"><span class="linenos">455</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-390"><a href="#Expression-390"><span class="linenos">390</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</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="sd"> Returns:</span>
+</span><span id="Expression-397"><a href="#Expression-397"><span class="linenos">397</span></a><span class="sd"> the generator object.</span>
+</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-399"><a href="#Expression-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</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-401"><a href="#Expression-401"><span class="linenos">401</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</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-403"><a href="#Expression-403"><span class="linenos">403</span></a>
+</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</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-405"><a href="#Expression-405"><span class="linenos">405</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression-407"><a href="#Expression-407"><span class="linenos">407</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="Expression-408"><a href="#Expression-408"><span class="linenos">408</span></a>
+</span><span id="Expression-409"><a href="#Expression-409"><span class="linenos">409</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-412"><a href="#Expression-412"><span class="linenos">412</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-413"><a href="#Expression-413"><span class="linenos">413</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-414"><a href="#Expression-414"><span class="linenos">414</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-415"><a href="#Expression-415"><span class="linenos">415</span></a> <span class="k">return</span>
+</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a>
+</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</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-418"><a href="#Expression-418"><span class="linenos">418</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-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="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-421"><a href="#Expression-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression-423"><a href="#Expression-423"><span class="linenos">423</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a>
+</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-426"><a href="#Expression-426"><span class="linenos">426</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-428"><a href="#Expression-428"><span class="linenos">428</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-429"><a href="#Expression-429"><span class="linenos">429</span></a>
+</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</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-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="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-434"><a href="#Expression-434"><span class="linenos">434</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-435"><a href="#Expression-435"><span class="linenos">435</span></a> <span class="k">continue</span>
+</span><span id="Expression-436"><a href="#Expression-436"><span class="linenos">436</span></a>
+</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</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-438"><a href="#Expression-438"><span class="linenos">438</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-439"><a href="#Expression-439"><span class="linenos">439</span></a>
+</span><span id="Expression-440"><a href="#Expression-440"><span class="linenos">440</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-441"><a href="#Expression-441"><span class="linenos">441</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-444"><a href="#Expression-444"><span class="linenos">444</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</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-446"><a href="#Expression-446"><span class="linenos">446</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-447"><a href="#Expression-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="n">expression</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="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-450"><a href="#Expression-450"><span class="linenos">450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="Expression-452"><a href="#Expression-452"><span class="linenos">452</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</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-454"><a href="#Expression-454"><span class="linenos">454</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-455"><a href="#Expression-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="bp">self</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">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-457"><a href="#Expression-457"><span class="linenos">457</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-458"><a href="#Expression-458"><span class="linenos">458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</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="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="Expression-462"><a href="#Expression-462"><span class="linenos">462</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-463"><a href="#Expression-463"><span class="linenos">463</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-464"><a href="#Expression-464"><span class="linenos">464</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-465"><a href="#Expression-465"><span class="linenos">465</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
+</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="Expression-460"><a href="#Expression-460"><span class="linenos">460</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-461"><a href="#Expression-461"><span class="linenos">461</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-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">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-464"><a href="#Expression-464"><span class="linenos">464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-465"><a href="#Expression-465"><span class="linenos">465</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</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">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</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-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="fm">__repr__</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="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-467"><a href="#Expression-467"><span class="linenos">467</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-469"><a href="#Expression-469"><span class="linenos">469</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-470"><a href="#Expression-470"><span class="linenos">470</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-471"><a href="#Expression-471"><span class="linenos">471</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="Expression-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">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-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 SQL string representation of this tree.</span>
-</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</span></a>
-</span><span id="Expression-477"><a href="#Expression-477"><span class="linenos">477</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-478"><a href="#Expression-478"><span class="linenos">478</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-479"><a href="#Expression-479"><span class="linenos">479</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</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="sd"> Returns:</span>
-</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a><span class="sd"> The SQL string.</span>
-</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-484"><a href="#Expression-484"><span class="linenos">484</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-485"><a href="#Expression-485"><span class="linenos">485</span></a>
-</span><span id="Expression-486"><a href="#Expression-486"><span class="linenos">486</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-487"><a href="#Expression-487"><span class="linenos">487</span></a>
-</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</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-489"><a href="#Expression-489"><span class="linenos">489</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-490"><a href="#Expression-490"><span class="linenos">490</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-491"><a href="#Expression-491"><span class="linenos">491</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-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="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-494"><a href="#Expression-494"><span class="linenos">494</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-495"><a href="#Expression-495"><span class="linenos">495</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-496"><a href="#Expression-496"><span class="linenos">496</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-497"><a href="#Expression-497"><span class="linenos">497</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-498"><a href="#Expression-498"><span class="linenos">498</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-499"><a href="#Expression-499"><span class="linenos">499</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-500"><a href="#Expression-500"><span class="linenos">500</span></a> <span class="p">)</span>
-</span><span id="Expression-501"><a href="#Expression-501"><span class="linenos">501</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-502"><a href="#Expression-502"><span class="linenos">502</span></a> <span class="p">}</span>
-</span><span id="Expression-503"><a href="#Expression-503"><span class="linenos">503</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-504"><a href="#Expression-504"><span class="linenos">504</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-505"><a href="#Expression-505"><span class="linenos">505</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-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="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-508"><a href="#Expression-508"><span class="linenos">508</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
-</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</span></a>
-</span><span id="Expression-510"><a href="#Expression-510"><span class="linenos">510</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-511"><a href="#Expression-511"><span class="linenos">511</span></a>
-</span><span id="Expression-512"><a href="#Expression-512"><span class="linenos">512</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-513"><a href="#Expression-513"><span class="linenos">513</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-514"><a href="#Expression-514"><span class="linenos">514</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="Expression-515"><a href="#Expression-515"><span class="linenos">515</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="Expression-516"><a href="#Expression-516"><span class="linenos">516</span></a>
-</span><span id="Expression-517"><a href="#Expression-517"><span class="linenos">517</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-518"><a href="#Expression-518"><span class="linenos">518</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="Expression-519"><a href="#Expression-519"><span class="linenos">519</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</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-522"><a href="#Expression-522"><span class="linenos">522</span></a><span class="sd"> modified in place.</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 transformed tree.</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="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-528"><a href="#Expression-528"><span class="linenos">528</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-473"><a href="#Expression-473"><span class="linenos">473</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-474"><a href="#Expression-474"><span class="linenos">474</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-475"><a href="#Expression-475"><span class="linenos">475</span></a>
+</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</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-477"><a href="#Expression-477"><span class="linenos">477</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-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">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-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 SQL string representation of this tree.</span>
+</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a>
+</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-484"><a href="#Expression-484"><span class="linenos">484</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-485"><a href="#Expression-485"><span class="linenos">485</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</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="sd"> Returns:</span>
+</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-490"><a href="#Expression-490"><span class="linenos">490</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-491"><a href="#Expression-491"><span class="linenos">491</span></a>
+</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</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-493"><a href="#Expression-493"><span class="linenos">493</span></a>
+</span><span id="Expression-494"><a href="#Expression-494"><span class="linenos">494</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-495"><a href="#Expression-495"><span class="linenos">495</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-496"><a href="#Expression-496"><span class="linenos">496</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-497"><a href="#Expression-497"><span class="linenos">497</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-498"><a href="#Expression-498"><span class="linenos">498</span></a>
+</span><span id="Expression-499"><a href="#Expression-499"><span class="linenos">499</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-500"><a href="#Expression-500"><span class="linenos">500</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-501"><a href="#Expression-501"><span class="linenos">501</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-502"><a href="#Expression-502"><span class="linenos">502</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-503"><a href="#Expression-503"><span class="linenos">503</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-504"><a href="#Expression-504"><span class="linenos">504</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-505"><a href="#Expression-505"><span class="linenos">505</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-506"><a href="#Expression-506"><span class="linenos">506</span></a> <span class="p">)</span>
+</span><span id="Expression-507"><a href="#Expression-507"><span class="linenos">507</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-508"><a href="#Expression-508"><span class="linenos">508</span></a> <span class="p">}</span>
+</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</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-510"><a href="#Expression-510"><span class="linenos">510</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-511"><a href="#Expression-511"><span class="linenos">511</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-512"><a href="#Expression-512"><span class="linenos">512</span></a>
+</span><span id="Expression-513"><a href="#Expression-513"><span class="linenos">513</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-514"><a href="#Expression-514"><span class="linenos">514</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</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">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</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">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-519"><a href="#Expression-519"><span class="linenos">519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</span></a><span class="sd"> and applies the given transformation function to each node.</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="sd"> Args:</span>
+</span><span id="Expression-524"><a href="#Expression-524"><span class="linenos">524</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="Expression-525"><a href="#Expression-525"><span class="linenos">525</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="Expression-526"><a href="#Expression-526"><span class="linenos">526</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="Expression-527"><a href="#Expression-527"><span class="linenos">527</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-528"><a href="#Expression-528"><span class="linenos">528</span></a><span class="sd"> modified in place.</span>
</span><span id="Expression-529"><a href="#Expression-529"><span class="linenos">529</span></a>
-</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</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-531"><a href="#Expression-531"><span class="linenos">531</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</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-533"><a href="#Expression-533"><span class="linenos">533</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-534"><a href="#Expression-534"><span class="linenos">534</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-531"><a href="#Expression-531"><span class="linenos">531</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-533"><a href="#Expression-533"><span class="linenos">533</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-534"><a href="#Expression-534"><span class="linenos">534</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-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="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-537"><a href="#Expression-537"><span class="linenos">537</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</span></a>
-</span><span id="Expression-539"><a href="#Expression-539"><span class="linenos">539</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-540"><a href="#Expression-540"><span class="linenos">540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-541"><a href="#Expression-541"><span class="linenos">541</span></a><span class="sd"> Swap out this expression with a new expression.</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"> For example::</span>
+</span><span id="Expression-536"><a href="#Expression-536"><span class="linenos">536</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-537"><a href="#Expression-537"><span class="linenos">537</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</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-539"><a href="#Expression-539"><span class="linenos">539</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-540"><a href="#Expression-540"><span class="linenos">540</span></a> <span class="k">return</span> <span class="n">new_node</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="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-543"><a href="#Expression-543"><span class="linenos">543</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression-544"><a href="#Expression-544"><span class="linenos">544</span></a>
-</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="Expression-547"><a href="#Expression-547"><span class="linenos">547</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="Expression-548"><a href="#Expression-548"><span class="linenos">548</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="Expression-549"><a href="#Expression-549"><span class="linenos">549</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</span></a>
-</span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a><span class="sd"> expression (Expression|None): new node</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 new expression or expressions.</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="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-558"><a href="#Expression-558"><span class="linenos">558</span></a> <span class="k">return</span> <span class="n">expression</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="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-561"><a href="#Expression-561"><span class="linenos">561</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-562"><a href="#Expression-562"><span class="linenos">562</span></a>
-</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</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-564"><a href="#Expression-564"><span class="linenos">564</span></a> <span class="k">return</span> <span class="n">expression</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="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</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"> Remove this expression from its AST.</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"> Returns:</span>
-</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a><span class="sd"> The popped expression.</span>
-</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</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-574"><a href="#Expression-574"><span class="linenos">574</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a>
-</span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</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><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</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-547"><a href="#Expression-547"><span class="linenos">547</span></a> <span class="o">...</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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</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-551"><a href="#Expression-551"><span class="linenos">551</span></a> <span class="o">...</span>
+</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a>
+</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</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-554"><a href="#Expression-554"><span class="linenos">554</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a>
+</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a><span class="sd"> For example::</span>
+</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a>
+</span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
+</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a><span class="sd"> (COLUMN this: y)</span>
+</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a>
+</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a><span class="sd"> expression: new node</span>
+</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a>
+</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</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-572"><a href="#Expression-572"><span class="linenos">572</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a>
+</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</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-575"><a href="#Expression-575"><span class="linenos">575</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-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="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-578"><a href="#Expression-578"><span class="linenos">578</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a>
-</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a><span class="sd"> Otherwise, this returns this expression.</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"> Examples:</span>
-</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a>
-</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</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-588"><a href="#Expression-588"><span class="linenos">588</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</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-591"><a href="#Expression-591"><span class="linenos">591</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a>
-</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</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-594"><a href="#Expression-594"><span class="linenos">594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</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-581"><a href="#Expression-581"><span class="linenos">581</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a>
+</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a><span class="sd"> The popped expression.</span>
+</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</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-588"><a href="#Expression-588"><span class="linenos">588</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a>
+</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</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-591"><a href="#Expression-591"><span class="linenos">591</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</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="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a><span class="sd"> Otherwise, this returns this expression.</span>
</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a>
-</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</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-599"><a href="#Expression-599"><span class="linenos">599</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</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="sd"> Returns:</span>
-</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a><span class="sd"> Examples:</span>
+</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
+</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a>
+</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</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-602"><a href="#Expression-602"><span class="linenos">602</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</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-605"><a href="#Expression-605"><span class="linenos">605</span></a>
-</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</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-607"><a href="#Expression-607"><span class="linenos">607</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-608"><a href="#Expression-608"><span class="linenos">608</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-609"><a href="#Expression-609"><span class="linenos">609</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-610"><a href="#Expression-610"><span class="linenos">610</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-611"><a href="#Expression-611"><span class="linenos">611</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-612"><a href="#Expression-612"><span class="linenos">612</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-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">if</span> <span class="p">(</span>
-</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a> <span class="n">args</span>
-</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</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-617"><a href="#Expression-617"><span class="linenos">617</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-618"><a href="#Expression-618"><span class="linenos">618</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-619"><a href="#Expression-619"><span class="linenos">619</span></a> <span class="p">):</span>
-</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</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-622"><a href="#Expression-622"><span class="linenos">622</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-623"><a href="#Expression-623"><span class="linenos">623</span></a> <span class="p">)</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="k">return</span> <span class="n">errors</span>
-</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a>
-</span><span id="Expression-627"><a href="#Expression-627"><span class="linenos">627</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-628"><a href="#Expression-628"><span class="linenos">628</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-631"><a href="#Expression-631"><span class="linenos">631</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-632"><a href="#Expression-632"><span class="linenos">632</span></a>
-</span><span id="Expression-633"><a href="#Expression-633"><span class="linenos">633</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-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="nd">@classmethod</span>
-</span><span id="Expression-636"><a href="#Expression-636"><span class="linenos">636</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-637"><a href="#Expression-637"><span class="linenos">637</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-638"><a href="#Expression-638"><span class="linenos">638</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="Expression-639"><a href="#Expression-639"><span class="linenos">639</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</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-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">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</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-605"><a href="#Expression-605"><span class="linenos">605</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a>
+</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</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-608"><a href="#Expression-608"><span class="linenos">608</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</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"> Args:</span>
+</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</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-613"><a href="#Expression-613"><span class="linenos">613</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a>
+</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a><span class="sd"> A list of error messages for all possible errors that were found.</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="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-619"><a href="#Expression-619"><span class="linenos">619</span></a>
+</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</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-621"><a href="#Expression-621"><span class="linenos">621</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-622"><a href="#Expression-622"><span class="linenos">622</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-623"><a href="#Expression-623"><span class="linenos">623</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-624"><a href="#Expression-624"><span class="linenos">624</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-625"><a href="#Expression-625"><span class="linenos">625</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-626"><a href="#Expression-626"><span class="linenos">626</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-627"><a href="#Expression-627"><span class="linenos">627</span></a>
+</span><span id="Expression-628"><a href="#Expression-628"><span class="linenos">628</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a> <span class="n">args</span>
+</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</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-631"><a href="#Expression-631"><span class="linenos">631</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-632"><a href="#Expression-632"><span class="linenos">632</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-633"><a href="#Expression-633"><span class="linenos">633</span></a> <span class="p">):</span>
+</span><span id="Expression-634"><a href="#Expression-634"><span class="linenos">634</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Expression-635"><a href="#Expression-635"><span class="linenos">635</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-636"><a href="#Expression-636"><span class="linenos">636</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-637"><a href="#Expression-637"><span class="linenos">637</span></a> <span class="p">)</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="k">return</span> <span class="n">errors</span>
+</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</span></a>
+</span><span id="Expression-641"><a href="#Expression-641"><span class="linenos">641</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-642"><a href="#Expression-642"><span class="linenos">642</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-643"><a href="#Expression-643"><span class="linenos">643</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="Expression-644"><a href="#Expression-644"><span class="linenos">644</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-645"><a href="#Expression-645"><span class="linenos">645</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-646"><a href="#Expression-646"><span class="linenos">646</span></a>
+</span><span id="Expression-647"><a href="#Expression-647"><span class="linenos">647</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-648"><a href="#Expression-648"><span class="linenos">648</span></a>
+</span><span id="Expression-649"><a href="#Expression-649"><span class="linenos">649</span></a> <span class="nd">@classmethod</span>
+</span><span id="Expression-650"><a href="#Expression-650"><span class="linenos">650</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-651"><a href="#Expression-651"><span class="linenos">651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-652"><a href="#Expression-652"><span class="linenos">652</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="Expression-653"><a href="#Expression-653"><span class="linenos">653</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-654"><a href="#Expression-654"><span class="linenos">654</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-655"><a href="#Expression-655"><span class="linenos">655</span></a>
+</span><span id="Expression-656"><a href="#Expression-656"><span class="linenos">656</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>
@@ -9106,6 +9581,13 @@ is optional or not.</p>
and representing expressions as strings.</li>
<li><strong>arg_types:</strong> determines what arguments (child nodes) are supported by an expression. It
maps arg keys to booleans that indicate whether the corresponding args are optional.</li>
+<li><strong>parent:</strong> a reference to the parent expression (or None, in case of root expressions).</li>
+<li><strong>arg_key:</strong> the arg key an expression is associated with, i.e. the name its parent expression
+uses to refer to it.</li>
+<li><strong>comments:</strong> a list of comments that are associated with a given expression. This is used in
+order to preserve comments when transpiling SQL code.</li>
+<li><strong>_type:</strong> the <code><a href="#DataType">sqlglot.expressions.DataType</a></code> type of an expression. This is inferred by the
+optimizer, in order to enable some transformations that require type information.</li>
</ul>
<h6 id="example">Example:</h6>
@@ -9125,13 +9607,6 @@ maps arg keys to booleans that indicate whether the corresponding args are optio
<ul>
<li><strong>args:</strong> a mapping used for retrieving the arguments of an expression, given their arg keys.</li>
-<li><strong>parent:</strong> a reference to the parent expression (or None, in case of root expressions).</li>
-<li><strong>arg_key:</strong> the arg key an expression is associated with, i.e. the name its parent expression
-uses to refer to it.</li>
-<li><strong>comments:</strong> a list of comments that are associated with a given expression. This is used in
-order to preserve comments when transpiling SQL code.</li>
-<li><strong>_type:</strong> the <code><a href="#DataType">sqlglot.expressions.DataType</a></code> type of an expression. This is inferred by the
-optimizer, in order to enable some transformations that require type information.</li>
</ul>
</div>
@@ -9146,17 +9621,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__-91"><a href="#Expression.__init__-91"><span class="linenos"> 91</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__-92"><a href="#Expression.__init__-92"><span class="linenos"> 92</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__-93"><a href="#Expression.__init__-93"><span class="linenos"> 93</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__-94"><a href="#Expression.__init__-94"><span class="linenos"> 94</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__-95"><a href="#Expression.__init__-95"><span class="linenos"> 95</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__-96"><a href="#Expression.__init__-96"><span class="linenos"> 96</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__-97"><a href="#Expression.__init__-97"><span class="linenos"> 97</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__-98"><a href="#Expression.__init__-98"><span class="linenos"> 98</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__-99"><a href="#Expression.__init__-99"><span class="linenos"> 99</span></a>
-</span><span id="Expression.__init__-100"><a href="#Expression.__init__-100"><span class="linenos">100</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__-101"><a href="#Expression.__init__-101"><span class="linenos">101</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__-89"><a href="#Expression.__init__-89"><span class="linenos">89</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__-90"><a href="#Expression.__init__-90"><span class="linenos">90</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__-91"><a href="#Expression.__init__-91"><span class="linenos">91</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__-92"><a href="#Expression.__init__-92"><span class="linenos">92</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__-93"><a href="#Expression.__init__-93"><span class="linenos">93</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__-94"><a href="#Expression.__init__-94"><span class="linenos">94</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__-95"><a href="#Expression.__init__-95"><span class="linenos">95</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__-96"><a href="#Expression.__init__-96"><span class="linenos">96</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__-97"><a href="#Expression.__init__-97"><span class="linenos">97</span></a>
+</span><span id="Expression.__init__-98"><a href="#Expression.__init__-98"><span class="linenos">98</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__-99"><a href="#Expression.__init__-99"><span class="linenos">99</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>
@@ -9213,19 +9688,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-144"><a href="#Expression.text-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="Expression.text-145"><a href="#Expression.text-145"><span class="linenos">145</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.text-146"><a href="#Expression.text-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="Expression.text-147"><a href="#Expression.text-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="Expression.text-148"><a href="#Expression.text-148"><span class="linenos">148</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.text-149"><a href="#Expression.text-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="Expression.text-150"><a href="#Expression.text-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="Expression.text-151"><a href="#Expression.text-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="n">field</span>
-</span><span id="Expression.text-152"><a href="#Expression.text-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="Expression.text-153"><a href="#Expression.text-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="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="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-155"><a href="#Expression.text-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="Expression.text-156"><a href="#Expression.text-156"><span class="linenos">156</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-142"><a href="#Expression.text-142"><span class="linenos">142</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-143"><a href="#Expression.text-143"><span class="linenos">143</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.text-144"><a href="#Expression.text-144"><span class="linenos">144</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-145"><a href="#Expression.text-145"><span class="linenos">145</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-146"><a href="#Expression.text-146"><span class="linenos">146</span></a><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="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-148"><a href="#Expression.text-148"><span class="linenos">148</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-149"><a href="#Expression.text-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="n">field</span>
+</span><span id="Expression.text-150"><a href="#Expression.text-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="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-151"><a href="#Expression.text-151"><span class="linenos">151</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-152"><a href="#Expression.text-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">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
+</span><span id="Expression.text-153"><a href="#Expression.text-153"><span class="linenos">153</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-154"><a href="#Expression.text-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
@@ -9302,7 +9777,7 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<div id="Expression.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -9341,13 +9816,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-254"><a href="#Expression.copy-254"><span class="linenos">254</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-255"><a href="#Expression.copy-255"><span class="linenos">255</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.copy-256"><a href="#Expression.copy-256"><span class="linenos">256</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="Expression.copy-257"><a href="#Expression.copy-257"><span class="linenos">257</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.copy-258"><a href="#Expression.copy-258"><span class="linenos">258</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-259"><a href="#Expression.copy-259"><span class="linenos">259</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-260"><a href="#Expression.copy-260"><span class="linenos">260</span></a> <span class="k">return</span> <span class="n">new</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.copy-252"><a href="#Expression.copy-252"><span class="linenos">252</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-253"><a href="#Expression.copy-253"><span class="linenos">253</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.copy-254"><a href="#Expression.copy-254"><span class="linenos">254</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="Expression.copy-255"><a href="#Expression.copy-255"><span class="linenos">255</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.copy-256"><a href="#Expression.copy-256"><span class="linenos">256</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-257"><a href="#Expression.copy-257"><span class="linenos">257</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-258"><a href="#Expression.copy-258"><span class="linenos">258</span></a> <span class="k">return</span> <span class="n">new</span>
</span></pre></div>
@@ -9356,29 +9831,51 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
+ <div id="Expression.add_comments" class="classattr">
+ <input id="Expression.add_comments-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">add_comments</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">comments</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
+
+ <label class="view-source-button" for="Expression.add_comments-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Expression.add_comments"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.add_comments-260"><a href="#Expression.add_comments-260"><span class="linenos">260</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-261"><a href="#Expression.add_comments-261"><span class="linenos">261</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-262"><a href="#Expression.add_comments-262"><span class="linenos">262</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-263"><a href="#Expression.add_comments-263"><span class="linenos">263</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression.add_comments-264"><a href="#Expression.add_comments-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
+</span></pre></div>
+
+
+
+
+ </div>
<div id="Expression.append" class="classattr">
<input id="Expression.append-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">append</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">arg_key</span>, </span><span class="param"><span class="n">value</span></span><span class="return-annotation">):</span></span>
+ <span class="name">append</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">value</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="Expression.append-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.append"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.append-262"><a href="#Expression.append-262"><span class="linenos">262</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="n">value</span><span class="p">):</span>
-</span><span id="Expression.append-263"><a href="#Expression.append-263"><span class="linenos">263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.append-264"><a href="#Expression.append-264"><span class="linenos">264</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-265"><a href="#Expression.append-265"><span class="linenos">265</span></a>
-</span><span id="Expression.append-266"><a href="#Expression.append-266"><span class="linenos">266</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.append-267"><a href="#Expression.append-267"><span class="linenos">267</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="Expression.append-268"><a href="#Expression.append-268"><span class="linenos">268</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="Expression.append-269"><a href="#Expression.append-269"><span class="linenos">269</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.append-270"><a href="#Expression.append-270"><span class="linenos">270</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-271"><a href="#Expression.append-271"><span class="linenos">271</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-272"><a href="#Expression.append-272"><span class="linenos">272</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-273"><a href="#Expression.append-273"><span class="linenos">273</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-266"><a href="#Expression.append-266"><span class="linenos">266</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-267"><a href="#Expression.append-267"><span class="linenos">267</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.append-268"><a href="#Expression.append-268"><span class="linenos">268</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-269"><a href="#Expression.append-269"><span class="linenos">269</span></a>
+</span><span id="Expression.append-270"><a href="#Expression.append-270"><span class="linenos">270</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.append-271"><a href="#Expression.append-271"><span class="linenos">271</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="Expression.append-272"><a href="#Expression.append-272"><span class="linenos">272</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="Expression.append-273"><a href="#Expression.append-273"><span class="linenos">273</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.append-274"><a href="#Expression.append-274"><span class="linenos">274</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-275"><a href="#Expression.append-275"><span class="linenos">275</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-276"><a href="#Expression.append-276"><span class="linenos">276</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-277"><a href="#Expression.append-277"><span class="linenos">277</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>
@@ -9399,22 +9896,22 @@ for args that are strings or leaf Expression instances, such as identifiers and
<div class="attr function">
<span class="def">def</span>
- <span class="name">set</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">arg_key</span>, </span><span class="param"><span class="n">value</span></span><span class="return-annotation">):</span></span>
+ <span class="name">set</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">value</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="Expression.set-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.set"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.set-275"><a href="#Expression.set-275"><span class="linenos">275</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="n">value</span><span class="p">):</span>
-</span><span id="Expression.set-276"><a href="#Expression.set-276"><span class="linenos">276</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.set-277"><a href="#Expression.set-277"><span class="linenos">277</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
-</span><span id="Expression.set-278"><a href="#Expression.set-278"><span class="linenos">278</span></a>
-</span><span id="Expression.set-279"><a href="#Expression.set-279"><span class="linenos">279</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.set-280"><a href="#Expression.set-280"><span class="linenos">280</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
-</span><span id="Expression.set-281"><a href="#Expression.set-281"><span class="linenos">281</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="Expression.set-282"><a href="#Expression.set-282"><span class="linenos">282</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.set-283"><a href="#Expression.set-283"><span class="linenos">283</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-284"><a href="#Expression.set-284"><span class="linenos">284</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-279"><a href="#Expression.set-279"><span class="linenos">279</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-280"><a href="#Expression.set-280"><span class="linenos">280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.set-281"><a href="#Expression.set-281"><span class="linenos">281</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
+</span><span id="Expression.set-282"><a href="#Expression.set-282"><span class="linenos">282</span></a>
+</span><span id="Expression.set-283"><a href="#Expression.set-283"><span class="linenos">283</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.set-284"><a href="#Expression.set-284"><span class="linenos">284</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
+</span><span id="Expression.set-285"><a href="#Expression.set-285"><span class="linenos">285</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="Expression.set-286"><a href="#Expression.set-286"><span class="linenos">286</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.set-287"><a href="#Expression.set-287"><span class="linenos">287</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-288"><a href="#Expression.set-288"><span class="linenos">288</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>
@@ -9432,7 +9929,7 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<div id="Expression.depth" class="classattr">
<div class="attr variable">
- <span class="name">depth</span>
+ <span class="name">depth</span><span class="annotation">: int</span>
</div>
@@ -9454,16 +9951,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-305"><a href="#Expression.iter_expressions-305"><span class="linenos">305</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-306"><a href="#Expression.iter_expressions-306"><span class="linenos">306</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-307"><a href="#Expression.iter_expressions-307"><span class="linenos">307</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-308"><a href="#Expression.iter_expressions-308"><span class="linenos">308</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-309"><a href="#Expression.iter_expressions-309"><span class="linenos">309</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-310"><a href="#Expression.iter_expressions-310"><span class="linenos">310</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-311"><a href="#Expression.iter_expressions-311"><span class="linenos">311</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-312"><a href="#Expression.iter_expressions-312"><span class="linenos">312</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-313"><a href="#Expression.iter_expressions-313"><span class="linenos">313</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-314"><a href="#Expression.iter_expressions-314"><span class="linenos">314</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-309"><a href="#Expression.iter_expressions-309"><span class="linenos">309</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-310"><a href="#Expression.iter_expressions-310"><span class="linenos">310</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-311"><a href="#Expression.iter_expressions-311"><span class="linenos">311</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-312"><a href="#Expression.iter_expressions-312"><span class="linenos">312</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-313"><a href="#Expression.iter_expressions-313"><span class="linenos">313</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-314"><a href="#Expression.iter_expressions-314"><span class="linenos">314</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-315"><a href="#Expression.iter_expressions-315"><span class="linenos">315</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-316"><a href="#Expression.iter_expressions-316"><span class="linenos">316</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-317"><a href="#Expression.iter_expressions-317"><span class="linenos">317</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-318"><a href="#Expression.iter_expressions-318"><span class="linenos">318</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
</span></pre></div>
@@ -9477,24 +9974,25 @@ for args that are strings or leaf Expression instances, such as identifiers and
<div class="attr function">
<span class="def">def</span>
- <span class="name">find</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>, </span><span class="param"><span class="n">bfs</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">) -> <span class="n">Optional</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
+ <span class="name">find</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>, </span><span class="param"><span class="n">bfs</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">Optional</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="Expression.find-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.find"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find-316"><a href="#Expression.find-316"><span class="linenos">316</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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.find-317"><a href="#Expression.find-317"><span class="linenos">317</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find-318"><a href="#Expression.find-318"><span class="linenos">318</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="Expression.find-319"><a href="#Expression.find-319"><span class="linenos">319</span></a><span class="sd"> the specified types.</span>
-</span><span id="Expression.find-320"><a href="#Expression.find-320"><span class="linenos">320</span></a>
-</span><span id="Expression.find-321"><a href="#Expression.find-321"><span class="linenos">321</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find-322"><a href="#Expression.find-322"><span class="linenos">322</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find-323"><a href="#Expression.find-323"><span class="linenos">323</span></a>
-</span><span id="Expression.find-324"><a href="#Expression.find-324"><span class="linenos">324</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find-325"><a href="#Expression.find-325"><span class="linenos">325</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-326"><a href="#Expression.find-326"><span class="linenos">326</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find-327"><a href="#Expression.find-327"><span class="linenos">327</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-320"><a href="#Expression.find-320"><span class="linenos">320</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-321"><a href="#Expression.find-321"><span class="linenos">321</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find-322"><a href="#Expression.find-322"><span class="linenos">322</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="Expression.find-323"><a href="#Expression.find-323"><span class="linenos">323</span></a><span class="sd"> the specified types.</span>
+</span><span id="Expression.find-324"><a href="#Expression.find-324"><span class="linenos">324</span></a>
+</span><span id="Expression.find-325"><a href="#Expression.find-325"><span class="linenos">325</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find-326"><a href="#Expression.find-326"><span class="linenos">326</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find-327"><a href="#Expression.find-327"><span class="linenos">327</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-328"><a href="#Expression.find-328"><span class="linenos">328</span></a>
+</span><span id="Expression.find-329"><a href="#Expression.find-329"><span class="linenos">329</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find-330"><a href="#Expression.find-330"><span class="linenos">330</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-331"><a href="#Expression.find-331"><span class="linenos">331</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find-332"><a href="#Expression.find-332"><span class="linenos">332</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>
@@ -9505,6 +10003,7 @@ the specified types.</p>
<ul>
<li><strong>expression_types:</strong> the expression type(s) to match.</li>
+<li><strong>bfs:</strong> whether to search the AST using the BFS algorithm (DFS is used if false).</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -9521,26 +10020,27 @@ the specified types.</p>
<div class="attr function">
<span class="def">def</span>
- <span class="name">find_all</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>, </span><span class="param"><span class="n">bfs</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">) -> <span class="n">Iterator</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
+ <span class="name">find_all</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>, </span><span class="param"><span class="n">bfs</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">Iterator</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="Expression.find_all-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.find_all"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_all-329"><a href="#Expression.find_all-329"><span class="linenos">329</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="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-330"><a href="#Expression.find_all-330"><span class="linenos">330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find_all-331"><a href="#Expression.find_all-331"><span class="linenos">331</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-332"><a href="#Expression.find_all-332"><span class="linenos">332</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="Expression.find_all-333"><a href="#Expression.find_all-333"><span class="linenos">333</span></a>
-</span><span id="Expression.find_all-334"><a href="#Expression.find_all-334"><span class="linenos">334</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find_all-335"><a href="#Expression.find_all-335"><span class="linenos">335</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find_all-336"><a href="#Expression.find_all-336"><span class="linenos">336</span></a>
-</span><span id="Expression.find_all-337"><a href="#Expression.find_all-337"><span class="linenos">337</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find_all-338"><a href="#Expression.find_all-338"><span class="linenos">338</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.find_all-339"><a href="#Expression.find_all-339"><span class="linenos">339</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find_all-340"><a href="#Expression.find_all-340"><span class="linenos">340</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-341"><a href="#Expression.find_all-341"><span class="linenos">341</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-342"><a href="#Expression.find_all-342"><span class="linenos">342</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-334"><a href="#Expression.find_all-334"><span class="linenos">334</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-335"><a href="#Expression.find_all-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find_all-336"><a href="#Expression.find_all-336"><span class="linenos">336</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-337"><a href="#Expression.find_all-337"><span class="linenos">337</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="Expression.find_all-338"><a href="#Expression.find_all-338"><span class="linenos">338</span></a>
+</span><span id="Expression.find_all-339"><a href="#Expression.find_all-339"><span class="linenos">339</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find_all-340"><a href="#Expression.find_all-340"><span class="linenos">340</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find_all-341"><a href="#Expression.find_all-341"><span class="linenos">341</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-342"><a href="#Expression.find_all-342"><span class="linenos">342</span></a>
+</span><span id="Expression.find_all-343"><a href="#Expression.find_all-343"><span class="linenos">343</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find_all-344"><a href="#Expression.find_all-344"><span class="linenos">344</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.find_all-345"><a href="#Expression.find_all-345"><span class="linenos">345</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find_all-346"><a href="#Expression.find_all-346"><span class="linenos">346</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-347"><a href="#Expression.find_all-347"><span class="linenos">347</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-348"><a href="#Expression.find_all-348"><span class="linenos">348</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span></pre></div>
@@ -9551,6 +10051,7 @@ yields those that match at least one of the specified expression types.</p>
<ul>
<li><strong>expression_types:</strong> the expression type(s) to match.</li>
+<li><strong>bfs:</strong> whether to search the AST using the BFS algorithm (DFS is used if false).</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -9573,20 +10074,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-344"><a href="#Expression.find_ancestor-344"><span class="linenos">344</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">E</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.find_ancestor-345"><a href="#Expression.find_ancestor-345"><span class="linenos">345</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find_ancestor-346"><a href="#Expression.find_ancestor-346"><span class="linenos">346</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="Expression.find_ancestor-347"><a href="#Expression.find_ancestor-347"><span class="linenos">347</span></a>
-</span><span id="Expression.find_ancestor-348"><a href="#Expression.find_ancestor-348"><span class="linenos">348</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find_ancestor-349"><a href="#Expression.find_ancestor-349"><span class="linenos">349</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find_ancestor-350"><a href="#Expression.find_ancestor-350"><span class="linenos">350</span></a>
-</span><span id="Expression.find_ancestor-351"><a href="#Expression.find_ancestor-351"><span class="linenos">351</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find_ancestor-352"><a href="#Expression.find_ancestor-352"><span class="linenos">352</span></a><span class="sd"> The parent node.</span>
-</span><span id="Expression.find_ancestor-353"><a href="#Expression.find_ancestor-353"><span class="linenos">353</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find_ancestor-354"><a href="#Expression.find_ancestor-354"><span class="linenos">354</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-355"><a href="#Expression.find_ancestor-355"><span class="linenos">355</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-356"><a href="#Expression.find_ancestor-356"><span class="linenos">356</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-357"><a href="#Expression.find_ancestor-357"><span class="linenos">357</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-350"><a href="#Expression.find_ancestor-350"><span class="linenos">350</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-351"><a href="#Expression.find_ancestor-351"><span class="linenos">351</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find_ancestor-352"><a href="#Expression.find_ancestor-352"><span class="linenos">352</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="Expression.find_ancestor-353"><a href="#Expression.find_ancestor-353"><span class="linenos">353</span></a>
+</span><span id="Expression.find_ancestor-354"><a href="#Expression.find_ancestor-354"><span class="linenos">354</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find_ancestor-355"><a href="#Expression.find_ancestor-355"><span class="linenos">355</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find_ancestor-356"><a href="#Expression.find_ancestor-356"><span class="linenos">356</span></a>
+</span><span id="Expression.find_ancestor-357"><a href="#Expression.find_ancestor-357"><span class="linenos">357</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find_ancestor-358"><a href="#Expression.find_ancestor-358"><span class="linenos">358</span></a><span class="sd"> The parent node.</span>
+</span><span id="Expression.find_ancestor-359"><a href="#Expression.find_ancestor-359"><span class="linenos">359</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find_ancestor-360"><a href="#Expression.find_ancestor-360"><span class="linenos">360</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-361"><a href="#Expression.find_ancestor-361"><span class="linenos">361</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-362"><a href="#Expression.find_ancestor-362"><span class="linenos">362</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-363"><a href="#Expression.find_ancestor-363"><span class="linenos">363</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>
@@ -9609,7 +10110,7 @@ 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">
- <span class="name">parent_select</span>
+ <span class="name">parent_select</span><span class="annotation">: Optional[<a href="#Select">sqlglot.expressions.Select</a>]</span>
</div>
@@ -9622,7 +10123,7 @@ yields those that match at least one of the specified expression types.</p>
</div>
<div id="Expression.same_parent" class="classattr">
<div class="attr variable">
- <span class="name">same_parent</span>
+ <span class="name">same_parent</span><span class="annotation">: bool</span>
</div>
@@ -9644,14 +10145,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-371"><a href="#Expression.root-371"><span class="linenos">371</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-372"><a href="#Expression.root-372"><span class="linenos">372</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.root-373"><a href="#Expression.root-373"><span class="linenos">373</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="Expression.root-374"><a href="#Expression.root-374"><span class="linenos">374</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.root-375"><a href="#Expression.root-375"><span class="linenos">375</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression.root-376"><a href="#Expression.root-376"><span class="linenos">376</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-377"><a href="#Expression.root-377"><span class="linenos">377</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-378"><a href="#Expression.root-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.root-377"><a href="#Expression.root-377"><span class="linenos">377</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-378"><a href="#Expression.root-378"><span class="linenos">378</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.root-379"><a href="#Expression.root-379"><span class="linenos">379</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="Expression.root-380"><a href="#Expression.root-380"><span class="linenos">380</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.root-381"><a href="#Expression.root-381"><span class="linenos">381</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression.root-382"><a href="#Expression.root-382"><span class="linenos">382</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-383"><a href="#Expression.root-383"><span class="linenos">383</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-384"><a href="#Expression.root-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -9671,23 +10172,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-380"><a href="#Expression.walk-380"><span class="linenos">380</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-381"><a href="#Expression.walk-381"><span class="linenos">381</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.walk-382"><a href="#Expression.walk-382"><span class="linenos">382</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="Expression.walk-383"><a href="#Expression.walk-383"><span class="linenos">383</span></a>
-</span><span id="Expression.walk-384"><a href="#Expression.walk-384"><span class="linenos">384</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.walk-385"><a href="#Expression.walk-385"><span class="linenos">385</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="Expression.walk-386"><a href="#Expression.walk-386"><span class="linenos">386</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="Expression.walk-387"><a href="#Expression.walk-387"><span class="linenos">387</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="Expression.walk-388"><a href="#Expression.walk-388"><span class="linenos">388</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-386"><a href="#Expression.walk-386"><span class="linenos">386</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-387"><a href="#Expression.walk-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.walk-388"><a href="#Expression.walk-388"><span class="linenos">388</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="Expression.walk-389"><a href="#Expression.walk-389"><span class="linenos">389</span></a>
-</span><span id="Expression.walk-390"><a href="#Expression.walk-390"><span class="linenos">390</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.walk-391"><a href="#Expression.walk-391"><span class="linenos">391</span></a><span class="sd"> the generator object.</span>
-</span><span id="Expression.walk-392"><a href="#Expression.walk-392"><span class="linenos">392</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.walk-393"><a href="#Expression.walk-393"><span class="linenos">393</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="Expression.walk-394"><a href="#Expression.walk-394"><span class="linenos">394</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-395"><a href="#Expression.walk-395"><span class="linenos">395</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression.walk-396"><a href="#Expression.walk-396"><span class="linenos">396</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-390"><a href="#Expression.walk-390"><span class="linenos">390</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.walk-391"><a href="#Expression.walk-391"><span class="linenos">391</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="Expression.walk-392"><a href="#Expression.walk-392"><span class="linenos">392</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="Expression.walk-393"><a href="#Expression.walk-393"><span class="linenos">393</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="Expression.walk-394"><a href="#Expression.walk-394"><span class="linenos">394</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression.walk-395"><a href="#Expression.walk-395"><span class="linenos">395</span></a>
+</span><span id="Expression.walk-396"><a href="#Expression.walk-396"><span class="linenos">396</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.walk-397"><a href="#Expression.walk-397"><span class="linenos">397</span></a><span class="sd"> the generator object.</span>
+</span><span id="Expression.walk-398"><a href="#Expression.walk-398"><span class="linenos">398</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.walk-399"><a href="#Expression.walk-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="Expression.walk-400"><a href="#Expression.walk-400"><span class="linenos">400</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-401"><a href="#Expression.walk-401"><span class="linenos">401</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression.walk-402"><a href="#Expression.walk-402"><span class="linenos">402</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>
@@ -9722,21 +10223,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-398"><a href="#Expression.dfs-398"><span class="linenos">398</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-399"><a href="#Expression.dfs-399"><span class="linenos">399</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.dfs-400"><a href="#Expression.dfs-400"><span class="linenos">400</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression.dfs-401"><a href="#Expression.dfs-401"><span class="linenos">401</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="Expression.dfs-402"><a href="#Expression.dfs-402"><span class="linenos">402</span></a>
-</span><span id="Expression.dfs-403"><a href="#Expression.dfs-403"><span class="linenos">403</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.dfs-404"><a href="#Expression.dfs-404"><span class="linenos">404</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.dfs-405"><a href="#Expression.dfs-405"><span class="linenos">405</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.dfs-406"><a href="#Expression.dfs-406"><span class="linenos">406</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-407"><a href="#Expression.dfs-407"><span class="linenos">407</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-408"><a href="#Expression.dfs-408"><span class="linenos">408</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-409"><a href="#Expression.dfs-409"><span class="linenos">409</span></a> <span class="k">return</span>
-</span><span id="Expression.dfs-410"><a href="#Expression.dfs-410"><span class="linenos">410</span></a>
-</span><span id="Expression.dfs-411"><a href="#Expression.dfs-411"><span class="linenos">411</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-412"><a href="#Expression.dfs-412"><span class="linenos">412</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-404"><a href="#Expression.dfs-404"><span class="linenos">404</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-405"><a href="#Expression.dfs-405"><span class="linenos">405</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.dfs-406"><a href="#Expression.dfs-406"><span class="linenos">406</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression.dfs-407"><a href="#Expression.dfs-407"><span class="linenos">407</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="Expression.dfs-408"><a href="#Expression.dfs-408"><span class="linenos">408</span></a>
+</span><span id="Expression.dfs-409"><a href="#Expression.dfs-409"><span class="linenos">409</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.dfs-410"><a href="#Expression.dfs-410"><span class="linenos">410</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.dfs-411"><a href="#Expression.dfs-411"><span class="linenos">411</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.dfs-412"><a href="#Expression.dfs-412"><span class="linenos">412</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-413"><a href="#Expression.dfs-413"><span class="linenos">413</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-414"><a href="#Expression.dfs-414"><span class="linenos">414</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-415"><a href="#Expression.dfs-415"><span class="linenos">415</span></a> <span class="k">return</span>
+</span><span id="Expression.dfs-416"><a href="#Expression.dfs-416"><span class="linenos">416</span></a>
+</span><span id="Expression.dfs-417"><a href="#Expression.dfs-417"><span class="linenos">417</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-418"><a href="#Expression.dfs-418"><span class="linenos">418</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>
@@ -9763,25 +10264,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-414"><a href="#Expression.bfs-414"><span class="linenos">414</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-415"><a href="#Expression.bfs-415"><span class="linenos">415</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.bfs-416"><a href="#Expression.bfs-416"><span class="linenos">416</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression.bfs-417"><a href="#Expression.bfs-417"><span class="linenos">417</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="Expression.bfs-418"><a href="#Expression.bfs-418"><span class="linenos">418</span></a>
-</span><span id="Expression.bfs-419"><a href="#Expression.bfs-419"><span class="linenos">419</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.bfs-420"><a href="#Expression.bfs-420"><span class="linenos">420</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.bfs-421"><a href="#Expression.bfs-421"><span class="linenos">421</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.bfs-422"><a href="#Expression.bfs-422"><span class="linenos">422</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-423"><a href="#Expression.bfs-423"><span class="linenos">423</span></a>
-</span><span id="Expression.bfs-424"><a href="#Expression.bfs-424"><span class="linenos">424</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="Expression.bfs-425"><a href="#Expression.bfs-425"><span class="linenos">425</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-426"><a href="#Expression.bfs-426"><span class="linenos">426</span></a>
-</span><span id="Expression.bfs-427"><a href="#Expression.bfs-427"><span class="linenos">427</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-428"><a href="#Expression.bfs-428"><span class="linenos">428</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-429"><a href="#Expression.bfs-429"><span class="linenos">429</span></a> <span class="k">continue</span>
-</span><span id="Expression.bfs-430"><a href="#Expression.bfs-430"><span class="linenos">430</span></a>
-</span><span id="Expression.bfs-431"><a href="#Expression.bfs-431"><span class="linenos">431</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-432"><a href="#Expression.bfs-432"><span class="linenos">432</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-420"><a href="#Expression.bfs-420"><span class="linenos">420</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-421"><a href="#Expression.bfs-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.bfs-422"><a href="#Expression.bfs-422"><span class="linenos">422</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression.bfs-423"><a href="#Expression.bfs-423"><span class="linenos">423</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="Expression.bfs-424"><a href="#Expression.bfs-424"><span class="linenos">424</span></a>
+</span><span id="Expression.bfs-425"><a href="#Expression.bfs-425"><span class="linenos">425</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.bfs-426"><a href="#Expression.bfs-426"><span class="linenos">426</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.bfs-427"><a href="#Expression.bfs-427"><span class="linenos">427</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.bfs-428"><a href="#Expression.bfs-428"><span class="linenos">428</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-429"><a href="#Expression.bfs-429"><span class="linenos">429</span></a>
+</span><span id="Expression.bfs-430"><a href="#Expression.bfs-430"><span class="linenos">430</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="Expression.bfs-431"><a href="#Expression.bfs-431"><span class="linenos">431</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-432"><a href="#Expression.bfs-432"><span class="linenos">432</span></a>
+</span><span id="Expression.bfs-433"><a href="#Expression.bfs-433"><span class="linenos">433</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-434"><a href="#Expression.bfs-434"><span class="linenos">434</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-435"><a href="#Expression.bfs-435"><span class="linenos">435</span></a> <span class="k">continue</span>
+</span><span id="Expression.bfs-436"><a href="#Expression.bfs-436"><span class="linenos">436</span></a>
+</span><span id="Expression.bfs-437"><a href="#Expression.bfs-437"><span class="linenos">437</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-438"><a href="#Expression.bfs-438"><span class="linenos">438</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>
@@ -9808,14 +10309,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-434"><a href="#Expression.unnest-434"><span class="linenos">434</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-435"><a href="#Expression.unnest-435"><span class="linenos">435</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unnest-436"><a href="#Expression.unnest-436"><span class="linenos">436</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="Expression.unnest-437"><a href="#Expression.unnest-437"><span class="linenos">437</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unnest-438"><a href="#Expression.unnest-438"><span class="linenos">438</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression.unnest-439"><a href="#Expression.unnest-439"><span class="linenos">439</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-440"><a href="#Expression.unnest-440"><span class="linenos">440</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-441"><a href="#Expression.unnest-441"><span class="linenos">441</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest-440"><a href="#Expression.unnest-440"><span class="linenos">440</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-441"><a href="#Expression.unnest-441"><span class="linenos">441</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unnest-442"><a href="#Expression.unnest-442"><span class="linenos">442</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="Expression.unnest-443"><a href="#Expression.unnest-443"><span class="linenos">443</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unnest-444"><a href="#Expression.unnest-444"><span class="linenos">444</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression.unnest-445"><a href="#Expression.unnest-445"><span class="linenos">445</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-446"><a href="#Expression.unnest-446"><span class="linenos">446</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-447"><a href="#Expression.unnest-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -9835,13 +10336,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-443"><a href="#Expression.unalias-443"><span class="linenos">443</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-444"><a href="#Expression.unalias-444"><span class="linenos">444</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unalias-445"><a href="#Expression.unalias-445"><span class="linenos">445</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="Expression.unalias-446"><a href="#Expression.unalias-446"><span class="linenos">446</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unalias-447"><a href="#Expression.unalias-447"><span class="linenos">447</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-448"><a href="#Expression.unalias-448"><span class="linenos">448</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-449"><a href="#Expression.unalias-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unalias-449"><a href="#Expression.unalias-449"><span class="linenos">449</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-450"><a href="#Expression.unalias-450"><span class="linenos">450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unalias-451"><a href="#Expression.unalias-451"><span class="linenos">451</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="Expression.unalias-452"><a href="#Expression.unalias-452"><span class="linenos">452</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unalias-453"><a href="#Expression.unalias-453"><span class="linenos">453</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-454"><a href="#Expression.unalias-454"><span class="linenos">454</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-455"><a href="#Expression.unalias-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -9861,11 +10362,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-451"><a href="#Expression.unnest_operands-451"><span class="linenos">451</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-452"><a href="#Expression.unnest_operands-452"><span class="linenos">452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unnest_operands-453"><a href="#Expression.unnest_operands-453"><span class="linenos">453</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="Expression.unnest_operands-454"><a href="#Expression.unnest_operands-454"><span class="linenos">454</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unnest_operands-455"><a href="#Expression.unnest_operands-455"><span class="linenos">455</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-457"><a href="#Expression.unnest_operands-457"><span class="linenos">457</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-458"><a href="#Expression.unnest_operands-458"><span class="linenos">458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unnest_operands-459"><a href="#Expression.unnest_operands-459"><span class="linenos">459</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="Expression.unnest_operands-460"><a href="#Expression.unnest_operands-460"><span class="linenos">460</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unnest_operands-461"><a href="#Expression.unnest_operands-461"><span class="linenos">461</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>
@@ -9885,15 +10386,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-457"><a href="#Expression.flatten-457"><span class="linenos">457</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-458"><a href="#Expression.flatten-458"><span class="linenos">458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.flatten-459"><a href="#Expression.flatten-459"><span class="linenos">459</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
-</span><span id="Expression.flatten-460"><a href="#Expression.flatten-460"><span class="linenos">460</span></a>
-</span><span id="Expression.flatten-461"><a href="#Expression.flatten-461"><span class="linenos">461</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="Expression.flatten-462"><a href="#Expression.flatten-462"><span class="linenos">462</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.flatten-463"><a href="#Expression.flatten-463"><span class="linenos">463</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-464"><a href="#Expression.flatten-464"><span class="linenos">464</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-465"><a href="#Expression.flatten-465"><span class="linenos">465</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.flatten-463"><a href="#Expression.flatten-463"><span class="linenos">463</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-464"><a href="#Expression.flatten-464"><span class="linenos">464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.flatten-465"><a href="#Expression.flatten-465"><span class="linenos">465</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
+</span><span id="Expression.flatten-466"><a href="#Expression.flatten-466"><span class="linenos">466</span></a>
+</span><span id="Expression.flatten-467"><a href="#Expression.flatten-467"><span class="linenos">467</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="Expression.flatten-468"><a href="#Expression.flatten-468"><span class="linenos">468</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.flatten-469"><a href="#Expression.flatten-469"><span class="linenos">469</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-470"><a href="#Expression.flatten-470"><span class="linenos">470</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-471"><a href="#Expression.flatten-471"><span class="linenos">471</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span></pre></div>
@@ -9915,20 +10416,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-473"><a href="#Expression.sql-473"><span class="linenos">473</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-474"><a href="#Expression.sql-474"><span class="linenos">474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.sql-475"><a href="#Expression.sql-475"><span class="linenos">475</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
-</span><span id="Expression.sql-476"><a href="#Expression.sql-476"><span class="linenos">476</span></a>
-</span><span id="Expression.sql-477"><a href="#Expression.sql-477"><span class="linenos">477</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.sql-478"><a href="#Expression.sql-478"><span class="linenos">478</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-479"><a href="#Expression.sql-479"><span class="linenos">479</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="Expression.sql-480"><a href="#Expression.sql-480"><span class="linenos">480</span></a>
-</span><span id="Expression.sql-481"><a href="#Expression.sql-481"><span class="linenos">481</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.sql-482"><a href="#Expression.sql-482"><span class="linenos">482</span></a><span class="sd"> The SQL string.</span>
-</span><span id="Expression.sql-483"><a href="#Expression.sql-483"><span class="linenos">483</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.sql-484"><a href="#Expression.sql-484"><span class="linenos">484</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-485"><a href="#Expression.sql-485"><span class="linenos">485</span></a>
-</span><span id="Expression.sql-486"><a href="#Expression.sql-486"><span class="linenos">486</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-479"><a href="#Expression.sql-479"><span class="linenos">479</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-480"><a href="#Expression.sql-480"><span class="linenos">480</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.sql-481"><a href="#Expression.sql-481"><span class="linenos">481</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="Expression.sql-482"><a href="#Expression.sql-482"><span class="linenos">482</span></a>
+</span><span id="Expression.sql-483"><a href="#Expression.sql-483"><span class="linenos">483</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.sql-484"><a href="#Expression.sql-484"><span class="linenos">484</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-485"><a href="#Expression.sql-485"><span class="linenos">485</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
+</span><span id="Expression.sql-486"><a href="#Expression.sql-486"><span class="linenos">486</span></a>
+</span><span id="Expression.sql-487"><a href="#Expression.sql-487"><span class="linenos">487</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.sql-488"><a href="#Expression.sql-488"><span class="linenos">488</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression.sql-489"><a href="#Expression.sql-489"><span class="linenos">489</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.sql-490"><a href="#Expression.sql-490"><span class="linenos">490</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-491"><a href="#Expression.sql-491"><span class="linenos">491</span></a>
+</span><span id="Expression.sql-492"><a href="#Expression.sql-492"><span class="linenos">492</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>
@@ -9961,32 +10462,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-512"><a href="#Expression.transform-512"><span class="linenos">512</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-513"><a href="#Expression.transform-513"><span class="linenos">513</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.transform-514"><a href="#Expression.transform-514"><span class="linenos">514</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="Expression.transform-515"><a href="#Expression.transform-515"><span class="linenos">515</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="Expression.transform-516"><a href="#Expression.transform-516"><span class="linenos">516</span></a>
-</span><span id="Expression.transform-517"><a href="#Expression.transform-517"><span class="linenos">517</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.transform-518"><a href="#Expression.transform-518"><span class="linenos">518</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-519"><a href="#Expression.transform-519"><span class="linenos">519</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="Expression.transform-520"><a href="#Expression.transform-520"><span class="linenos">520</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="Expression.transform-521"><a href="#Expression.transform-521"><span class="linenos">521</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-522"><a href="#Expression.transform-522"><span class="linenos">522</span></a><span class="sd"> modified in place.</span>
-</span><span id="Expression.transform-523"><a href="#Expression.transform-523"><span class="linenos">523</span></a>
-</span><span id="Expression.transform-524"><a href="#Expression.transform-524"><span class="linenos">524</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.transform-525"><a href="#Expression.transform-525"><span class="linenos">525</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="Expression.transform-526"><a href="#Expression.transform-526"><span class="linenos">526</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.transform-527"><a href="#Expression.transform-527"><span class="linenos">527</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-528"><a href="#Expression.transform-528"><span class="linenos">528</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.transform-518"><a href="#Expression.transform-518"><span class="linenos">518</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-519"><a href="#Expression.transform-519"><span class="linenos">519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.transform-520"><a href="#Expression.transform-520"><span class="linenos">520</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="Expression.transform-521"><a href="#Expression.transform-521"><span class="linenos">521</span></a><span class="sd"> and applies the given transformation function to each node.</span>
+</span><span id="Expression.transform-522"><a href="#Expression.transform-522"><span class="linenos">522</span></a>
+</span><span id="Expression.transform-523"><a href="#Expression.transform-523"><span class="linenos">523</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.transform-524"><a href="#Expression.transform-524"><span class="linenos">524</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-525"><a href="#Expression.transform-525"><span class="linenos">525</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="Expression.transform-526"><a href="#Expression.transform-526"><span class="linenos">526</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="Expression.transform-527"><a href="#Expression.transform-527"><span class="linenos">527</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-528"><a href="#Expression.transform-528"><span class="linenos">528</span></a><span class="sd"> modified in place.</span>
</span><span id="Expression.transform-529"><a href="#Expression.transform-529"><span class="linenos">529</span></a>
-</span><span id="Expression.transform-530"><a href="#Expression.transform-530"><span class="linenos">530</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-531"><a href="#Expression.transform-531"><span class="linenos">531</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression.transform-532"><a href="#Expression.transform-532"><span class="linenos">532</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-533"><a href="#Expression.transform-533"><span class="linenos">533</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-534"><a href="#Expression.transform-534"><span class="linenos">534</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-530"><a href="#Expression.transform-530"><span class="linenos">530</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.transform-531"><a href="#Expression.transform-531"><span class="linenos">531</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="Expression.transform-532"><a href="#Expression.transform-532"><span class="linenos">532</span></a><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="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-534"><a href="#Expression.transform-534"><span class="linenos">534</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-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="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-537"><a href="#Expression.transform-537"><span class="linenos">537</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-536"><a href="#Expression.transform-536"><span class="linenos">536</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-537"><a href="#Expression.transform-537"><span class="linenos">537</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-538"><a href="#Expression.transform-538"><span class="linenos">538</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-539"><a href="#Expression.transform-539"><span class="linenos">539</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-540"><a href="#Expression.transform-540"><span class="linenos">540</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-541"><a href="#Expression.transform-541"><span class="linenos">541</span></a>
+</span><span id="Expression.transform-542"><a href="#Expression.transform-542"><span class="linenos">542</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-543"><a href="#Expression.transform-543"><span class="linenos">543</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span></pre></div>
@@ -10023,32 +10524,32 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.replace"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-539"><a href="#Expression.replace-539"><span class="linenos">539</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-540"><a href="#Expression.replace-540"><span class="linenos">540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.replace-541"><a href="#Expression.replace-541"><span class="linenos">541</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="Expression.replace-542"><a href="#Expression.replace-542"><span class="linenos">542</span></a>
-</span><span id="Expression.replace-543"><a href="#Expression.replace-543"><span class="linenos">543</span></a><span class="sd"> For example::</span>
-</span><span id="Expression.replace-544"><a href="#Expression.replace-544"><span class="linenos">544</span></a>
-</span><span id="Expression.replace-545"><a href="#Expression.replace-545"><span class="linenos">545</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="Expression.replace-546"><a href="#Expression.replace-546"><span class="linenos">546</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="Expression.replace-547"><a href="#Expression.replace-547"><span class="linenos">547</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="Expression.replace-548"><a href="#Expression.replace-548"><span class="linenos">548</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="Expression.replace-549"><a href="#Expression.replace-549"><span class="linenos">549</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="Expression.replace-550"><a href="#Expression.replace-550"><span class="linenos">550</span></a>
-</span><span id="Expression.replace-551"><a href="#Expression.replace-551"><span class="linenos">551</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.replace-552"><a href="#Expression.replace-552"><span class="linenos">552</span></a><span class="sd"> expression (Expression|None): new node</span>
-</span><span id="Expression.replace-553"><a href="#Expression.replace-553"><span class="linenos">553</span></a>
-</span><span id="Expression.replace-554"><a href="#Expression.replace-554"><span class="linenos">554</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.replace-555"><a href="#Expression.replace-555"><span class="linenos">555</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="Expression.replace-556"><a href="#Expression.replace-556"><span class="linenos">556</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.replace-557"><a href="#Expression.replace-557"><span class="linenos">557</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-558"><a href="#Expression.replace-558"><span class="linenos">558</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression.replace-559"><a href="#Expression.replace-559"><span class="linenos">559</span></a>
-</span><span id="Expression.replace-560"><a href="#Expression.replace-560"><span class="linenos">560</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-561"><a href="#Expression.replace-561"><span class="linenos">561</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-562"><a href="#Expression.replace-562"><span class="linenos">562</span></a>
-</span><span id="Expression.replace-563"><a href="#Expression.replace-563"><span class="linenos">563</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-564"><a href="#Expression.replace-564"><span class="linenos">564</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-553"><a href="#Expression.replace-553"><span class="linenos">553</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-554"><a href="#Expression.replace-554"><span class="linenos">554</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.replace-555"><a href="#Expression.replace-555"><span class="linenos">555</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="Expression.replace-556"><a href="#Expression.replace-556"><span class="linenos">556</span></a>
+</span><span id="Expression.replace-557"><a href="#Expression.replace-557"><span class="linenos">557</span></a><span class="sd"> For example::</span>
+</span><span id="Expression.replace-558"><a href="#Expression.replace-558"><span class="linenos">558</span></a>
+</span><span id="Expression.replace-559"><a href="#Expression.replace-559"><span class="linenos">559</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="Expression.replace-560"><a href="#Expression.replace-560"><span class="linenos">560</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
+</span><span id="Expression.replace-561"><a href="#Expression.replace-561"><span class="linenos">561</span></a><span class="sd"> (COLUMN this: y)</span>
+</span><span id="Expression.replace-562"><a href="#Expression.replace-562"><span class="linenos">562</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="Expression.replace-563"><a href="#Expression.replace-563"><span class="linenos">563</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="Expression.replace-564"><a href="#Expression.replace-564"><span class="linenos">564</span></a>
+</span><span id="Expression.replace-565"><a href="#Expression.replace-565"><span class="linenos">565</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.replace-566"><a href="#Expression.replace-566"><span class="linenos">566</span></a><span class="sd"> expression: new node</span>
+</span><span id="Expression.replace-567"><a href="#Expression.replace-567"><span class="linenos">567</span></a>
+</span><span id="Expression.replace-568"><a href="#Expression.replace-568"><span class="linenos">568</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.replace-569"><a href="#Expression.replace-569"><span class="linenos">569</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="Expression.replace-570"><a href="#Expression.replace-570"><span class="linenos">570</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.replace-571"><a href="#Expression.replace-571"><span class="linenos">571</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-572"><a href="#Expression.replace-572"><span class="linenos">572</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression.replace-573"><a href="#Expression.replace-573"><span class="linenos">573</span></a>
+</span><span id="Expression.replace-574"><a href="#Expression.replace-574"><span class="linenos">574</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-575"><a href="#Expression.replace-575"><span class="linenos">575</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-576"><a href="#Expression.replace-576"><span class="linenos">576</span></a>
+</span><span id="Expression.replace-577"><a href="#Expression.replace-577"><span class="linenos">577</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-578"><a href="#Expression.replace-578"><span class="linenos">578</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -10066,7 +10567,7 @@ modified in place.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (Expression|None):</strong> new node</li>
+<li><strong>expression:</strong> new node</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -10083,21 +10584,21 @@ modified in place.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">pop</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
+ <span class="name">pop</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span><span class="p">:</span> <span class="o">~</span><span class="n">E</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
<label class="view-source-button" for="Expression.pop-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.pop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-566"><a href="#Expression.pop-566"><span class="linenos">566</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><span id="Expression.pop-567"><a href="#Expression.pop-567"><span class="linenos">567</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.pop-568"><a href="#Expression.pop-568"><span class="linenos">568</span></a><span class="sd"> Remove this expression from its AST.</span>
-</span><span id="Expression.pop-569"><a href="#Expression.pop-569"><span class="linenos">569</span></a>
-</span><span id="Expression.pop-570"><a href="#Expression.pop-570"><span class="linenos">570</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.pop-571"><a href="#Expression.pop-571"><span class="linenos">571</span></a><span class="sd"> The popped expression.</span>
-</span><span id="Expression.pop-572"><a href="#Expression.pop-572"><span class="linenos">572</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.pop-573"><a href="#Expression.pop-573"><span class="linenos">573</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-574"><a href="#Expression.pop-574"><span class="linenos">574</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-580"><a href="#Expression.pop-580"><span class="linenos">580</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-581"><a href="#Expression.pop-581"><span class="linenos">581</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.pop-582"><a href="#Expression.pop-582"><span class="linenos">582</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression.pop-583"><a href="#Expression.pop-583"><span class="linenos">583</span></a>
+</span><span id="Expression.pop-584"><a href="#Expression.pop-584"><span class="linenos">584</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.pop-585"><a href="#Expression.pop-585"><span class="linenos">585</span></a><span class="sd"> The popped expression.</span>
+</span><span id="Expression.pop-586"><a href="#Expression.pop-586"><span class="linenos">586</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.pop-587"><a href="#Expression.pop-587"><span class="linenos">587</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-588"><a href="#Expression.pop-588"><span class="linenos">588</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -10117,28 +10618,28 @@ modified in place.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">assert_is</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">type_</span></span><span class="return-annotation">):</span></span>
+ <span class="name">assert_is</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">type_</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
<label class="view-source-button" for="Expression.assert_is-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.assert_is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-576"><a href="#Expression.assert_is-576"><span class="linenos">576</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><span id="Expression.assert_is-577"><a href="#Expression.assert_is-577"><span class="linenos">577</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.assert_is-578"><a href="#Expression.assert_is-578"><span class="linenos">578</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="Expression.assert_is-579"><a href="#Expression.assert_is-579"><span class="linenos">579</span></a>
-</span><span id="Expression.assert_is-580"><a href="#Expression.assert_is-580"><span class="linenos">580</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-581"><a href="#Expression.assert_is-581"><span class="linenos">581</span></a><span class="sd"> Otherwise, this returns this expression.</span>
-</span><span id="Expression.assert_is-582"><a href="#Expression.assert_is-582"><span class="linenos">582</span></a>
-</span><span id="Expression.assert_is-583"><a href="#Expression.assert_is-583"><span class="linenos">583</span></a><span class="sd"> Examples:</span>
-</span><span id="Expression.assert_is-584"><a href="#Expression.assert_is-584"><span class="linenos">584</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="Expression.assert_is-585"><a href="#Expression.assert_is-585"><span class="linenos">585</span></a>
-</span><span id="Expression.assert_is-586"><a href="#Expression.assert_is-586"><span class="linenos">586</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Expression.assert_is-587"><a href="#Expression.assert_is-587"><span class="linenos">587</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-588"><a href="#Expression.assert_is-588"><span class="linenos">588</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="Expression.assert_is-589"><a href="#Expression.assert_is-589"><span class="linenos">589</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.assert_is-590"><a href="#Expression.assert_is-590"><span class="linenos">590</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-591"><a href="#Expression.assert_is-591"><span class="linenos">591</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-590"><a href="#Expression.assert_is-590"><span class="linenos">590</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-591"><a href="#Expression.assert_is-591"><span class="linenos">591</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.assert_is-592"><a href="#Expression.assert_is-592"><span class="linenos">592</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="Expression.assert_is-593"><a href="#Expression.assert_is-593"><span class="linenos">593</span></a>
+</span><span id="Expression.assert_is-594"><a href="#Expression.assert_is-594"><span class="linenos">594</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-595"><a href="#Expression.assert_is-595"><span class="linenos">595</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression.assert_is-596"><a href="#Expression.assert_is-596"><span class="linenos">596</span></a>
+</span><span id="Expression.assert_is-597"><a href="#Expression.assert_is-597"><span class="linenos">597</span></a><span class="sd"> Examples:</span>
+</span><span id="Expression.assert_is-598"><a href="#Expression.assert_is-598"><span class="linenos">598</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
+</span><span id="Expression.assert_is-599"><a href="#Expression.assert_is-599"><span class="linenos">599</span></a>
+</span><span id="Expression.assert_is-600"><a href="#Expression.assert_is-600"><span class="linenos">600</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Expression.assert_is-601"><a href="#Expression.assert_is-601"><span class="linenos">601</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-602"><a href="#Expression.assert_is-602"><span class="linenos">602</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="Expression.assert_is-603"><a href="#Expression.assert_is-603"><span class="linenos">603</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.assert_is-604"><a href="#Expression.assert_is-604"><span class="linenos">604</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-605"><a href="#Expression.assert_is-605"><span class="linenos">605</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -10174,39 +10675,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-593"><a href="#Expression.error_messages-593"><span class="linenos">593</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-594"><a href="#Expression.error_messages-594"><span class="linenos">594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.error_messages-595"><a href="#Expression.error_messages-595"><span class="linenos">595</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-596"><a href="#Expression.error_messages-596"><span class="linenos">596</span></a>
-</span><span id="Expression.error_messages-597"><a href="#Expression.error_messages-597"><span class="linenos">597</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.error_messages-598"><a href="#Expression.error_messages-598"><span class="linenos">598</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-599"><a href="#Expression.error_messages-599"><span class="linenos">599</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-600"><a href="#Expression.error_messages-600"><span class="linenos">600</span></a>
-</span><span id="Expression.error_messages-601"><a href="#Expression.error_messages-601"><span class="linenos">601</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.error_messages-602"><a href="#Expression.error_messages-602"><span class="linenos">602</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="Expression.error_messages-603"><a href="#Expression.error_messages-603"><span class="linenos">603</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.error_messages-604"><a href="#Expression.error_messages-604"><span class="linenos">604</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-605"><a href="#Expression.error_messages-605"><span class="linenos">605</span></a>
-</span><span id="Expression.error_messages-606"><a href="#Expression.error_messages-606"><span class="linenos">606</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-607"><a href="#Expression.error_messages-607"><span class="linenos">607</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-608"><a href="#Expression.error_messages-608"><span class="linenos">608</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-609"><a href="#Expression.error_messages-609"><span class="linenos">609</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-610"><a href="#Expression.error_messages-610"><span class="linenos">610</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-611"><a href="#Expression.error_messages-611"><span class="linenos">611</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-612"><a href="#Expression.error_messages-612"><span class="linenos">612</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-613"><a href="#Expression.error_messages-613"><span class="linenos">613</span></a>
-</span><span id="Expression.error_messages-614"><a href="#Expression.error_messages-614"><span class="linenos">614</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="Expression.error_messages-615"><a href="#Expression.error_messages-615"><span class="linenos">615</span></a> <span class="n">args</span>
-</span><span id="Expression.error_messages-616"><a href="#Expression.error_messages-616"><span class="linenos">616</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-617"><a href="#Expression.error_messages-617"><span class="linenos">617</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-618"><a href="#Expression.error_messages-618"><span class="linenos">618</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-619"><a href="#Expression.error_messages-619"><span class="linenos">619</span></a> <span class="p">):</span>
-</span><span id="Expression.error_messages-620"><a href="#Expression.error_messages-620"><span class="linenos">620</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-621"><a href="#Expression.error_messages-621"><span class="linenos">621</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-622"><a href="#Expression.error_messages-622"><span class="linenos">622</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-623"><a href="#Expression.error_messages-623"><span class="linenos">623</span></a> <span class="p">)</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="k">return</span> <span class="n">errors</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-607"><a href="#Expression.error_messages-607"><span class="linenos">607</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-608"><a href="#Expression.error_messages-608"><span class="linenos">608</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.error_messages-609"><a href="#Expression.error_messages-609"><span class="linenos">609</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-610"><a href="#Expression.error_messages-610"><span class="linenos">610</span></a>
+</span><span id="Expression.error_messages-611"><a href="#Expression.error_messages-611"><span class="linenos">611</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.error_messages-612"><a href="#Expression.error_messages-612"><span class="linenos">612</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-613"><a href="#Expression.error_messages-613"><span class="linenos">613</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-614"><a href="#Expression.error_messages-614"><span class="linenos">614</span></a>
+</span><span id="Expression.error_messages-615"><a href="#Expression.error_messages-615"><span class="linenos">615</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.error_messages-616"><a href="#Expression.error_messages-616"><span class="linenos">616</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="Expression.error_messages-617"><a href="#Expression.error_messages-617"><span class="linenos">617</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.error_messages-618"><a href="#Expression.error_messages-618"><span class="linenos">618</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-619"><a href="#Expression.error_messages-619"><span class="linenos">619</span></a>
+</span><span id="Expression.error_messages-620"><a href="#Expression.error_messages-620"><span class="linenos">620</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-621"><a href="#Expression.error_messages-621"><span class="linenos">621</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-622"><a href="#Expression.error_messages-622"><span class="linenos">622</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-623"><a href="#Expression.error_messages-623"><span class="linenos">623</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-624"><a href="#Expression.error_messages-624"><span class="linenos">624</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-625"><a href="#Expression.error_messages-625"><span class="linenos">625</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-626"><a href="#Expression.error_messages-626"><span class="linenos">626</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-627"><a href="#Expression.error_messages-627"><span class="linenos">627</span></a>
+</span><span id="Expression.error_messages-628"><a href="#Expression.error_messages-628"><span class="linenos">628</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="Expression.error_messages-629"><a href="#Expression.error_messages-629"><span class="linenos">629</span></a> <span class="n">args</span>
+</span><span id="Expression.error_messages-630"><a href="#Expression.error_messages-630"><span class="linenos">630</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-631"><a href="#Expression.error_messages-631"><span class="linenos">631</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-632"><a href="#Expression.error_messages-632"><span class="linenos">632</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-633"><a href="#Expression.error_messages-633"><span class="linenos">633</span></a> <span class="p">):</span>
+</span><span id="Expression.error_messages-634"><a href="#Expression.error_messages-634"><span class="linenos">634</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-635"><a href="#Expression.error_messages-635"><span class="linenos">635</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-636"><a href="#Expression.error_messages-636"><span class="linenos">636</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-637"><a href="#Expression.error_messages-637"><span class="linenos">637</span></a> <span class="p">)</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="k">return</span> <span class="n">errors</span>
</span></pre></div>
@@ -10239,13 +10740,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-627"><a href="#Expression.dump-627"><span class="linenos">627</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-628"><a href="#Expression.dump-628"><span class="linenos">628</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.dump-629"><a href="#Expression.dump-629"><span class="linenos">629</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="Expression.dump-630"><a href="#Expression.dump-630"><span class="linenos">630</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.dump-631"><a href="#Expression.dump-631"><span class="linenos">631</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-632"><a href="#Expression.dump-632"><span class="linenos">632</span></a>
-</span><span id="Expression.dump-633"><a href="#Expression.dump-633"><span class="linenos">633</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-641"><a href="#Expression.dump-641"><span class="linenos">641</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-642"><a href="#Expression.dump-642"><span class="linenos">642</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.dump-643"><a href="#Expression.dump-643"><span class="linenos">643</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="Expression.dump-644"><a href="#Expression.dump-644"><span class="linenos">644</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.dump-645"><a href="#Expression.dump-645"><span class="linenos">645</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-646"><a href="#Expression.dump-646"><span class="linenos">646</span></a>
+</span><span id="Expression.dump-647"><a href="#Expression.dump-647"><span class="linenos">647</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>
@@ -10266,14 +10767,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-635"><a href="#Expression.load-635"><span class="linenos">635</span></a> <span class="nd">@classmethod</span>
-</span><span id="Expression.load-636"><a href="#Expression.load-636"><span class="linenos">636</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-637"><a href="#Expression.load-637"><span class="linenos">637</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.load-638"><a href="#Expression.load-638"><span class="linenos">638</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="Expression.load-639"><a href="#Expression.load-639"><span class="linenos">639</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.load-640"><a href="#Expression.load-640"><span class="linenos">640</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-641"><a href="#Expression.load-641"><span class="linenos">641</span></a>
-</span><span id="Expression.load-642"><a href="#Expression.load-642"><span class="linenos">642</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-649"><a href="#Expression.load-649"><span class="linenos">649</span></a> <span class="nd">@classmethod</span>
+</span><span id="Expression.load-650"><a href="#Expression.load-650"><span class="linenos">650</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-651"><a href="#Expression.load-651"><span class="linenos">651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.load-652"><a href="#Expression.load-652"><span class="linenos">652</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="Expression.load-653"><a href="#Expression.load-653"><span class="linenos">653</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.load-654"><a href="#Expression.load-654"><span class="linenos">654</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-655"><a href="#Expression.load-655"><span class="linenos">655</span></a>
+</span><span id="Expression.load-656"><a href="#Expression.load-656"><span class="linenos">656</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>
@@ -10294,180 +10795,205 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-653"><a href="#Condition-653"><span class="linenos">653</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-654"><a href="#Condition-654"><span class="linenos">654</span></a> <span class="k">def</span> <span class="nf">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="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Condition-655"><a href="#Condition-655"><span class="linenos">655</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition-656"><a href="#Condition-656"><span class="linenos">656</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="Condition-657"><a href="#Condition-657"><span class="linenos">657</span></a>
-</span><span id="Condition-658"><a href="#Condition-658"><span class="linenos">658</span></a><span class="sd"> Example:</span>
-</span><span id="Condition-659"><a href="#Condition-659"><span class="linenos">659</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition-660"><a href="#Condition-660"><span class="linenos">660</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="Condition-661"><a href="#Condition-661"><span class="linenos">661</span></a>
-</span><span id="Condition-662"><a href="#Condition-662"><span class="linenos">662</span></a><span class="sd"> Args:</span>
-</span><span id="Condition-663"><a href="#Condition-663"><span class="linenos">663</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Condition-664"><a href="#Condition-664"><span class="linenos">664</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition-665"><a href="#Condition-665"><span class="linenos">665</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Condition-666"><a href="#Condition-666"><span class="linenos">666</span></a><span class="sd"> copy (bool): whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition-667"><a href="#Condition-667"><span class="linenos">667</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Condition-668"><a href="#Condition-668"><span class="linenos">668</span></a>
-</span><span id="Condition-669"><a href="#Condition-669"><span class="linenos">669</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition-670"><a href="#Condition-670"><span class="linenos">670</span></a><span class="sd"> And: the new condition.</span>
-</span><span id="Condition-671"><a href="#Condition-671"><span class="linenos">671</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition-672"><a href="#Condition-672"><span class="linenos">672</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="Condition-673"><a href="#Condition-673"><span class="linenos">673</span></a>
-</span><span id="Condition-674"><a href="#Condition-674"><span class="linenos">674</span></a> <span class="k">def</span> <span class="nf">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="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-667"><a href="#Condition-667"><span class="linenos">667</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-668"><a href="#Condition-668"><span class="linenos">668</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="Condition-669"><a href="#Condition-669"><span class="linenos">669</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-670"><a href="#Condition-670"><span class="linenos">670</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="Condition-671"><a href="#Condition-671"><span class="linenos">671</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-672"><a href="#Condition-672"><span class="linenos">672</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-673"><a href="#Condition-673"><span class="linenos">673</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-674"><a href="#Condition-674"><span class="linenos">674</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Condition-675"><a href="#Condition-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="Condition-677"><a href="#Condition-677"><span class="linenos">677</span></a>
</span><span id="Condition-678"><a href="#Condition-678"><span class="linenos">678</span></a><span class="sd"> Example:</span>
-</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="Condition-681"><a href="#Condition-681"><span class="linenos">681</span></a>
</span><span id="Condition-682"><a href="#Condition-682"><span class="linenos">682</span></a><span class="sd"> Args:</span>
-</span><span id="Condition-683"><a href="#Condition-683"><span class="linenos">683</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Condition-683"><a href="#Condition-683"><span class="linenos">683</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Condition-684"><a href="#Condition-684"><span class="linenos">684</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition-685"><a href="#Condition-685"><span class="linenos">685</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Condition-686"><a href="#Condition-686"><span class="linenos">686</span></a><span class="sd"> copy (bool): whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition-687"><a href="#Condition-687"><span class="linenos">687</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Condition-685"><a href="#Condition-685"><span class="linenos">685</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition-686"><a href="#Condition-686"><span class="linenos">686</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition-687"><a href="#Condition-687"><span class="linenos">687</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Condition-688"><a href="#Condition-688"><span class="linenos">688</span></a>
</span><span id="Condition-689"><a href="#Condition-689"><span class="linenos">689</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition-690"><a href="#Condition-690"><span class="linenos">690</span></a><span class="sd"> Or: the new condition.</span>
+</span><span id="Condition-690"><a href="#Condition-690"><span class="linenos">690</span></a><span class="sd"> The new And condition.</span>
</span><span id="Condition-691"><a href="#Condition-691"><span class="linenos">691</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition-692"><a href="#Condition-692"><span class="linenos">692</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="Condition-692"><a href="#Condition-692"><span class="linenos">692</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="Condition-693"><a href="#Condition-693"><span class="linenos">693</span></a>
-</span><span id="Condition-694"><a href="#Condition-694"><span class="linenos">694</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="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="Condition-695"><a href="#Condition-695"><span class="linenos">695</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition-696"><a href="#Condition-696"><span class="linenos">696</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="Condition-697"><a href="#Condition-697"><span class="linenos">697</span></a>
-</span><span id="Condition-698"><a href="#Condition-698"><span class="linenos">698</span></a><span class="sd"> Example:</span>
-</span><span id="Condition-699"><a href="#Condition-699"><span class="linenos">699</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="Condition-700"><a href="#Condition-700"><span class="linenos">700</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="Condition-701"><a href="#Condition-701"><span class="linenos">701</span></a>
-</span><span id="Condition-702"><a href="#Condition-702"><span class="linenos">702</span></a><span class="sd"> Args:</span>
-</span><span id="Condition-703"><a href="#Condition-703"><span class="linenos">703</span></a><span class="sd"> copy (bool): whether or not to copy this object.</span>
-</span><span id="Condition-704"><a href="#Condition-704"><span class="linenos">704</span></a>
-</span><span id="Condition-705"><a href="#Condition-705"><span class="linenos">705</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition-706"><a href="#Condition-706"><span class="linenos">706</span></a><span class="sd"> Not: the new condition.</span>
-</span><span id="Condition-707"><a href="#Condition-707"><span class="linenos">707</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition-708"><a href="#Condition-708"><span class="linenos">708</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="Condition-709"><a href="#Condition-709"><span class="linenos">709</span></a>
-</span><span id="Condition-710"><a href="#Condition-710"><span class="linenos">710</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">ExpOrStr</span><span class="p">,</span> <span class="n">reverse</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="Condition-711"><a href="#Condition-711"><span class="linenos">711</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="Condition-712"><a href="#Condition-712"><span class="linenos">712</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="Condition-713"><a href="#Condition-713"><span class="linenos">713</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="Condition-714"><a href="#Condition-714"><span class="linenos">714</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="Condition-715"><a href="#Condition-715"><span class="linenos">715</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="Condition-716"><a href="#Condition-716"><span class="linenos">716</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
-</span><span id="Condition-717"><a href="#Condition-717"><span class="linenos">717</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="Condition-718"><a href="#Condition-718"><span class="linenos">718</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="Condition-694"><a href="#Condition-694"><span class="linenos">694</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="Condition-695"><a href="#Condition-695"><span class="linenos">695</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-696"><a href="#Condition-696"><span class="linenos">696</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="Condition-697"><a href="#Condition-697"><span class="linenos">697</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-698"><a href="#Condition-698"><span class="linenos">698</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-699"><a href="#Condition-699"><span class="linenos">699</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-700"><a href="#Condition-700"><span class="linenos">700</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Condition-701"><a href="#Condition-701"><span class="linenos">701</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition-702"><a href="#Condition-702"><span class="linenos">702</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="Condition-703"><a href="#Condition-703"><span class="linenos">703</span></a>
+</span><span id="Condition-704"><a href="#Condition-704"><span class="linenos">704</span></a><span class="sd"> Example:</span>
+</span><span id="Condition-705"><a href="#Condition-705"><span class="linenos">705</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition-706"><a href="#Condition-706"><span class="linenos">706</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="Condition-707"><a href="#Condition-707"><span class="linenos">707</span></a>
+</span><span id="Condition-708"><a href="#Condition-708"><span class="linenos">708</span></a><span class="sd"> Args:</span>
+</span><span id="Condition-709"><a href="#Condition-709"><span class="linenos">709</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition-710"><a href="#Condition-710"><span class="linenos">710</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition-711"><a href="#Condition-711"><span class="linenos">711</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition-712"><a href="#Condition-712"><span class="linenos">712</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition-713"><a href="#Condition-713"><span class="linenos">713</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition-714"><a href="#Condition-714"><span class="linenos">714</span></a>
+</span><span id="Condition-715"><a href="#Condition-715"><span class="linenos">715</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition-716"><a href="#Condition-716"><span class="linenos">716</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="Condition-717"><a href="#Condition-717"><span class="linenos">717</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition-718"><a href="#Condition-718"><span class="linenos">718</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="Condition-719"><a href="#Condition-719"><span class="linenos">719</span></a>
-</span><span id="Condition-720"><a href="#Condition-720"><span class="linenos">720</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><span id="Condition-721"><a href="#Condition-721"><span class="linenos">721</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
-</span><span id="Condition-722"><a href="#Condition-722"><span class="linenos">722</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="Condition-723"><a href="#Condition-723"><span class="linenos">723</span></a> <span class="p">)</span>
-</span><span id="Condition-724"><a href="#Condition-724"><span class="linenos">724</span></a>
-</span><span id="Condition-725"><a href="#Condition-725"><span class="linenos">725</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Condition-726"><a href="#Condition-726"><span class="linenos">726</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Condition-727"><a href="#Condition-727"><span class="linenos">727</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Condition-728"><a href="#Condition-728"><span class="linenos">728</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Condition-729"><a href="#Condition-729"><span class="linenos">729</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="Condition-730"><a href="#Condition-730"><span class="linenos">730</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="Condition-731"><a href="#Condition-731"><span class="linenos">731</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="Condition-732"><a href="#Condition-732"><span class="linenos">732</span></a> <span class="p">)</span>
-</span><span id="Condition-733"><a href="#Condition-733"><span class="linenos">733</span></a>
-</span><span id="Condition-734"><a href="#Condition-734"><span class="linenos">734</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="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="Condition-735"><a href="#Condition-735"><span class="linenos">735</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="Condition-736"><a href="#Condition-736"><span class="linenos">736</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="Condition-737"><a href="#Condition-737"><span class="linenos">737</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="Condition-738"><a href="#Condition-738"><span class="linenos">738</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="Condition-739"><a href="#Condition-739"><span class="linenos">739</span></a> <span class="p">)</span>
-</span><span id="Condition-740"><a href="#Condition-740"><span class="linenos">740</span></a>
-</span><span id="Condition-741"><a href="#Condition-741"><span class="linenos">741</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="Condition-742"><a href="#Condition-742"><span class="linenos">742</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="Condition-743"><a href="#Condition-743"><span class="linenos">743</span></a>
-</span><span id="Condition-744"><a href="#Condition-744"><span class="linenos">744</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="Condition-745"><a href="#Condition-745"><span class="linenos">745</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="Condition-746"><a href="#Condition-746"><span class="linenos">746</span></a>
-</span><span id="Condition-747"><a href="#Condition-747"><span class="linenos">747</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="Condition-748"><a href="#Condition-748"><span class="linenos">748</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="Condition-749"><a href="#Condition-749"><span class="linenos">749</span></a>
-</span><span id="Condition-750"><a href="#Condition-750"><span class="linenos">750</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="Condition-751"><a href="#Condition-751"><span class="linenos">751</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="Condition-752"><a href="#Condition-752"><span class="linenos">752</span></a>
-</span><span id="Condition-753"><a href="#Condition-753"><span class="linenos">753</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="Condition-754"><a href="#Condition-754"><span class="linenos">754</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="Condition-720"><a href="#Condition-720"><span class="linenos">720</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="Condition-721"><a href="#Condition-721"><span class="linenos">721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition-722"><a href="#Condition-722"><span class="linenos">722</span></a><span class="sd"> Wrap this condition with NOT.</span>
+</span><span id="Condition-723"><a href="#Condition-723"><span class="linenos">723</span></a>
+</span><span id="Condition-724"><a href="#Condition-724"><span class="linenos">724</span></a><span class="sd"> Example:</span>
+</span><span id="Condition-725"><a href="#Condition-725"><span class="linenos">725</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="Condition-726"><a href="#Condition-726"><span class="linenos">726</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="Condition-727"><a href="#Condition-727"><span class="linenos">727</span></a>
+</span><span id="Condition-728"><a href="#Condition-728"><span class="linenos">728</span></a><span class="sd"> Args:</span>
+</span><span id="Condition-729"><a href="#Condition-729"><span class="linenos">729</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Condition-730"><a href="#Condition-730"><span class="linenos">730</span></a>
+</span><span id="Condition-731"><a href="#Condition-731"><span class="linenos">731</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition-732"><a href="#Condition-732"><span class="linenos">732</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="Condition-733"><a href="#Condition-733"><span class="linenos">733</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition-734"><a href="#Condition-734"><span class="linenos">734</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="Condition-735"><a href="#Condition-735"><span class="linenos">735</span></a>
+</span><span id="Condition-736"><a href="#Condition-736"><span class="linenos">736</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="Condition-737"><a href="#Condition-737"><span class="linenos">737</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-738"><a href="#Condition-738"><span class="linenos">738</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="Condition-739"><a href="#Condition-739"><span class="linenos">739</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="Condition-740"><a href="#Condition-740"><span class="linenos">740</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-741"><a href="#Condition-741"><span class="linenos">741</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-742"><a href="#Condition-742"><span class="linenos">742</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-743"><a href="#Condition-743"><span class="linenos">743</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="Condition-744"><a href="#Condition-744"><span class="linenos">744</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="Condition-745"><a href="#Condition-745"><span class="linenos">745</span></a>
+</span><span id="Condition-746"><a href="#Condition-746"><span class="linenos">746</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="Condition-747"><a href="#Condition-747"><span class="linenos">747</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="Condition-748"><a href="#Condition-748"><span class="linenos">748</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="Condition-749"><a href="#Condition-749"><span class="linenos">749</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="Condition-750"><a href="#Condition-750"><span class="linenos">750</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="Condition-751"><a href="#Condition-751"><span class="linenos">751</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="Condition-752"><a href="#Condition-752"><span class="linenos">752</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
+</span><span id="Condition-753"><a href="#Condition-753"><span class="linenos">753</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="Condition-754"><a href="#Condition-754"><span class="linenos">754</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="Condition-755"><a href="#Condition-755"><span class="linenos">755</span></a>
-</span><span id="Condition-756"><a href="#Condition-756"><span class="linenos">756</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
-</span><span id="Condition-757"><a href="#Condition-757"><span class="linenos">757</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="Condition-758"><a href="#Condition-758"><span class="linenos">758</span></a>
-</span><span id="Condition-759"><a href="#Condition-759"><span class="linenos">759</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
-</span><span id="Condition-760"><a href="#Condition-760"><span class="linenos">760</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="Condition-761"><a href="#Condition-761"><span class="linenos">761</span></a>
-</span><span id="Condition-762"><a href="#Condition-762"><span class="linenos">762</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
-</span><span id="Condition-763"><a href="#Condition-763"><span class="linenos">763</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="Condition-764"><a href="#Condition-764"><span class="linenos">764</span></a>
-</span><span id="Condition-765"><a href="#Condition-765"><span class="linenos">765</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
-</span><span id="Condition-766"><a href="#Condition-766"><span class="linenos">766</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="Condition-767"><a href="#Condition-767"><span class="linenos">767</span></a>
-</span><span id="Condition-768"><a href="#Condition-768"><span class="linenos">768</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="Condition-769"><a href="#Condition-769"><span class="linenos">769</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="Condition-770"><a href="#Condition-770"><span class="linenos">770</span></a>
-</span><span id="Condition-771"><a href="#Condition-771"><span class="linenos">771</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="Condition-772"><a href="#Condition-772"><span class="linenos">772</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="Condition-773"><a href="#Condition-773"><span class="linenos">773</span></a>
-</span><span id="Condition-774"><a href="#Condition-774"><span class="linenos">774</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="Condition-775"><a href="#Condition-775"><span class="linenos">775</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="Condition-756"><a href="#Condition-756"><span class="linenos">756</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><span id="Condition-757"><a href="#Condition-757"><span class="linenos">757</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
+</span><span id="Condition-758"><a href="#Condition-758"><span class="linenos">758</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="Condition-759"><a href="#Condition-759"><span class="linenos">759</span></a> <span class="p">)</span>
+</span><span id="Condition-760"><a href="#Condition-760"><span class="linenos">760</span></a>
+</span><span id="Condition-761"><a href="#Condition-761"><span class="linenos">761</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Condition-762"><a href="#Condition-762"><span class="linenos">762</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><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-763"><a href="#Condition-763"><span class="linenos">763</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Condition-764"><a href="#Condition-764"><span class="linenos">764</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Condition-765"><a href="#Condition-765"><span class="linenos">765</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="Condition-766"><a href="#Condition-766"><span class="linenos">766</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="Condition-767"><a href="#Condition-767"><span class="linenos">767</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="Condition-768"><a href="#Condition-768"><span class="linenos">768</span></a> <span class="p">)</span>
+</span><span id="Condition-769"><a href="#Condition-769"><span class="linenos">769</span></a>
+</span><span id="Condition-770"><a href="#Condition-770"><span class="linenos">770</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="Condition-771"><a href="#Condition-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="Condition-772"><a href="#Condition-772"><span class="linenos">772</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="Condition-773"><a href="#Condition-773"><span class="linenos">773</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="Condition-774"><a href="#Condition-774"><span class="linenos">774</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="Condition-775"><a href="#Condition-775"><span class="linenos">775</span></a> <span class="p">)</span>
</span><span id="Condition-776"><a href="#Condition-776"><span class="linenos">776</span></a>
-</span><span id="Condition-777"><a href="#Condition-777"><span class="linenos">777</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="Condition-778"><a href="#Condition-778"><span class="linenos">778</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="Condition-777"><a href="#Condition-777"><span class="linenos">777</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="Condition-778"><a href="#Condition-778"><span class="linenos">778</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="Condition-779"><a href="#Condition-779"><span class="linenos">779</span></a>
-</span><span id="Condition-780"><a href="#Condition-780"><span class="linenos">780</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="Condition-781"><a href="#Condition-781"><span class="linenos">781</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="Condition-780"><a href="#Condition-780"><span class="linenos">780</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="Condition-781"><a href="#Condition-781"><span class="linenos">781</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="Condition-782"><a href="#Condition-782"><span class="linenos">782</span></a>
-</span><span id="Condition-783"><a href="#Condition-783"><span class="linenos">783</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="Condition-784"><a href="#Condition-784"><span class="linenos">784</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="Condition-783"><a href="#Condition-783"><span class="linenos">783</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="Condition-784"><a href="#Condition-784"><span class="linenos">784</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="Condition-785"><a href="#Condition-785"><span class="linenos">785</span></a>
-</span><span id="Condition-786"><a href="#Condition-786"><span class="linenos">786</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Condition-787"><a href="#Condition-787"><span class="linenos">787</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="Condition-786"><a href="#Condition-786"><span class="linenos">786</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="Condition-787"><a href="#Condition-787"><span class="linenos">787</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="Condition-788"><a href="#Condition-788"><span class="linenos">788</span></a>
-</span><span id="Condition-789"><a href="#Condition-789"><span class="linenos">789</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Condition-790"><a href="#Condition-790"><span class="linenos">790</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="Condition-789"><a href="#Condition-789"><span class="linenos">789</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="Condition-790"><a href="#Condition-790"><span class="linenos">790</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="Condition-791"><a href="#Condition-791"><span class="linenos">791</span></a>
-</span><span id="Condition-792"><a href="#Condition-792"><span class="linenos">792</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="Condition-793"><a href="#Condition-793"><span class="linenos">793</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="Condition-792"><a href="#Condition-792"><span class="linenos">792</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="Condition-793"><a href="#Condition-793"><span class="linenos">793</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="Condition-794"><a href="#Condition-794"><span class="linenos">794</span></a>
-</span><span id="Condition-795"><a href="#Condition-795"><span class="linenos">795</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="Condition-796"><a href="#Condition-796"><span class="linenos">796</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="Condition-795"><a href="#Condition-795"><span class="linenos">795</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="Condition-796"><a href="#Condition-796"><span class="linenos">796</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="Condition-797"><a href="#Condition-797"><span class="linenos">797</span></a>
-</span><span id="Condition-798"><a href="#Condition-798"><span class="linenos">798</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="Condition-799"><a href="#Condition-799"><span class="linenos">799</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="Condition-798"><a href="#Condition-798"><span class="linenos">798</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="Condition-799"><a href="#Condition-799"><span class="linenos">799</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="Condition-800"><a href="#Condition-800"><span class="linenos">800</span></a>
-</span><span id="Condition-801"><a href="#Condition-801"><span class="linenos">801</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="Condition-802"><a href="#Condition-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">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="Condition-801"><a href="#Condition-801"><span class="linenos">801</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="Condition-802"><a href="#Condition-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">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-803"><a href="#Condition-803"><span class="linenos">803</span></a>
-</span><span id="Condition-804"><a href="#Condition-804"><span class="linenos">804</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="Condition-805"><a href="#Condition-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">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-804"><a href="#Condition-804"><span class="linenos">804</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="Condition-805"><a href="#Condition-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">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-806"><a href="#Condition-806"><span class="linenos">806</span></a>
-</span><span id="Condition-807"><a href="#Condition-807"><span class="linenos">807</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="Condition-808"><a href="#Condition-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">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="Condition-807"><a href="#Condition-807"><span class="linenos">807</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="Condition-808"><a href="#Condition-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">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-809"><a href="#Condition-809"><span class="linenos">809</span></a>
-</span><span id="Condition-810"><a href="#Condition-810"><span class="linenos">810</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="Condition-811"><a href="#Condition-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">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-810"><a href="#Condition-810"><span class="linenos">810</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="Condition-811"><a href="#Condition-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">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="Condition-812"><a href="#Condition-812"><span class="linenos">812</span></a>
-</span><span id="Condition-813"><a href="#Condition-813"><span class="linenos">813</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="Condition-814"><a href="#Condition-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">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="Condition-813"><a href="#Condition-813"><span class="linenos">813</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="Condition-814"><a href="#Condition-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">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-815"><a href="#Condition-815"><span class="linenos">815</span></a>
-</span><span id="Condition-816"><a href="#Condition-816"><span class="linenos">816</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="Condition-817"><a href="#Condition-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">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-816"><a href="#Condition-816"><span class="linenos">816</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="Condition-817"><a href="#Condition-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">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="Condition-818"><a href="#Condition-818"><span class="linenos">818</span></a>
-</span><span id="Condition-819"><a href="#Condition-819"><span class="linenos">819</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="Condition-820"><a href="#Condition-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">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="Condition-819"><a href="#Condition-819"><span class="linenos">819</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="Condition-820"><a href="#Condition-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">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-821"><a href="#Condition-821"><span class="linenos">821</span></a>
-</span><span id="Condition-822"><a href="#Condition-822"><span class="linenos">822</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="Condition-823"><a href="#Condition-823"><span class="linenos">823</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="Condition-822"><a href="#Condition-822"><span class="linenos">822</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="Condition-823"><a href="#Condition-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">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="Condition-824"><a href="#Condition-824"><span class="linenos">824</span></a>
-</span><span id="Condition-825"><a href="#Condition-825"><span class="linenos">825</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="Condition-826"><a href="#Condition-826"><span class="linenos">826</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="Condition-825"><a href="#Condition-825"><span class="linenos">825</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="Condition-826"><a href="#Condition-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">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-827"><a href="#Condition-827"><span class="linenos">827</span></a>
+</span><span id="Condition-828"><a href="#Condition-828"><span class="linenos">828</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="Condition-829"><a href="#Condition-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">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="Condition-830"><a href="#Condition-830"><span class="linenos">830</span></a>
+</span><span id="Condition-831"><a href="#Condition-831"><span class="linenos">831</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="Condition-832"><a href="#Condition-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">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-833"><a href="#Condition-833"><span class="linenos">833</span></a>
+</span><span id="Condition-834"><a href="#Condition-834"><span class="linenos">834</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="Condition-835"><a href="#Condition-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">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="Condition-836"><a href="#Condition-836"><span class="linenos">836</span></a>
+</span><span id="Condition-837"><a href="#Condition-837"><span class="linenos">837</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="Condition-838"><a href="#Condition-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">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-839"><a href="#Condition-839"><span class="linenos">839</span></a>
+</span><span id="Condition-840"><a href="#Condition-840"><span class="linenos">840</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="Condition-841"><a href="#Condition-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">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="Condition-842"><a href="#Condition-842"><span class="linenos">842</span></a>
+</span><span id="Condition-843"><a href="#Condition-843"><span class="linenos">843</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="Condition-844"><a href="#Condition-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">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-845"><a href="#Condition-845"><span class="linenos">845</span></a>
+</span><span id="Condition-846"><a href="#Condition-846"><span class="linenos">846</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="Condition-847"><a href="#Condition-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">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="Condition-848"><a href="#Condition-848"><span class="linenos">848</span></a>
+</span><span id="Condition-849"><a href="#Condition-849"><span class="linenos">849</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="Condition-850"><a href="#Condition-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">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-851"><a href="#Condition-851"><span class="linenos">851</span></a>
+</span><span id="Condition-852"><a href="#Condition-852"><span class="linenos">852</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="Condition-853"><a href="#Condition-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">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="Condition-854"><a href="#Condition-854"><span class="linenos">854</span></a>
+</span><span id="Condition-855"><a href="#Condition-855"><span class="linenos">855</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="Condition-856"><a href="#Condition-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">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-857"><a href="#Condition-857"><span class="linenos">857</span></a>
+</span><span id="Condition-858"><a href="#Condition-858"><span class="linenos">858</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="Condition-859"><a href="#Condition-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">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="Condition-860"><a href="#Condition-860"><span class="linenos">860</span></a>
+</span><span id="Condition-861"><a href="#Condition-861"><span class="linenos">861</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="Condition-862"><a href="#Condition-862"><span class="linenos">862</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="Condition-863"><a href="#Condition-863"><span class="linenos">863</span></a>
+</span><span id="Condition-864"><a href="#Condition-864"><span class="linenos">864</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="Condition-865"><a href="#Condition-865"><span class="linenos">865</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>
@@ -10478,31 +11004,37 @@ to check that the provided arguments don't exceed the function argument limit.</
<div class="attr function">
<span class="def">def</span>
- <span class="name">and_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">and_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="Condition.and_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.and_-654"><a href="#Condition.and_-654"><span class="linenos">654</span></a> <span class="k">def</span> <span class="nf">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="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Condition.and_-655"><a href="#Condition.and_-655"><span class="linenos">655</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition.and_-656"><a href="#Condition.and_-656"><span class="linenos">656</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="Condition.and_-657"><a href="#Condition.and_-657"><span class="linenos">657</span></a>
-</span><span id="Condition.and_-658"><a href="#Condition.and_-658"><span class="linenos">658</span></a><span class="sd"> Example:</span>
-</span><span id="Condition.and_-659"><a href="#Condition.and_-659"><span class="linenos">659</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition.and_-660"><a href="#Condition.and_-660"><span class="linenos">660</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="Condition.and_-661"><a href="#Condition.and_-661"><span class="linenos">661</span></a>
-</span><span id="Condition.and_-662"><a href="#Condition.and_-662"><span class="linenos">662</span></a><span class="sd"> Args:</span>
-</span><span id="Condition.and_-663"><a href="#Condition.and_-663"><span class="linenos">663</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Condition.and_-664"><a href="#Condition.and_-664"><span class="linenos">664</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition.and_-665"><a href="#Condition.and_-665"><span class="linenos">665</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Condition.and_-666"><a href="#Condition.and_-666"><span class="linenos">666</span></a><span class="sd"> copy (bool): whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition.and_-667"><a href="#Condition.and_-667"><span class="linenos">667</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Condition.and_-668"><a href="#Condition.and_-668"><span class="linenos">668</span></a>
-</span><span id="Condition.and_-669"><a href="#Condition.and_-669"><span class="linenos">669</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition.and_-670"><a href="#Condition.and_-670"><span class="linenos">670</span></a><span class="sd"> And: the new condition.</span>
-</span><span id="Condition.and_-671"><a href="#Condition.and_-671"><span class="linenos">671</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition.and_-672"><a href="#Condition.and_-672"><span class="linenos">672</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="Condition.and_-668"><a href="#Condition.and_-668"><span class="linenos">668</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="Condition.and_-669"><a href="#Condition.and_-669"><span class="linenos">669</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.and_-670"><a href="#Condition.and_-670"><span class="linenos">670</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="Condition.and_-671"><a href="#Condition.and_-671"><span class="linenos">671</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.and_-672"><a href="#Condition.and_-672"><span class="linenos">672</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.and_-673"><a href="#Condition.and_-673"><span class="linenos">673</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.and_-674"><a href="#Condition.and_-674"><span class="linenos">674</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Condition.and_-675"><a href="#Condition.and_-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition.and_-676"><a href="#Condition.and_-676"><span class="linenos">676</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
+</span><span id="Condition.and_-677"><a href="#Condition.and_-677"><span class="linenos">677</span></a>
+</span><span id="Condition.and_-678"><a href="#Condition.and_-678"><span class="linenos">678</span></a><span class="sd"> Example:</span>
+</span><span id="Condition.and_-679"><a href="#Condition.and_-679"><span class="linenos">679</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition.and_-680"><a href="#Condition.and_-680"><span class="linenos">680</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
+</span><span id="Condition.and_-681"><a href="#Condition.and_-681"><span class="linenos">681</span></a>
+</span><span id="Condition.and_-682"><a href="#Condition.and_-682"><span class="linenos">682</span></a><span class="sd"> Args:</span>
+</span><span id="Condition.and_-683"><a href="#Condition.and_-683"><span class="linenos">683</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition.and_-684"><a href="#Condition.and_-684"><span class="linenos">684</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition.and_-685"><a href="#Condition.and_-685"><span class="linenos">685</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition.and_-686"><a href="#Condition.and_-686"><span class="linenos">686</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition.and_-687"><a href="#Condition.and_-687"><span class="linenos">687</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition.and_-688"><a href="#Condition.and_-688"><span class="linenos">688</span></a>
+</span><span id="Condition.and_-689"><a href="#Condition.and_-689"><span class="linenos">689</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition.and_-690"><a href="#Condition.and_-690"><span class="linenos">690</span></a><span class="sd"> The new And condition.</span>
+</span><span id="Condition.and_-691"><a href="#Condition.and_-691"><span class="linenos">691</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition.and_-692"><a href="#Condition.and_-692"><span class="linenos">692</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>
@@ -10521,17 +11053,17 @@ to check that the provided arguments don't exceed the function argument limit.</
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> whether or not to copy the involved expressions (only applies to Expressions).</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> whether or not to copy the involved expressions (only applies to Expressions).</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>And: the new condition.</p>
+ <p>The new And condition.</p>
</blockquote>
</div>
@@ -10542,31 +11074,37 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">or_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">or_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="Condition.or_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.or_-674"><a href="#Condition.or_-674"><span class="linenos">674</span></a> <span class="k">def</span> <span class="nf">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="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Condition.or_-675"><a href="#Condition.or_-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition.or_-676"><a href="#Condition.or_-676"><span class="linenos">676</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="Condition.or_-677"><a href="#Condition.or_-677"><span class="linenos">677</span></a>
-</span><span id="Condition.or_-678"><a href="#Condition.or_-678"><span class="linenos">678</span></a><span class="sd"> Example:</span>
-</span><span id="Condition.or_-679"><a href="#Condition.or_-679"><span class="linenos">679</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition.or_-680"><a href="#Condition.or_-680"><span class="linenos">680</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="Condition.or_-681"><a href="#Condition.or_-681"><span class="linenos">681</span></a>
-</span><span id="Condition.or_-682"><a href="#Condition.or_-682"><span class="linenos">682</span></a><span class="sd"> Args:</span>
-</span><span id="Condition.or_-683"><a href="#Condition.or_-683"><span class="linenos">683</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Condition.or_-684"><a href="#Condition.or_-684"><span class="linenos">684</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition.or_-685"><a href="#Condition.or_-685"><span class="linenos">685</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Condition.or_-686"><a href="#Condition.or_-686"><span class="linenos">686</span></a><span class="sd"> copy (bool): whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition.or_-687"><a href="#Condition.or_-687"><span class="linenos">687</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Condition.or_-688"><a href="#Condition.or_-688"><span class="linenos">688</span></a>
-</span><span id="Condition.or_-689"><a href="#Condition.or_-689"><span class="linenos">689</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition.or_-690"><a href="#Condition.or_-690"><span class="linenos">690</span></a><span class="sd"> Or: the new condition.</span>
-</span><span id="Condition.or_-691"><a href="#Condition.or_-691"><span class="linenos">691</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition.or_-692"><a href="#Condition.or_-692"><span class="linenos">692</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="Condition.or_-694"><a href="#Condition.or_-694"><span class="linenos">694</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="Condition.or_-695"><a href="#Condition.or_-695"><span class="linenos">695</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.or_-696"><a href="#Condition.or_-696"><span class="linenos">696</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="Condition.or_-697"><a href="#Condition.or_-697"><span class="linenos">697</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.or_-698"><a href="#Condition.or_-698"><span class="linenos">698</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.or_-699"><a href="#Condition.or_-699"><span class="linenos">699</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.or_-700"><a href="#Condition.or_-700"><span class="linenos">700</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Condition.or_-701"><a href="#Condition.or_-701"><span class="linenos">701</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition.or_-702"><a href="#Condition.or_-702"><span class="linenos">702</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="Condition.or_-703"><a href="#Condition.or_-703"><span class="linenos">703</span></a>
+</span><span id="Condition.or_-704"><a href="#Condition.or_-704"><span class="linenos">704</span></a><span class="sd"> Example:</span>
+</span><span id="Condition.or_-705"><a href="#Condition.or_-705"><span class="linenos">705</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition.or_-706"><a href="#Condition.or_-706"><span class="linenos">706</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="Condition.or_-707"><a href="#Condition.or_-707"><span class="linenos">707</span></a>
+</span><span id="Condition.or_-708"><a href="#Condition.or_-708"><span class="linenos">708</span></a><span class="sd"> Args:</span>
+</span><span id="Condition.or_-709"><a href="#Condition.or_-709"><span class="linenos">709</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition.or_-710"><a href="#Condition.or_-710"><span class="linenos">710</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition.or_-711"><a href="#Condition.or_-711"><span class="linenos">711</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition.or_-712"><a href="#Condition.or_-712"><span class="linenos">712</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition.or_-713"><a href="#Condition.or_-713"><span class="linenos">713</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition.or_-714"><a href="#Condition.or_-714"><span class="linenos">714</span></a>
+</span><span id="Condition.or_-715"><a href="#Condition.or_-715"><span class="linenos">715</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition.or_-716"><a href="#Condition.or_-716"><span class="linenos">716</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="Condition.or_-717"><a href="#Condition.or_-717"><span class="linenos">717</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition.or_-718"><a href="#Condition.or_-718"><span class="linenos">718</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>
@@ -10585,17 +11123,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> whether or not to copy the involved expressions (only applies to Expressions).</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> whether or not to copy the involved expressions (only applies to Expressions).</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Or: the new condition.</p>
+ <p>The new Or condition.</p>
</blockquote>
</div>
@@ -10606,27 +11144,27 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">not_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</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>
+ <span class="name">not_</span><span class="signature pdoc-code condensed">(<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></span>
<label class="view-source-button" for="Condition.not_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.not_-694"><a href="#Condition.not_-694"><span class="linenos">694</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="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="Condition.not_-695"><a href="#Condition.not_-695"><span class="linenos">695</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition.not_-696"><a href="#Condition.not_-696"><span class="linenos">696</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="Condition.not_-697"><a href="#Condition.not_-697"><span class="linenos">697</span></a>
-</span><span id="Condition.not_-698"><a href="#Condition.not_-698"><span class="linenos">698</span></a><span class="sd"> Example:</span>
-</span><span id="Condition.not_-699"><a href="#Condition.not_-699"><span class="linenos">699</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="Condition.not_-700"><a href="#Condition.not_-700"><span class="linenos">700</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="Condition.not_-701"><a href="#Condition.not_-701"><span class="linenos">701</span></a>
-</span><span id="Condition.not_-702"><a href="#Condition.not_-702"><span class="linenos">702</span></a><span class="sd"> Args:</span>
-</span><span id="Condition.not_-703"><a href="#Condition.not_-703"><span class="linenos">703</span></a><span class="sd"> copy (bool): whether or not to copy this object.</span>
-</span><span id="Condition.not_-704"><a href="#Condition.not_-704"><span class="linenos">704</span></a>
-</span><span id="Condition.not_-705"><a href="#Condition.not_-705"><span class="linenos">705</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition.not_-706"><a href="#Condition.not_-706"><span class="linenos">706</span></a><span class="sd"> Not: the new condition.</span>
-</span><span id="Condition.not_-707"><a href="#Condition.not_-707"><span class="linenos">707</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition.not_-708"><a href="#Condition.not_-708"><span class="linenos">708</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="Condition.not_-720"><a href="#Condition.not_-720"><span class="linenos">720</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="Condition.not_-721"><a href="#Condition.not_-721"><span class="linenos">721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition.not_-722"><a href="#Condition.not_-722"><span class="linenos">722</span></a><span class="sd"> Wrap this condition with NOT.</span>
+</span><span id="Condition.not_-723"><a href="#Condition.not_-723"><span class="linenos">723</span></a>
+</span><span id="Condition.not_-724"><a href="#Condition.not_-724"><span class="linenos">724</span></a><span class="sd"> Example:</span>
+</span><span id="Condition.not_-725"><a href="#Condition.not_-725"><span class="linenos">725</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="Condition.not_-726"><a href="#Condition.not_-726"><span class="linenos">726</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="Condition.not_-727"><a href="#Condition.not_-727"><span class="linenos">727</span></a>
+</span><span id="Condition.not_-728"><a href="#Condition.not_-728"><span class="linenos">728</span></a><span class="sd"> Args:</span>
+</span><span id="Condition.not_-729"><a href="#Condition.not_-729"><span class="linenos">729</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Condition.not_-730"><a href="#Condition.not_-730"><span class="linenos">730</span></a>
+</span><span id="Condition.not_-731"><a href="#Condition.not_-731"><span class="linenos">731</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition.not_-732"><a href="#Condition.not_-732"><span class="linenos">732</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="Condition.not_-733"><a href="#Condition.not_-733"><span class="linenos">733</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition.not_-734"><a href="#Condition.not_-734"><span class="linenos">734</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>
@@ -10645,37 +11183,63 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>copy (bool):</strong> whether or not to copy this object.</li>
+<li><strong>copy:</strong> whether or not to copy this object.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Not: the new condition.</p>
+ <p>The new Not instance.</p>
</blockquote>
</div>
</div>
+ <div id="Condition.as_" class="classattr">
+ <input id="Condition.as_-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">as_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></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="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Alias">sqlglot.expressions.Alias</a></span>:</span></span>
+
+ <label class="view-source-button" for="Condition.as_-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Condition.as_"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.as_-736"><a href="#Condition.as_-736"><span class="linenos">736</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="Condition.as_-737"><a href="#Condition.as_-737"><span class="linenos">737</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.as_-738"><a href="#Condition.as_-738"><span class="linenos">738</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="Condition.as_-739"><a href="#Condition.as_-739"><span class="linenos">739</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="Condition.as_-740"><a href="#Condition.as_-740"><span class="linenos">740</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.as_-741"><a href="#Condition.as_-741"><span class="linenos">741</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.as_-742"><a href="#Condition.as_-742"><span class="linenos">742</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.as_-743"><a href="#Condition.as_-743"><span class="linenos">743</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="Condition.as_-744"><a href="#Condition.as_-744"><span class="linenos">744</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>
+
+
+
+
+ </div>
<div id="Condition.isin" class="classattr">
<input id="Condition.isin-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">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">query</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#In">sqlglot.expressions.In</a></span>:</span></span>
+ <span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">query</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#In">sqlglot.expressions.In</a></span>:</span></span>
<label class="view-source-button" for="Condition.isin-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.isin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.isin-725"><a href="#Condition.isin-725"><span class="linenos">725</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Condition.isin-726"><a href="#Condition.isin-726"><span class="linenos">726</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Condition.isin-727"><a href="#Condition.isin-727"><span class="linenos">727</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Condition.isin-728"><a href="#Condition.isin-728"><span class="linenos">728</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Condition.isin-729"><a href="#Condition.isin-729"><span class="linenos">729</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="Condition.isin-730"><a href="#Condition.isin-730"><span class="linenos">730</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="Condition.isin-731"><a href="#Condition.isin-731"><span class="linenos">731</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="Condition.isin-732"><a href="#Condition.isin-732"><span class="linenos">732</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.isin-761"><a href="#Condition.isin-761"><span class="linenos">761</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Condition.isin-762"><a href="#Condition.isin-762"><span class="linenos">762</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><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.isin-763"><a href="#Condition.isin-763"><span class="linenos">763</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Condition.isin-764"><a href="#Condition.isin-764"><span class="linenos">764</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Condition.isin-765"><a href="#Condition.isin-765"><span class="linenos">765</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="Condition.isin-766"><a href="#Condition.isin-766"><span class="linenos">766</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="Condition.isin-767"><a href="#Condition.isin-767"><span class="linenos">767</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="Condition.isin-768"><a href="#Condition.isin-768"><span class="linenos">768</span></a> <span class="p">)</span>
</span></pre></div>
@@ -10687,18 +11251,37 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">low</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">high</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Between">sqlglot.expressions.Between</a></span>:</span></span>
+ <span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">low</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">high</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Between">sqlglot.expressions.Between</a></span>:</span></span>
<label class="view-source-button" for="Condition.between-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.between-734"><a href="#Condition.between-734"><span class="linenos">734</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="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="Condition.between-735"><a href="#Condition.between-735"><span class="linenos">735</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="Condition.between-736"><a href="#Condition.between-736"><span class="linenos">736</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="Condition.between-737"><a href="#Condition.between-737"><span class="linenos">737</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="Condition.between-738"><a href="#Condition.between-738"><span class="linenos">738</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="Condition.between-739"><a href="#Condition.between-739"><span class="linenos">739</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.between-770"><a href="#Condition.between-770"><span class="linenos">770</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="Condition.between-771"><a href="#Condition.between-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="Condition.between-772"><a href="#Condition.between-772"><span class="linenos">772</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="Condition.between-773"><a href="#Condition.between-773"><span class="linenos">773</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="Condition.between-774"><a href="#Condition.between-774"><span class="linenos">774</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="Condition.between-775"><a href="#Condition.between-775"><span class="linenos">775</span></a> <span class="p">)</span>
+</span></pre></div>
+
+
+
+
+ </div>
+ <div id="Condition.is_" class="classattr">
+ <input id="Condition.is_-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_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Is">sqlglot.expressions.Is</a></span>:</span></span>
+
+ <label class="view-source-button" for="Condition.is_-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Condition.is_"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.is_-777"><a href="#Condition.is_-777"><span class="linenos">777</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="Condition.is_-778"><a href="#Condition.is_-778"><span class="linenos">778</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>
@@ -10716,8 +11299,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.like-741"><a href="#Condition.like-741"><span class="linenos">741</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="Condition.like-742"><a href="#Condition.like-742"><span class="linenos">742</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="Condition.like-780"><a href="#Condition.like-780"><span class="linenos">780</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="Condition.like-781"><a href="#Condition.like-781"><span class="linenos">781</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>
@@ -10735,8 +11318,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.ilike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.ilike-744"><a href="#Condition.ilike-744"><span class="linenos">744</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="Condition.ilike-745"><a href="#Condition.ilike-745"><span class="linenos">745</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="Condition.ilike-783"><a href="#Condition.ilike-783"><span class="linenos">783</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="Condition.ilike-784"><a href="#Condition.ilike-784"><span class="linenos">784</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>
@@ -10748,14 +11331,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">eq</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#EQ">sqlglot.expressions.EQ</a></span>:</span></span>
+ <span class="name">eq</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">other</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="n"><a href="#EQ">sqlglot.expressions.EQ</a></span>:</span></span>
<label class="view-source-button" for="Condition.eq-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.eq"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.eq-747"><a href="#Condition.eq-747"><span class="linenos">747</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="Condition.eq-748"><a href="#Condition.eq-748"><span class="linenos">748</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="Condition.eq-786"><a href="#Condition.eq-786"><span class="linenos">786</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="Condition.eq-787"><a href="#Condition.eq-787"><span class="linenos">787</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>
@@ -10767,14 +11350,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">neq</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#NEQ">sqlglot.expressions.NEQ</a></span>:</span></span>
+ <span class="name">neq</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">other</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="n"><a href="#NEQ">sqlglot.expressions.NEQ</a></span>:</span></span>
<label class="view-source-button" for="Condition.neq-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.neq"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.neq-750"><a href="#Condition.neq-750"><span class="linenos">750</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">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="Condition.neq-751"><a href="#Condition.neq-751"><span class="linenos">751</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="Condition.neq-789"><a href="#Condition.neq-789"><span class="linenos">789</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="Condition.neq-790"><a href="#Condition.neq-790"><span class="linenos">790</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>
@@ -10792,8 +11375,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.rlike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.rlike-753"><a href="#Condition.rlike-753"><span class="linenos">753</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="Condition.rlike-754"><a href="#Condition.rlike-754"><span class="linenos">754</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="Condition.rlike-792"><a href="#Condition.rlike-792"><span class="linenos">792</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="Condition.rlike-793"><a href="#Condition.rlike-793"><span class="linenos">793</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>
@@ -10816,6 +11399,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Condition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Condition.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Condition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Condition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Condition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -10857,8 +11441,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-829"><a href="#Predicate-829"><span class="linenos">829</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-830"><a href="#Predicate-830"><span class="linenos">830</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-868"><a href="#Predicate-868"><span class="linenos">868</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-869"><a href="#Predicate-869"><span class="linenos">869</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>
@@ -10882,6 +11466,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Predicate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Predicate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Predicate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Predicate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Predicate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -10913,8 +11498,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Predicate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Predicate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Predicate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Predicate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Predicate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Predicate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Predicate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Predicate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Predicate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Predicate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -10936,26 +11523,22 @@ 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-833"><a href="#DerivedTable-833"><span class="linenos">833</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-834"><a href="#DerivedTable-834"><span class="linenos">834</span></a> <span class="nd">@property</span>
-</span><span id="DerivedTable-835"><a href="#DerivedTable-835"><span class="linenos">835</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><span id="DerivedTable-836"><a href="#DerivedTable-836"><span class="linenos">836</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="DerivedTable-837"><a href="#DerivedTable-837"><span class="linenos">837</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="DerivedTable-838"><a href="#DerivedTable-838"><span class="linenos">838</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="DerivedTable-839"><a href="#DerivedTable-839"><span class="linenos">839</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><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="DerivedTable-840"><a href="#DerivedTable-840"><span class="linenos">840</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">column_list</span><span class="p">]</span>
-</span><span id="DerivedTable-841"><a href="#DerivedTable-841"><span class="linenos">841</span></a>
-</span><span id="DerivedTable-842"><a href="#DerivedTable-842"><span class="linenos">842</span></a> <span class="nd">@property</span>
-</span><span id="DerivedTable-843"><a href="#DerivedTable-843"><span class="linenos">843</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="DerivedTable-844"><a href="#DerivedTable-844"><span class="linenos">844</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="DerivedTable-845"><a href="#DerivedTable-845"><span class="linenos">845</span></a>
-</span><span id="DerivedTable-846"><a href="#DerivedTable-846"><span class="linenos">846</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
-</span><span id="DerivedTable-847"><a href="#DerivedTable-847"><span class="linenos">847</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span>
-</span><span id="DerivedTable-848"><a href="#DerivedTable-848"><span class="linenos">848</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="DerivedTable-849"><a href="#DerivedTable-849"><span class="linenos">849</span></a>
-</span><span id="DerivedTable-850"><a href="#DerivedTable-850"><span class="linenos">850</span></a> <span class="nd">@property</span>
-</span><span id="DerivedTable-851"><a href="#DerivedTable-851"><span class="linenos">851</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="DerivedTable-852"><a href="#DerivedTable-852"><span class="linenos">852</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-872"><a href="#DerivedTable-872"><span class="linenos">872</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-873"><a href="#DerivedTable-873"><span class="linenos">873</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable-874"><a href="#DerivedTable-874"><span class="linenos">874</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="DerivedTable-875"><a href="#DerivedTable-875"><span class="linenos">875</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="DerivedTable-876"><a href="#DerivedTable-876"><span class="linenos">876</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="DerivedTable-877"><a href="#DerivedTable-877"><span class="linenos">877</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="DerivedTable-878"><a href="#DerivedTable-878"><span class="linenos">878</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><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="DerivedTable-879"><a href="#DerivedTable-879"><span class="linenos">879</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">column_list</span><span class="p">]</span>
+</span><span id="DerivedTable-880"><a href="#DerivedTable-880"><span class="linenos">880</span></a>
+</span><span id="DerivedTable-881"><a href="#DerivedTable-881"><span class="linenos">881</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable-882"><a href="#DerivedTable-882"><span class="linenos">882</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="DerivedTable-883"><a href="#DerivedTable-883"><span class="linenos">883</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-884"><a href="#DerivedTable-884"><span class="linenos">884</span></a>
+</span><span id="DerivedTable-885"><a href="#DerivedTable-885"><span class="linenos">885</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable-886"><a href="#DerivedTable-886"><span class="linenos">886</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="DerivedTable-887"><a href="#DerivedTable-887"><span class="linenos">887</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>
@@ -10977,6 +11560,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DerivedTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DerivedTable.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DerivedTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DerivedTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DerivedTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11018,66 +11602,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-855"><a href="#Unionable-855"><span class="linenos">855</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-856"><a href="#Unionable-856"><span class="linenos">856</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Unionable-857"><a href="#Unionable-857"><span class="linenos">857</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable-858"><a href="#Unionable-858"><span class="linenos">858</span></a><span class="sd"> Builds a UNION expression.</span>
-</span><span id="Unionable-859"><a href="#Unionable-859"><span class="linenos">859</span></a>
-</span><span id="Unionable-860"><a href="#Unionable-860"><span class="linenos">860</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable-861"><a href="#Unionable-861"><span class="linenos">861</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable-862"><a href="#Unionable-862"><span class="linenos">862</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-863"><a href="#Unionable-863"><span class="linenos">863</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="Unionable-864"><a href="#Unionable-864"><span class="linenos">864</span></a>
-</span><span id="Unionable-865"><a href="#Unionable-865"><span class="linenos">865</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable-866"><a href="#Unionable-866"><span class="linenos">866</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="Unionable-867"><a href="#Unionable-867"><span class="linenos">867</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable-868"><a href="#Unionable-868"><span class="linenos">868</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable-869"><a href="#Unionable-869"><span class="linenos">869</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Unionable-870"><a href="#Unionable-870"><span class="linenos">870</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Unionable-871"><a href="#Unionable-871"><span class="linenos">871</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable-872"><a href="#Unionable-872"><span class="linenos">872</span></a><span class="sd"> Union: the Union expression.</span>
-</span><span id="Unionable-873"><a href="#Unionable-873"><span class="linenos">873</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable-874"><a href="#Unionable-874"><span class="linenos">874</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-875"><a href="#Unionable-875"><span class="linenos">875</span></a>
-</span><span id="Unionable-876"><a href="#Unionable-876"><span class="linenos">876</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Unionable-877"><a href="#Unionable-877"><span class="linenos">877</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable-878"><a href="#Unionable-878"><span class="linenos">878</span></a><span class="sd"> Builds an INTERSECT expression.</span>
-</span><span id="Unionable-879"><a href="#Unionable-879"><span class="linenos">879</span></a>
-</span><span id="Unionable-880"><a href="#Unionable-880"><span class="linenos">880</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable-881"><a href="#Unionable-881"><span class="linenos">881</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable-882"><a href="#Unionable-882"><span class="linenos">882</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-883"><a href="#Unionable-883"><span class="linenos">883</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable-884"><a href="#Unionable-884"><span class="linenos">884</span></a>
-</span><span id="Unionable-885"><a href="#Unionable-885"><span class="linenos">885</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable-886"><a href="#Unionable-886"><span class="linenos">886</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="Unionable-887"><a href="#Unionable-887"><span class="linenos">887</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable-888"><a href="#Unionable-888"><span class="linenos">888</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable-889"><a href="#Unionable-889"><span class="linenos">889</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Unionable-890"><a href="#Unionable-890"><span class="linenos">890</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Unionable-891"><a href="#Unionable-891"><span class="linenos">891</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable-892"><a href="#Unionable-892"><span class="linenos">892</span></a><span class="sd"> Intersect: the Intersect expression</span>
-</span><span id="Unionable-893"><a href="#Unionable-893"><span class="linenos">893</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable-894"><a href="#Unionable-894"><span class="linenos">894</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-895"><a href="#Unionable-895"><span class="linenos">895</span></a>
-</span><span id="Unionable-896"><a href="#Unionable-896"><span class="linenos">896</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Unionable-897"><a href="#Unionable-897"><span class="linenos">897</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable-898"><a href="#Unionable-898"><span class="linenos">898</span></a><span class="sd"> Builds an EXCEPT expression.</span>
-</span><span id="Unionable-899"><a href="#Unionable-899"><span class="linenos">899</span></a>
-</span><span id="Unionable-900"><a href="#Unionable-900"><span class="linenos">900</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable-901"><a href="#Unionable-901"><span class="linenos">901</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable-902"><a href="#Unionable-902"><span class="linenos">902</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-903"><a href="#Unionable-903"><span class="linenos">903</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable-904"><a href="#Unionable-904"><span class="linenos">904</span></a>
-</span><span id="Unionable-905"><a href="#Unionable-905"><span class="linenos">905</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable-906"><a href="#Unionable-906"><span class="linenos">906</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="Unionable-907"><a href="#Unionable-907"><span class="linenos">907</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable-908"><a href="#Unionable-908"><span class="linenos">908</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable-909"><a href="#Unionable-909"><span class="linenos">909</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Unionable-910"><a href="#Unionable-910"><span class="linenos">910</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Unionable-911"><a href="#Unionable-911"><span class="linenos">911</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable-912"><a href="#Unionable-912"><span class="linenos">912</span></a><span class="sd"> Except: the Except expression</span>
-</span><span id="Unionable-913"><a href="#Unionable-913"><span class="linenos">913</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable-914"><a href="#Unionable-914"><span class="linenos">914</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-890"><a href="#Unionable-890"><span class="linenos">890</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-891"><a href="#Unionable-891"><span class="linenos">891</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="Unionable-892"><a href="#Unionable-892"><span class="linenos">892</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-893"><a href="#Unionable-893"><span class="linenos">893</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable-894"><a href="#Unionable-894"><span class="linenos">894</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable-895"><a href="#Unionable-895"><span class="linenos">895</span></a><span class="sd"> Builds a UNION expression.</span>
+</span><span id="Unionable-896"><a href="#Unionable-896"><span class="linenos">896</span></a>
+</span><span id="Unionable-897"><a href="#Unionable-897"><span class="linenos">897</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable-898"><a href="#Unionable-898"><span class="linenos">898</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable-899"><a href="#Unionable-899"><span class="linenos">899</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-900"><a href="#Unionable-900"><span class="linenos">900</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="Unionable-901"><a href="#Unionable-901"><span class="linenos">901</span></a>
+</span><span id="Unionable-902"><a href="#Unionable-902"><span class="linenos">902</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable-903"><a href="#Unionable-903"><span class="linenos">903</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable-904"><a href="#Unionable-904"><span class="linenos">904</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable-905"><a href="#Unionable-905"><span class="linenos">905</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable-906"><a href="#Unionable-906"><span class="linenos">906</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable-907"><a href="#Unionable-907"><span class="linenos">907</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable-908"><a href="#Unionable-908"><span class="linenos">908</span></a>
+</span><span id="Unionable-909"><a href="#Unionable-909"><span class="linenos">909</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable-910"><a href="#Unionable-910"><span class="linenos">910</span></a><span class="sd"> The new Union expression.</span>
+</span><span id="Unionable-911"><a href="#Unionable-911"><span class="linenos">911</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable-912"><a href="#Unionable-912"><span class="linenos">912</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-913"><a href="#Unionable-913"><span class="linenos">913</span></a>
+</span><span id="Unionable-914"><a href="#Unionable-914"><span class="linenos">914</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="Unionable-915"><a href="#Unionable-915"><span class="linenos">915</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-916"><a href="#Unionable-916"><span class="linenos">916</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable-917"><a href="#Unionable-917"><span class="linenos">917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable-918"><a href="#Unionable-918"><span class="linenos">918</span></a><span class="sd"> Builds an INTERSECT expression.</span>
+</span><span id="Unionable-919"><a href="#Unionable-919"><span class="linenos">919</span></a>
+</span><span id="Unionable-920"><a href="#Unionable-920"><span class="linenos">920</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable-921"><a href="#Unionable-921"><span class="linenos">921</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable-922"><a href="#Unionable-922"><span class="linenos">922</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-923"><a href="#Unionable-923"><span class="linenos">923</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable-924"><a href="#Unionable-924"><span class="linenos">924</span></a>
+</span><span id="Unionable-925"><a href="#Unionable-925"><span class="linenos">925</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable-926"><a href="#Unionable-926"><span class="linenos">926</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable-927"><a href="#Unionable-927"><span class="linenos">927</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable-928"><a href="#Unionable-928"><span class="linenos">928</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable-929"><a href="#Unionable-929"><span class="linenos">929</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable-930"><a href="#Unionable-930"><span class="linenos">930</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable-931"><a href="#Unionable-931"><span class="linenos">931</span></a>
+</span><span id="Unionable-932"><a href="#Unionable-932"><span class="linenos">932</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable-933"><a href="#Unionable-933"><span class="linenos">933</span></a><span class="sd"> The new Intersect expression.</span>
+</span><span id="Unionable-934"><a href="#Unionable-934"><span class="linenos">934</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable-935"><a href="#Unionable-935"><span class="linenos">935</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-936"><a href="#Unionable-936"><span class="linenos">936</span></a>
+</span><span id="Unionable-937"><a href="#Unionable-937"><span class="linenos">937</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="Unionable-938"><a href="#Unionable-938"><span class="linenos">938</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-939"><a href="#Unionable-939"><span class="linenos">939</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable-940"><a href="#Unionable-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable-941"><a href="#Unionable-941"><span class="linenos">941</span></a><span class="sd"> Builds an EXCEPT expression.</span>
+</span><span id="Unionable-942"><a href="#Unionable-942"><span class="linenos">942</span></a>
+</span><span id="Unionable-943"><a href="#Unionable-943"><span class="linenos">943</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable-944"><a href="#Unionable-944"><span class="linenos">944</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable-945"><a href="#Unionable-945"><span class="linenos">945</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-946"><a href="#Unionable-946"><span class="linenos">946</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable-947"><a href="#Unionable-947"><span class="linenos">947</span></a>
+</span><span id="Unionable-948"><a href="#Unionable-948"><span class="linenos">948</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable-949"><a href="#Unionable-949"><span class="linenos">949</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable-950"><a href="#Unionable-950"><span class="linenos">950</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable-951"><a href="#Unionable-951"><span class="linenos">951</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable-952"><a href="#Unionable-952"><span class="linenos">952</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable-953"><a href="#Unionable-953"><span class="linenos">953</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable-954"><a href="#Unionable-954"><span class="linenos">954</span></a>
+</span><span id="Unionable-955"><a href="#Unionable-955"><span class="linenos">955</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable-956"><a href="#Unionable-956"><span class="linenos">956</span></a><span class="sd"> The new Except expression.</span>
+</span><span id="Unionable-957"><a href="#Unionable-957"><span class="linenos">957</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable-958"><a href="#Unionable-958"><span class="linenos">958</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>
@@ -11088,31 +11681,34 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">union</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">distinct</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">union</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Unionable">sqlglot.expressions.Unionable</a></span>:</span></span>
<label class="view-source-button" for="Unionable.union-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable.union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-856"><a href="#Unionable.union-856"><span class="linenos">856</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Unionable.union-857"><a href="#Unionable.union-857"><span class="linenos">857</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable.union-858"><a href="#Unionable.union-858"><span class="linenos">858</span></a><span class="sd"> Builds a UNION expression.</span>
-</span><span id="Unionable.union-859"><a href="#Unionable.union-859"><span class="linenos">859</span></a>
-</span><span id="Unionable.union-860"><a href="#Unionable.union-860"><span class="linenos">860</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable.union-861"><a href="#Unionable.union-861"><span class="linenos">861</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable.union-862"><a href="#Unionable.union-862"><span class="linenos">862</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-863"><a href="#Unionable.union-863"><span class="linenos">863</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="Unionable.union-864"><a href="#Unionable.union-864"><span class="linenos">864</span></a>
-</span><span id="Unionable.union-865"><a href="#Unionable.union-865"><span class="linenos">865</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable.union-866"><a href="#Unionable.union-866"><span class="linenos">866</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="Unionable.union-867"><a href="#Unionable.union-867"><span class="linenos">867</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable.union-868"><a href="#Unionable.union-868"><span class="linenos">868</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable.union-869"><a href="#Unionable.union-869"><span class="linenos">869</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Unionable.union-870"><a href="#Unionable.union-870"><span class="linenos">870</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Unionable.union-871"><a href="#Unionable.union-871"><span class="linenos">871</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable.union-872"><a href="#Unionable.union-872"><span class="linenos">872</span></a><span class="sd"> Union: the Union expression.</span>
-</span><span id="Unionable.union-873"><a href="#Unionable.union-873"><span class="linenos">873</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable.union-874"><a href="#Unionable.union-874"><span class="linenos">874</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-891"><a href="#Unionable.union-891"><span class="linenos">891</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="Unionable.union-892"><a href="#Unionable.union-892"><span class="linenos">892</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-893"><a href="#Unionable.union-893"><span class="linenos">893</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-894"><a href="#Unionable.union-894"><span class="linenos">894</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable.union-895"><a href="#Unionable.union-895"><span class="linenos">895</span></a><span class="sd"> Builds a UNION expression.</span>
+</span><span id="Unionable.union-896"><a href="#Unionable.union-896"><span class="linenos">896</span></a>
+</span><span id="Unionable.union-897"><a href="#Unionable.union-897"><span class="linenos">897</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable.union-898"><a href="#Unionable.union-898"><span class="linenos">898</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable.union-899"><a href="#Unionable.union-899"><span class="linenos">899</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-900"><a href="#Unionable.union-900"><span class="linenos">900</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="Unionable.union-901"><a href="#Unionable.union-901"><span class="linenos">901</span></a>
+</span><span id="Unionable.union-902"><a href="#Unionable.union-902"><span class="linenos">902</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable.union-903"><a href="#Unionable.union-903"><span class="linenos">903</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable.union-904"><a href="#Unionable.union-904"><span class="linenos">904</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable.union-905"><a href="#Unionable.union-905"><span class="linenos">905</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable.union-906"><a href="#Unionable.union-906"><span class="linenos">906</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable.union-907"><a href="#Unionable.union-907"><span class="linenos">907</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable.union-908"><a href="#Unionable.union-908"><span class="linenos">908</span></a>
+</span><span id="Unionable.union-909"><a href="#Unionable.union-909"><span class="linenos">909</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable.union-910"><a href="#Unionable.union-910"><span class="linenos">910</span></a><span class="sd"> The new Union expression.</span>
+</span><span id="Unionable.union-911"><a href="#Unionable.union-911"><span class="linenos">911</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable.union-912"><a href="#Unionable.union-912"><span class="linenos">912</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>
@@ -11132,17 +11728,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | Expression):</strong> the SQL code string.
+<li><strong>expression:</strong> the SQL code string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Union: the Union expression.</p>
+ <p>The new Union expression.</p>
</blockquote>
</div>
@@ -11153,31 +11749,34 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">intersect</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">distinct</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">intersect</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Unionable">sqlglot.expressions.Unionable</a></span>:</span></span>
<label class="view-source-button" for="Unionable.intersect-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable.intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-876"><a href="#Unionable.intersect-876"><span class="linenos">876</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Unionable.intersect-877"><a href="#Unionable.intersect-877"><span class="linenos">877</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable.intersect-878"><a href="#Unionable.intersect-878"><span class="linenos">878</span></a><span class="sd"> Builds an INTERSECT expression.</span>
-</span><span id="Unionable.intersect-879"><a href="#Unionable.intersect-879"><span class="linenos">879</span></a>
-</span><span id="Unionable.intersect-880"><a href="#Unionable.intersect-880"><span class="linenos">880</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable.intersect-881"><a href="#Unionable.intersect-881"><span class="linenos">881</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable.intersect-882"><a href="#Unionable.intersect-882"><span class="linenos">882</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-883"><a href="#Unionable.intersect-883"><span class="linenos">883</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable.intersect-884"><a href="#Unionable.intersect-884"><span class="linenos">884</span></a>
-</span><span id="Unionable.intersect-885"><a href="#Unionable.intersect-885"><span class="linenos">885</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable.intersect-886"><a href="#Unionable.intersect-886"><span class="linenos">886</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="Unionable.intersect-887"><a href="#Unionable.intersect-887"><span class="linenos">887</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable.intersect-888"><a href="#Unionable.intersect-888"><span class="linenos">888</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable.intersect-889"><a href="#Unionable.intersect-889"><span class="linenos">889</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Unionable.intersect-890"><a href="#Unionable.intersect-890"><span class="linenos">890</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Unionable.intersect-891"><a href="#Unionable.intersect-891"><span class="linenos">891</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable.intersect-892"><a href="#Unionable.intersect-892"><span class="linenos">892</span></a><span class="sd"> Intersect: the Intersect expression</span>
-</span><span id="Unionable.intersect-893"><a href="#Unionable.intersect-893"><span class="linenos">893</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable.intersect-894"><a href="#Unionable.intersect-894"><span class="linenos">894</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-914"><a href="#Unionable.intersect-914"><span class="linenos">914</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="Unionable.intersect-915"><a href="#Unionable.intersect-915"><span class="linenos">915</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-916"><a href="#Unionable.intersect-916"><span class="linenos">916</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-917"><a href="#Unionable.intersect-917"><span class="linenos">917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable.intersect-918"><a href="#Unionable.intersect-918"><span class="linenos">918</span></a><span class="sd"> Builds an INTERSECT expression.</span>
+</span><span id="Unionable.intersect-919"><a href="#Unionable.intersect-919"><span class="linenos">919</span></a>
+</span><span id="Unionable.intersect-920"><a href="#Unionable.intersect-920"><span class="linenos">920</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable.intersect-921"><a href="#Unionable.intersect-921"><span class="linenos">921</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable.intersect-922"><a href="#Unionable.intersect-922"><span class="linenos">922</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-923"><a href="#Unionable.intersect-923"><span class="linenos">923</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable.intersect-924"><a href="#Unionable.intersect-924"><span class="linenos">924</span></a>
+</span><span id="Unionable.intersect-925"><a href="#Unionable.intersect-925"><span class="linenos">925</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable.intersect-926"><a href="#Unionable.intersect-926"><span class="linenos">926</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable.intersect-927"><a href="#Unionable.intersect-927"><span class="linenos">927</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable.intersect-928"><a href="#Unionable.intersect-928"><span class="linenos">928</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable.intersect-929"><a href="#Unionable.intersect-929"><span class="linenos">929</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable.intersect-930"><a href="#Unionable.intersect-930"><span class="linenos">930</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable.intersect-931"><a href="#Unionable.intersect-931"><span class="linenos">931</span></a>
+</span><span id="Unionable.intersect-932"><a href="#Unionable.intersect-932"><span class="linenos">932</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable.intersect-933"><a href="#Unionable.intersect-933"><span class="linenos">933</span></a><span class="sd"> The new Intersect expression.</span>
+</span><span id="Unionable.intersect-934"><a href="#Unionable.intersect-934"><span class="linenos">934</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable.intersect-935"><a href="#Unionable.intersect-935"><span class="linenos">935</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>
@@ -11197,17 +11796,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | Expression):</strong> the SQL code string.
+<li><strong>expression:</strong> the SQL code string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Intersect: the Intersect expression</p>
+ <p>The new Intersect expression.</p>
</blockquote>
</div>
@@ -11218,31 +11817,34 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">except_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">distinct</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">except_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Unionable">sqlglot.expressions.Unionable</a></span>:</span></span>
<label class="view-source-button" for="Unionable.except_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable.except_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.except_-896"><a href="#Unionable.except_-896"><span class="linenos">896</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Unionable.except_-897"><a href="#Unionable.except_-897"><span class="linenos">897</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable.except_-898"><a href="#Unionable.except_-898"><span class="linenos">898</span></a><span class="sd"> Builds an EXCEPT expression.</span>
-</span><span id="Unionable.except_-899"><a href="#Unionable.except_-899"><span class="linenos">899</span></a>
-</span><span id="Unionable.except_-900"><a href="#Unionable.except_-900"><span class="linenos">900</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable.except_-901"><a href="#Unionable.except_-901"><span class="linenos">901</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable.except_-902"><a href="#Unionable.except_-902"><span class="linenos">902</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_-903"><a href="#Unionable.except_-903"><span class="linenos">903</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable.except_-904"><a href="#Unionable.except_-904"><span class="linenos">904</span></a>
-</span><span id="Unionable.except_-905"><a href="#Unionable.except_-905"><span class="linenos">905</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable.except_-906"><a href="#Unionable.except_-906"><span class="linenos">906</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span>
-</span><span id="Unionable.except_-907"><a href="#Unionable.except_-907"><span class="linenos">907</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable.except_-908"><a href="#Unionable.except_-908"><span class="linenos">908</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable.except_-909"><a href="#Unionable.except_-909"><span class="linenos">909</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Unionable.except_-910"><a href="#Unionable.except_-910"><span class="linenos">910</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Unionable.except_-911"><a href="#Unionable.except_-911"><span class="linenos">911</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable.except_-912"><a href="#Unionable.except_-912"><span class="linenos">912</span></a><span class="sd"> Except: the Except expression</span>
-</span><span id="Unionable.except_-913"><a href="#Unionable.except_-913"><span class="linenos">913</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable.except_-914"><a href="#Unionable.except_-914"><span class="linenos">914</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_-937"><a href="#Unionable.except_-937"><span class="linenos">937</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="Unionable.except_-938"><a href="#Unionable.except_-938"><span class="linenos">938</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_-939"><a href="#Unionable.except_-939"><span class="linenos">939</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_-940"><a href="#Unionable.except_-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable.except_-941"><a href="#Unionable.except_-941"><span class="linenos">941</span></a><span class="sd"> Builds an EXCEPT expression.</span>
+</span><span id="Unionable.except_-942"><a href="#Unionable.except_-942"><span class="linenos">942</span></a>
+</span><span id="Unionable.except_-943"><a href="#Unionable.except_-943"><span class="linenos">943</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable.except_-944"><a href="#Unionable.except_-944"><span class="linenos">944</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable.except_-945"><a href="#Unionable.except_-945"><span class="linenos">945</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_-946"><a href="#Unionable.except_-946"><span class="linenos">946</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable.except_-947"><a href="#Unionable.except_-947"><span class="linenos">947</span></a>
+</span><span id="Unionable.except_-948"><a href="#Unionable.except_-948"><span class="linenos">948</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable.except_-949"><a href="#Unionable.except_-949"><span class="linenos">949</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable.except_-950"><a href="#Unionable.except_-950"><span class="linenos">950</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable.except_-951"><a href="#Unionable.except_-951"><span class="linenos">951</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable.except_-952"><a href="#Unionable.except_-952"><span class="linenos">952</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable.except_-953"><a href="#Unionable.except_-953"><span class="linenos">953</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable.except_-954"><a href="#Unionable.except_-954"><span class="linenos">954</span></a>
+</span><span id="Unionable.except_-955"><a href="#Unionable.except_-955"><span class="linenos">955</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable.except_-956"><a href="#Unionable.except_-956"><span class="linenos">956</span></a><span class="sd"> The new Except expression.</span>
+</span><span id="Unionable.except_-957"><a href="#Unionable.except_-957"><span class="linenos">957</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable.except_-958"><a href="#Unionable.except_-958"><span class="linenos">958</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>
@@ -11262,17 +11864,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | Expression):</strong> the SQL code string.
+<li><strong>expression:</strong> the SQL code string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Except: the Except expression</p>
+ <p>The new Except expression.</p>
</blockquote>
</div>
@@ -11294,6 +11896,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unionable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unionable.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Unionable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unionable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unionable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11335,8 +11938,11 @@ 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-917"><a href="#UDTF-917"><span class="linenos">917</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-918"><a href="#UDTF-918"><span class="linenos">918</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UDTF-961"><a href="#UDTF-961"><span class="linenos">961</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-962"><a href="#UDTF-962"><span class="linenos">962</span></a> <span class="nd">@property</span>
+</span><span id="UDTF-963"><a href="#UDTF-963"><span class="linenos">963</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="UDTF-964"><a href="#UDTF-964"><span class="linenos">964</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-965"><a href="#UDTF-965"><span class="linenos">965</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>
@@ -11358,6 +11964,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UDTF.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UDTF.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UDTF.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UDTF.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UDTF.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11405,14 +12012,14 @@ 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-921"><a href="#Cache-921"><span class="linenos">921</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-922"><a href="#Cache-922"><span class="linenos">922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Cache-923"><a href="#Cache-923"><span class="linenos">923</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="Cache-924"><a href="#Cache-924"><span class="linenos">924</span></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-925"><a href="#Cache-925"><span class="linenos">925</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-926"><a href="#Cache-926"><span class="linenos">926</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-927"><a href="#Cache-927"><span class="linenos">927</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-928"><a href="#Cache-928"><span class="linenos">928</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cache-968"><a href="#Cache-968"><span class="linenos">968</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-969"><a href="#Cache-969"><span class="linenos">969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Cache-970"><a href="#Cache-970"><span class="linenos">970</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="Cache-971"><a href="#Cache-971"><span class="linenos">971</span></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-972"><a href="#Cache-972"><span class="linenos">972</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-973"><a href="#Cache-973"><span class="linenos">973</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-974"><a href="#Cache-974"><span class="linenos">974</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-975"><a href="#Cache-975"><span class="linenos">975</span></a> <span class="p">}</span>
</span></pre></div>
@@ -11434,6 +12041,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Cache.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Cache.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Cache.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Cache.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Cache.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11475,8 +12083,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-931"><a href="#Uncache-931"><span class="linenos">931</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-932"><a href="#Uncache-932"><span class="linenos">932</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-978"><a href="#Uncache-978"><span class="linenos">978</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-979"><a href="#Uncache-979"><span class="linenos">979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -11498,6 +12106,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Uncache.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Uncache.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Uncache.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Uncache.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Uncache.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11539,20 +12148,21 @@ 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-935"><a href="#Create-935"><span class="linenos">935</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Create-936"><a href="#Create-936"><span class="linenos">936</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Create-937"><a href="#Create-937"><span class="linenos">937</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-938"><a href="#Create-938"><span class="linenos">938</span></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-939"><a href="#Create-939"><span class="linenos">939</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-940"><a href="#Create-940"><span class="linenos">940</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-941"><a href="#Create-941"><span class="linenos">941</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-942"><a href="#Create-942"><span class="linenos">942</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-943"><a href="#Create-943"><span class="linenos">943</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-944"><a href="#Create-944"><span class="linenos">944</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-945"><a href="#Create-945"><span class="linenos">945</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-946"><a href="#Create-946"><span class="linenos">946</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-947"><a href="#Create-947"><span class="linenos">947</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-948"><a href="#Create-948"><span class="linenos">948</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Create-982"><a href="#Create-982"><span class="linenos">982</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Create-983"><a href="#Create-983"><span class="linenos">983</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Create-984"><a href="#Create-984"><span class="linenos">984</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-985"><a href="#Create-985"><span class="linenos">985</span></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-986"><a href="#Create-986"><span class="linenos">986</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-987"><a href="#Create-987"><span class="linenos">987</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-988"><a href="#Create-988"><span class="linenos">988</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-989"><a href="#Create-989"><span class="linenos">989</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-990"><a href="#Create-990"><span class="linenos">990</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-991"><a href="#Create-991"><span class="linenos">991</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-992"><a href="#Create-992"><span class="linenos">992</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-993"><a href="#Create-993"><span class="linenos">993</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-994"><a href="#Create-994"><span class="linenos">994</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-995"><a href="#Create-995"><span class="linenos">995</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-996"><a href="#Create-996"><span class="linenos">996</span></a> <span class="p">}</span>
</span></pre></div>
@@ -11574,6 +12184,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Create.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Create.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Create.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Create.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Create.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11604,6 +12215,76 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</dl>
</div>
</section>
+ <section id="Clone">
+ <input id="Clone-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">Clone</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="Clone-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Clone"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Clone-1000"><a href="#Clone-1000"><span class="linenos">1000</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-1001"><a href="#Clone-1001"><span class="linenos">1001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Clone-1002"><a href="#Clone-1002"><span class="linenos">1002</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Clone-1003"><a href="#Clone-1003"><span class="linenos">1003</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="Clone-1004"><a href="#Clone-1004"><span class="linenos">1004</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="Clone-1005"><a href="#Clone-1005"><span class="linenos">1005</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="Clone-1006"><a href="#Clone-1006"><span class="linenos">1006</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Clone.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Clone.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Clone.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Clone.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Clone.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Clone.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Clone.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="Clone.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="Clone.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="Clone.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Clone.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="Clone.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Clone.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Clone.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Clone.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Clone.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Clone.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Clone.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Clone.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Clone.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Clone.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Clone.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Clone.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Clone.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Clone.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="Clone.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Clone.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Clone.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Clone.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Clone.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Describe">
<input id="Describe-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -11615,8 +12296,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-951"><a href="#Describe-951"><span class="linenos">951</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-952"><a href="#Describe-952"><span class="linenos">952</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Describe-1009"><a href="#Describe-1009"><span class="linenos">1009</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-1010"><a href="#Describe-1010"><span class="linenos">1010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -11638,6 +12319,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Describe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Describe.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Describe.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Describe.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Describe.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11679,8 +12361,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-955"><a href="#Pragma-955"><span class="linenos">955</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-956"><a href="#Pragma-956"><span class="linenos">956</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pragma-1013"><a href="#Pragma-1013"><span class="linenos">1013</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-1014"><a href="#Pragma-1014"><span class="linenos">1014</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -11702,6 +12384,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pragma.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Pragma.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Pragma.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Pragma.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Pragma.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11743,8 +12426,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-959"><a href="#Set-959"><span class="linenos">959</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-960"><a href="#Set-960"><span class="linenos">960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Set-1017"><a href="#Set-1017"><span class="linenos">1017</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-1018"><a href="#Set-1018"><span class="linenos">1018</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -11766,6 +12449,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Set.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Set.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Set.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Set.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Set.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11807,14 +12491,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-963"><a href="#SetItem-963"><span class="linenos">963</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-964"><a href="#SetItem-964"><span class="linenos">964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="SetItem-965"><a href="#SetItem-965"><span class="linenos">965</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-966"><a href="#SetItem-966"><span class="linenos">966</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-967"><a href="#SetItem-967"><span class="linenos">967</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-968"><a href="#SetItem-968"><span class="linenos">968</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
-</span><span id="SetItem-969"><a href="#SetItem-969"><span class="linenos">969</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-970"><a href="#SetItem-970"><span class="linenos">970</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-1021"><a href="#SetItem-1021"><span class="linenos">1021</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-1022"><a href="#SetItem-1022"><span class="linenos">1022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="SetItem-1023"><a href="#SetItem-1023"><span class="linenos">1023</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-1024"><a href="#SetItem-1024"><span class="linenos">1024</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-1025"><a href="#SetItem-1025"><span class="linenos">1025</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-1026"><a href="#SetItem-1026"><span class="linenos">1026</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-1027"><a href="#SetItem-1027"><span class="linenos">1027</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-1028"><a href="#SetItem-1028"><span class="linenos">1028</span></a> <span class="p">}</span>
</span></pre></div>
@@ -11836,6 +12520,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SetItem.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetItem.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SetItem.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetItem.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetItem.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11877,24 +12562,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Show"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Show-973"><a href="#Show-973"><span class="linenos">973</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-974"><a href="#Show-974"><span class="linenos">974</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Show-975"><a href="#Show-975"><span class="linenos">975</span></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-976"><a href="#Show-976"><span class="linenos">976</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-977"><a href="#Show-977"><span class="linenos">977</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-978"><a href="#Show-978"><span class="linenos">978</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-979"><a href="#Show-979"><span class="linenos">979</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-980"><a href="#Show-980"><span class="linenos">980</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-981"><a href="#Show-981"><span class="linenos">981</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-982"><a href="#Show-982"><span class="linenos">982</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-983"><a href="#Show-983"><span class="linenos">983</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-984"><a href="#Show-984"><span class="linenos">984</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-985"><a href="#Show-985"><span class="linenos">985</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-986"><a href="#Show-986"><span class="linenos">986</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-987"><a href="#Show-987"><span class="linenos">987</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-988"><a href="#Show-988"><span class="linenos">988</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-989"><a href="#Show-989"><span class="linenos">989</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-990"><a href="#Show-990"><span class="linenos">990</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Show-1031"><a href="#Show-1031"><span class="linenos">1031</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-1032"><a href="#Show-1032"><span class="linenos">1032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Show-1033"><a href="#Show-1033"><span class="linenos">1033</span></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-1034"><a href="#Show-1034"><span class="linenos">1034</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-1035"><a href="#Show-1035"><span class="linenos">1035</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-1036"><a href="#Show-1036"><span class="linenos">1036</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-1037"><a href="#Show-1037"><span class="linenos">1037</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-1038"><a href="#Show-1038"><span class="linenos">1038</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-1039"><a href="#Show-1039"><span class="linenos">1039</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-1040"><a href="#Show-1040"><span class="linenos">1040</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-1041"><a href="#Show-1041"><span class="linenos">1041</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-1042"><a href="#Show-1042"><span class="linenos">1042</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-1043"><a href="#Show-1043"><span class="linenos">1043</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-1044"><a href="#Show-1044"><span class="linenos">1044</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-1045"><a href="#Show-1045"><span class="linenos">1045</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-1046"><a href="#Show-1046"><span class="linenos">1046</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-1047"><a href="#Show-1047"><span class="linenos">1047</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-1048"><a href="#Show-1048"><span class="linenos">1048</span></a> <span class="p">}</span>
</span></pre></div>
@@ -11916,6 +12601,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Show.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Show.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Show.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Show.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Show.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -11957,8 +12643,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-993"><a href="#UserDefinedFunction-993"><span class="linenos">993</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-994"><a href="#UserDefinedFunction-994"><span class="linenos">994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1051"><a href="#UserDefinedFunction-1051"><span class="linenos">1051</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-1052"><a href="#UserDefinedFunction-1052"><span class="linenos">1052</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -11980,6 +12666,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UserDefinedFunction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UserDefinedFunction.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UserDefinedFunction.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UserDefinedFunction.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UserDefinedFunction.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12021,8 +12708,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-997"><a href="#CharacterSet-997"><span class="linenos">997</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-998"><a href="#CharacterSet-998"><span class="linenos">998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1055"><a href="#CharacterSet-1055"><span class="linenos">1055</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-1056"><a href="#CharacterSet-1056"><span class="linenos">1056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -12044,6 +12731,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSet.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CharacterSet.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CharacterSet.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CharacterSet.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CharacterSet.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12085,12 +12773,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-1001"><a href="#With-1001"><span class="linenos">1001</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-1002"><a href="#With-1002"><span class="linenos">1002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-1003"><a href="#With-1003"><span class="linenos">1003</span></a>
-</span><span id="With-1004"><a href="#With-1004"><span class="linenos">1004</span></a> <span class="nd">@property</span>
-</span><span id="With-1005"><a href="#With-1005"><span class="linenos">1005</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-1006"><a href="#With-1006"><span class="linenos">1006</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-1059"><a href="#With-1059"><span class="linenos">1059</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-1060"><a href="#With-1060"><span class="linenos">1060</span></a> <span class="n">arg_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-1061"><a href="#With-1061"><span class="linenos">1061</span></a>
+</span><span id="With-1062"><a href="#With-1062"><span class="linenos">1062</span></a> <span class="nd">@property</span>
+</span><span id="With-1063"><a href="#With-1063"><span class="linenos">1063</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-1064"><a href="#With-1064"><span class="linenos">1064</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>
@@ -12112,6 +12800,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="With.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="With.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="With.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="With.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="With.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12153,8 +12842,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-1009"><a href="#WithinGroup-1009"><span class="linenos">1009</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-1010"><a href="#WithinGroup-1010"><span class="linenos">1010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1067"><a href="#WithinGroup-1067"><span class="linenos">1067</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-1068"><a href="#WithinGroup-1068"><span class="linenos">1068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -12176,6 +12865,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WithinGroup.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WithinGroup.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="WithinGroup.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WithinGroup.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WithinGroup.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12217,8 +12907,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-1013"><a href="#CTE-1013"><span class="linenos">1013</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-1014"><a href="#CTE-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;alias&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CTE-1071"><a href="#CTE-1071"><span class="linenos">1071</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-1072"><a href="#CTE-1072"><span class="linenos">1072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -12240,6 +12930,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CTE.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CTE.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CTE.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CTE.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12281,12 +12972,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-1017"><a href="#TableAlias-1017"><span class="linenos">1017</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-1018"><a href="#TableAlias-1018"><span class="linenos">1018</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1019"><a href="#TableAlias-1019"><span class="linenos">1019</span></a>
-</span><span id="TableAlias-1020"><a href="#TableAlias-1020"><span class="linenos">1020</span></a> <span class="nd">@property</span>
-</span><span id="TableAlias-1021"><a href="#TableAlias-1021"><span class="linenos">1021</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-1022"><a href="#TableAlias-1022"><span class="linenos">1022</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-1075"><a href="#TableAlias-1075"><span class="linenos">1075</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-1076"><a href="#TableAlias-1076"><span class="linenos">1076</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1077"><a href="#TableAlias-1077"><span class="linenos">1077</span></a>
+</span><span id="TableAlias-1078"><a href="#TableAlias-1078"><span class="linenos">1078</span></a> <span class="nd">@property</span>
+</span><span id="TableAlias-1079"><a href="#TableAlias-1079"><span class="linenos">1079</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-1080"><a href="#TableAlias-1080"><span class="linenos">1080</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>
@@ -12308,6 +12999,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableAlias.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TableAlias.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TableAlias.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TableAlias.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TableAlias.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12349,8 +13041,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-1025"><a href="#BitString-1025"><span class="linenos">1025</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-1026"><a href="#BitString-1026"><span class="linenos">1026</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitString-1083"><a href="#BitString-1083"><span class="linenos">1083</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-1084"><a href="#BitString-1084"><span class="linenos">1084</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12372,6 +13064,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitString.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12403,8 +13096,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitString.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -12426,8 +13121,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-1029"><a href="#HexString-1029"><span class="linenos">1029</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-1030"><a href="#HexString-1030"><span class="linenos">1030</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="HexString-1087"><a href="#HexString-1087"><span class="linenos">1087</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-1088"><a href="#HexString-1088"><span class="linenos">1088</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12449,6 +13144,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="HexString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="HexString.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="HexString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="HexString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="HexString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12480,8 +13176,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="HexString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="HexString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="HexString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="HexString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="HexString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="HexString.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="HexString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="HexString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="HexString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="HexString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -12503,8 +13201,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-1033"><a href="#ByteString-1033"><span class="linenos">1033</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-1034"><a href="#ByteString-1034"><span class="linenos">1034</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-1091"><a href="#ByteString-1091"><span class="linenos">1091</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-1092"><a href="#ByteString-1092"><span class="linenos">1092</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12526,6 +13224,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ByteString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ByteString.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ByteString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ByteString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ByteString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12557,8 +13256,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ByteString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ByteString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ByteString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ByteString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ByteString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ByteString.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ByteString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ByteString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ByteString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ByteString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -12569,6 +13270,86 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</dl>
</div>
</section>
+ <section id="RawString">
+ <input id="RawString-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">RawString</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
+
+ <label class="view-source-button" for="RawString-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#RawString"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RawString-1095"><a href="#RawString-1095"><span class="linenos">1095</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-1096"><a href="#RawString-1096"><span class="linenos">1096</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="RawString.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="RawString.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="RawString.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="RawString.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="RawString.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="RawString.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="RawString.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="RawString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="RawString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="RawString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RawString.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="RawString.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="RawString.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="RawString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="RawString.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="RawString.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="RawString.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="RawString.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="RawString.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="RawString.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="RawString.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="RawString.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="RawString.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="RawString.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="RawString.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="RawString.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="RawString.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="RawString.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="RawString.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="RawString.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="RawString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="RawString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="RawString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RawString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="RawString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="RawString.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RawString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="RawString.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="RawString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="RawString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="RawString.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="RawString.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Column">
<input id="Column-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -12580,41 +13361,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-1037"><a href="#Column-1037"><span class="linenos">1037</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-1038"><a href="#Column-1038"><span class="linenos">1038</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1039"><a href="#Column-1039"><span class="linenos">1039</span></a>
-</span><span id="Column-1040"><a href="#Column-1040"><span class="linenos">1040</span></a> <span class="nd">@property</span>
-</span><span id="Column-1041"><a href="#Column-1041"><span class="linenos">1041</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-1042"><a href="#Column-1042"><span class="linenos">1042</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-1043"><a href="#Column-1043"><span class="linenos">1043</span></a>
-</span><span id="Column-1044"><a href="#Column-1044"><span class="linenos">1044</span></a> <span class="nd">@property</span>
-</span><span id="Column-1045"><a href="#Column-1045"><span class="linenos">1045</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-1046"><a href="#Column-1046"><span class="linenos">1046</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-1047"><a href="#Column-1047"><span class="linenos">1047</span></a>
-</span><span id="Column-1048"><a href="#Column-1048"><span class="linenos">1048</span></a> <span class="nd">@property</span>
-</span><span id="Column-1049"><a href="#Column-1049"><span class="linenos">1049</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-1050"><a href="#Column-1050"><span class="linenos">1050</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-1051"><a href="#Column-1051"><span class="linenos">1051</span></a>
-</span><span id="Column-1052"><a href="#Column-1052"><span class="linenos">1052</span></a> <span class="nd">@property</span>
-</span><span id="Column-1053"><a href="#Column-1053"><span class="linenos">1053</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-1054"><a href="#Column-1054"><span class="linenos">1054</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-1055"><a href="#Column-1055"><span class="linenos">1055</span></a>
-</span><span id="Column-1056"><a href="#Column-1056"><span class="linenos">1056</span></a> <span class="nd">@property</span>
-</span><span id="Column-1057"><a href="#Column-1057"><span class="linenos">1057</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-1058"><a href="#Column-1058"><span class="linenos">1058</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-1059"><a href="#Column-1059"><span class="linenos">1059</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">part</span><span class="p">]</span>
-</span><span id="Column-1060"><a href="#Column-1060"><span class="linenos">1060</span></a>
-</span><span id="Column-1061"><a href="#Column-1061"><span class="linenos">1061</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Column-1062"><a href="#Column-1062"><span class="linenos">1062</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-1063"><a href="#Column-1063"><span class="linenos">1063</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-1064"><a href="#Column-1064"><span class="linenos">1064</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-1065"><a href="#Column-1065"><span class="linenos">1065</span></a>
-</span><span id="Column-1066"><a href="#Column-1066"><span class="linenos">1066</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="Column-1067"><a href="#Column-1067"><span class="linenos">1067</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-1068"><a href="#Column-1068"><span class="linenos">1068</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-1069"><a href="#Column-1069"><span class="linenos">1069</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-1070"><a href="#Column-1070"><span class="linenos">1070</span></a>
-</span><span id="Column-1071"><a href="#Column-1071"><span class="linenos">1071</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column-1099"><a href="#Column-1099"><span class="linenos">1099</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-1100"><a href="#Column-1100"><span class="linenos">1100</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1101"><a href="#Column-1101"><span class="linenos">1101</span></a>
+</span><span id="Column-1102"><a href="#Column-1102"><span class="linenos">1102</span></a> <span class="nd">@property</span>
+</span><span id="Column-1103"><a href="#Column-1103"><span class="linenos">1103</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-1104"><a href="#Column-1104"><span class="linenos">1104</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-1105"><a href="#Column-1105"><span class="linenos">1105</span></a>
+</span><span id="Column-1106"><a href="#Column-1106"><span class="linenos">1106</span></a> <span class="nd">@property</span>
+</span><span id="Column-1107"><a href="#Column-1107"><span class="linenos">1107</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-1108"><a href="#Column-1108"><span class="linenos">1108</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-1109"><a href="#Column-1109"><span class="linenos">1109</span></a>
+</span><span id="Column-1110"><a href="#Column-1110"><span class="linenos">1110</span></a> <span class="nd">@property</span>
+</span><span id="Column-1111"><a href="#Column-1111"><span class="linenos">1111</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-1112"><a href="#Column-1112"><span class="linenos">1112</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-1113"><a href="#Column-1113"><span class="linenos">1113</span></a>
+</span><span id="Column-1114"><a href="#Column-1114"><span class="linenos">1114</span></a> <span class="nd">@property</span>
+</span><span id="Column-1115"><a href="#Column-1115"><span class="linenos">1115</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-1116"><a href="#Column-1116"><span class="linenos">1116</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-1117"><a href="#Column-1117"><span class="linenos">1117</span></a>
+</span><span id="Column-1118"><a href="#Column-1118"><span class="linenos">1118</span></a> <span class="nd">@property</span>
+</span><span id="Column-1119"><a href="#Column-1119"><span class="linenos">1119</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-1120"><a href="#Column-1120"><span class="linenos">1120</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-1121"><a href="#Column-1121"><span class="linenos">1121</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="Column-1122"><a href="#Column-1122"><span class="linenos">1122</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-1123"><a href="#Column-1123"><span class="linenos">1123</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-1124"><a href="#Column-1124"><span class="linenos">1124</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-1125"><a href="#Column-1125"><span class="linenos">1125</span></a> <span class="p">]</span>
+</span><span id="Column-1126"><a href="#Column-1126"><span class="linenos">1126</span></a>
+</span><span id="Column-1127"><a href="#Column-1127"><span class="linenos">1127</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Column-1128"><a href="#Column-1128"><span class="linenos">1128</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-1129"><a href="#Column-1129"><span class="linenos">1129</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-1130"><a href="#Column-1130"><span class="linenos">1130</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-1131"><a href="#Column-1131"><span class="linenos">1131</span></a>
+</span><span id="Column-1132"><a href="#Column-1132"><span class="linenos">1132</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="Column-1133"><a href="#Column-1133"><span class="linenos">1133</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-1134"><a href="#Column-1134"><span class="linenos">1134</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-1135"><a href="#Column-1135"><span class="linenos">1135</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-1136"><a href="#Column-1136"><span class="linenos">1136</span></a>
+</span><span id="Column-1137"><a href="#Column-1137"><span class="linenos">1137</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span></pre></div>
@@ -12674,17 +13459,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-1061"><a href="#Column.to_dot-1061"><span class="linenos">1061</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Column.to_dot-1062"><a href="#Column.to_dot-1062"><span class="linenos">1062</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-1063"><a href="#Column.to_dot-1063"><span class="linenos">1063</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-1064"><a href="#Column.to_dot-1064"><span class="linenos">1064</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-1065"><a href="#Column.to_dot-1065"><span class="linenos">1065</span></a>
-</span><span id="Column.to_dot-1066"><a href="#Column.to_dot-1066"><span class="linenos">1066</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="Column.to_dot-1067"><a href="#Column.to_dot-1067"><span class="linenos">1067</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-1068"><a href="#Column.to_dot-1068"><span class="linenos">1068</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-1069"><a href="#Column.to_dot-1069"><span class="linenos">1069</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-1070"><a href="#Column.to_dot-1070"><span class="linenos">1070</span></a>
-</span><span id="Column.to_dot-1071"><a href="#Column.to_dot-1071"><span class="linenos">1071</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.to_dot-1127"><a href="#Column.to_dot-1127"><span class="linenos">1127</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Column.to_dot-1128"><a href="#Column.to_dot-1128"><span class="linenos">1128</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-1129"><a href="#Column.to_dot-1129"><span class="linenos">1129</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-1130"><a href="#Column.to_dot-1130"><span class="linenos">1130</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-1131"><a href="#Column.to_dot-1131"><span class="linenos">1131</span></a>
+</span><span id="Column.to_dot-1132"><a href="#Column.to_dot-1132"><span class="linenos">1132</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="Column.to_dot-1133"><a href="#Column.to_dot-1133"><span class="linenos">1133</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-1134"><a href="#Column.to_dot-1134"><span class="linenos">1134</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-1135"><a href="#Column.to_dot-1135"><span class="linenos">1135</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-1136"><a href="#Column.to_dot-1136"><span class="linenos">1136</span></a>
+</span><span id="Column.to_dot-1137"><a href="#Column.to_dot-1137"><span class="linenos">1137</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span></pre></div>
@@ -12708,6 +13493,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Column.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Column.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Column.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Column.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Column.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12739,8 +13525,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Column.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Column.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Column.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Column.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Column.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Column.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Column.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Column.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Column.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Column.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -12762,8 +13550,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-1074"><a href="#ColumnPosition-1074"><span class="linenos">1074</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-1075"><a href="#ColumnPosition-1075"><span class="linenos">1075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1140"><a href="#ColumnPosition-1140"><span class="linenos">1140</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-1141"><a href="#ColumnPosition-1141"><span class="linenos">1141</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -12785,6 +13573,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnPosition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ColumnPosition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnPosition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnPosition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12826,14 +13615,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-1078"><a href="#ColumnDef-1078"><span class="linenos">1078</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-1079"><a href="#ColumnDef-1079"><span class="linenos">1079</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ColumnDef-1080"><a href="#ColumnDef-1080"><span class="linenos">1080</span></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-1081"><a href="#ColumnDef-1081"><span class="linenos">1081</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-1082"><a href="#ColumnDef-1082"><span class="linenos">1082</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-1083"><a href="#ColumnDef-1083"><span class="linenos">1083</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-1084"><a href="#ColumnDef-1084"><span class="linenos">1084</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-1085"><a href="#ColumnDef-1085"><span class="linenos">1085</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef-1144"><a href="#ColumnDef-1144"><span class="linenos">1144</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-1145"><a href="#ColumnDef-1145"><span class="linenos">1145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ColumnDef-1146"><a href="#ColumnDef-1146"><span class="linenos">1146</span></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-1147"><a href="#ColumnDef-1147"><span class="linenos">1147</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-1148"><a href="#ColumnDef-1148"><span class="linenos">1148</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-1149"><a href="#ColumnDef-1149"><span class="linenos">1149</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-1150"><a href="#ColumnDef-1150"><span class="linenos">1150</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-1151"><a href="#ColumnDef-1151"><span class="linenos">1151</span></a> <span class="p">}</span>
+</span><span id="ColumnDef-1152"><a href="#ColumnDef-1152"><span class="linenos">1152</span></a>
+</span><span id="ColumnDef-1153"><a href="#ColumnDef-1153"><span class="linenos">1153</span></a> <span class="nd">@property</span>
+</span><span id="ColumnDef-1154"><a href="#ColumnDef-1154"><span class="linenos">1154</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-1155"><a href="#ColumnDef-1155"><span class="linenos">1155</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>
@@ -12855,6 +13648,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnDef.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ColumnDef.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnDef.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnDef.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12896,15 +13690,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-1088"><a href="#AlterColumn-1088"><span class="linenos">1088</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-1089"><a href="#AlterColumn-1089"><span class="linenos">1089</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="AlterColumn-1090"><a href="#AlterColumn-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="AlterColumn-1091"><a href="#AlterColumn-1091"><span class="linenos">1091</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-1092"><a href="#AlterColumn-1092"><span class="linenos">1092</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-1093"><a href="#AlterColumn-1093"><span class="linenos">1093</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-1094"><a href="#AlterColumn-1094"><span class="linenos">1094</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-1095"><a href="#AlterColumn-1095"><span class="linenos">1095</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-1096"><a href="#AlterColumn-1096"><span class="linenos">1096</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-1158"><a href="#AlterColumn-1158"><span class="linenos">1158</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-1159"><a href="#AlterColumn-1159"><span class="linenos">1159</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="AlterColumn-1160"><a href="#AlterColumn-1160"><span class="linenos">1160</span></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-1161"><a href="#AlterColumn-1161"><span class="linenos">1161</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-1162"><a href="#AlterColumn-1162"><span class="linenos">1162</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-1163"><a href="#AlterColumn-1163"><span class="linenos">1163</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-1164"><a href="#AlterColumn-1164"><span class="linenos">1164</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-1165"><a href="#AlterColumn-1165"><span class="linenos">1165</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-1166"><a href="#AlterColumn-1166"><span class="linenos">1166</span></a> <span class="p">}</span>
</span></pre></div>
@@ -12926,6 +13720,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AlterColumn.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AlterColumn.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AlterColumn.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AlterColumn.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AlterColumn.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -12967,8 +13762,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-1099"><a href="#RenameTable-1099"><span class="linenos">1099</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-1100"><a href="#RenameTable-1100"><span class="linenos">1100</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-1169"><a href="#RenameTable-1169"><span class="linenos">1169</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-1170"><a href="#RenameTable-1170"><span class="linenos">1170</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12990,6 +13785,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RenameTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RenameTable.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RenameTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RenameTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RenameTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13031,8 +13827,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#SetTag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetTag-1103"><a href="#SetTag-1103"><span class="linenos">1103</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SetTag-1104"><a href="#SetTag-1104"><span class="linenos">1104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetTag-1173"><a href="#SetTag-1173"><span class="linenos">1173</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SetTag-1174"><a href="#SetTag-1174"><span class="linenos">1174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -13054,6 +13850,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SetTag.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetTag.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetTag.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SetTag.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SetTag.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetTag.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetTag.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13095,8 +13892,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-1107"><a href="#Comment-1107"><span class="linenos">1107</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-1108"><a href="#Comment-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;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-1177"><a href="#Comment-1177"><span class="linenos">1177</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-1178"><a href="#Comment-1178"><span class="linenos">1178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -13118,6 +13915,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comment.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Comment.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Comment.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Comment.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Comment.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13148,6 +13946,147 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</dl>
</div>
</section>
+ <section id="MergeTreeTTLAction">
+ <input id="MergeTreeTTLAction-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">MergeTreeTTLAction</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="MergeTreeTTLAction-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#MergeTreeTTLAction"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTLAction-1182"><a href="#MergeTreeTTLAction-1182"><span class="linenos">1182</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-1183"><a href="#MergeTreeTTLAction-1183"><span class="linenos">1183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MergeTreeTTLAction-1184"><a href="#MergeTreeTTLAction-1184"><span class="linenos">1184</span></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-1185"><a href="#MergeTreeTTLAction-1185"><span class="linenos">1185</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-1186"><a href="#MergeTreeTTLAction-1186"><span class="linenos">1186</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-1187"><a href="#MergeTreeTTLAction-1187"><span class="linenos">1187</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-1188"><a href="#MergeTreeTTLAction-1188"><span class="linenos">1188</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-1189"><a href="#MergeTreeTTLAction-1189"><span class="linenos">1189</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="MergeTreeTTLAction.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="MergeTreeTTLAction.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="MergeTreeTTLAction.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="MergeTreeTTLAction.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="MergeTreeTTLAction.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="MergeTreeTTLAction.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="MergeTreeTTLAction.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="MergeTreeTTLAction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="MergeTreeTTLAction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="MergeTreeTTLAction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MergeTreeTTLAction.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="MergeTreeTTLAction.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="MergeTreeTTLAction.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="MergeTreeTTLAction.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="MergeTreeTTLAction.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="MergeTreeTTLAction.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="MergeTreeTTLAction.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="MergeTreeTTLAction.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="MergeTreeTTLAction.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="MergeTreeTTLAction.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="MergeTreeTTLAction.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="MergeTreeTTLAction.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="MergeTreeTTLAction.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="MergeTreeTTLAction.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="MergeTreeTTLAction.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="MergeTreeTTLAction.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="MergeTreeTTLAction.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="MergeTreeTTLAction.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="MergeTreeTTLAction.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="MergeTreeTTLAction.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="MergeTreeTTL">
+ <input id="MergeTreeTTL-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">MergeTreeTTL</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="MergeTreeTTL-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#MergeTreeTTL"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTL-1193"><a href="#MergeTreeTTL-1193"><span class="linenos">1193</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-1194"><a href="#MergeTreeTTL-1194"><span class="linenos">1194</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MergeTreeTTL-1195"><a href="#MergeTreeTTL-1195"><span class="linenos">1195</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-1196"><a href="#MergeTreeTTL-1196"><span class="linenos">1196</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-1197"><a href="#MergeTreeTTL-1197"><span class="linenos">1197</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-1198"><a href="#MergeTreeTTL-1198"><span class="linenos">1198</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-1199"><a href="#MergeTreeTTL-1199"><span class="linenos">1199</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="MergeTreeTTL.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="MergeTreeTTL.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="MergeTreeTTL.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="MergeTreeTTL.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="MergeTreeTTL.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="MergeTreeTTL.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="MergeTreeTTL.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="MergeTreeTTL.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="MergeTreeTTL.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="MergeTreeTTL.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MergeTreeTTL.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="MergeTreeTTL.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="MergeTreeTTL.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="MergeTreeTTL.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="MergeTreeTTL.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="MergeTreeTTL.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="MergeTreeTTL.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="MergeTreeTTL.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="MergeTreeTTL.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="MergeTreeTTL.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="MergeTreeTTL.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="MergeTreeTTL.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="MergeTreeTTL.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="MergeTreeTTL.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="MergeTreeTTL.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="MergeTreeTTL.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="MergeTreeTTL.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="MergeTreeTTL.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="MergeTreeTTL.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="MergeTreeTTL.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="ColumnConstraint">
<input id="ColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -13159,8 +14098,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-1111"><a href="#ColumnConstraint-1111"><span class="linenos">1111</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-1112"><a href="#ColumnConstraint-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">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-1202"><a href="#ColumnConstraint-1202"><span class="linenos">1202</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-1203"><a href="#ColumnConstraint-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">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-1204"><a href="#ColumnConstraint-1204"><span class="linenos">1204</span></a>
+</span><span id="ColumnConstraint-1205"><a href="#ColumnConstraint-1205"><span class="linenos">1205</span></a> <span class="nd">@property</span>
+</span><span id="ColumnConstraint-1206"><a href="#ColumnConstraint-1206"><span class="linenos">1206</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-1207"><a href="#ColumnConstraint-1207"><span class="linenos">1207</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>
@@ -13182,6 +14125,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13223,8 +14167,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-1115"><a href="#ColumnConstraintKind-1115"><span class="linenos">1115</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-1116"><a href="#ColumnConstraintKind-1116"><span class="linenos">1116</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-1210"><a href="#ColumnConstraintKind-1210"><span class="linenos">1210</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-1211"><a href="#ColumnConstraintKind-1211"><span class="linenos">1211</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13246,6 +14190,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraintKind.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnConstraintKind.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ColumnConstraintKind.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnConstraintKind.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnConstraintKind.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13287,8 +14232,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-1119"><a href="#AutoIncrementColumnConstraint-1119"><span class="linenos">1119</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-1120"><a href="#AutoIncrementColumnConstraint-1120"><span class="linenos">1120</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-1214"><a href="#AutoIncrementColumnConstraint-1214"><span class="linenos">1214</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-1215"><a href="#AutoIncrementColumnConstraint-1215"><span class="linenos">1215</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13310,6 +14255,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AutoIncrementColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AutoIncrementColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AutoIncrementColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AutoIncrementColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AutoIncrementColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13351,8 +14297,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-1123"><a href="#CaseSpecificColumnConstraint-1123"><span class="linenos">1123</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-1124"><a href="#CaseSpecificColumnConstraint-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;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-1218"><a href="#CaseSpecificColumnConstraint-1218"><span class="linenos">1218</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-1219"><a href="#CaseSpecificColumnConstraint-1219"><span class="linenos">1219</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -13374,6 +14320,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CaseSpecificColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CaseSpecificColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CaseSpecificColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CaseSpecificColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CaseSpecificColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13415,8 +14362,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-1127"><a href="#CharacterSetColumnConstraint-1127"><span class="linenos">1127</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-1128"><a href="#CharacterSetColumnConstraint-1128"><span class="linenos">1128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1222"><a href="#CharacterSetColumnConstraint-1222"><span class="linenos">1222</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-1223"><a href="#CharacterSetColumnConstraint-1223"><span class="linenos">1223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -13438,6 +14385,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSetColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CharacterSetColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CharacterSetColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CharacterSetColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CharacterSetColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13479,8 +14427,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-1131"><a href="#CheckColumnConstraint-1131"><span class="linenos">1131</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-1132"><a href="#CheckColumnConstraint-1132"><span class="linenos">1132</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-1226"><a href="#CheckColumnConstraint-1226"><span class="linenos">1226</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-1227"><a href="#CheckColumnConstraint-1227"><span class="linenos">1227</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13502,6 +14450,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CheckColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CheckColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CheckColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CheckColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CheckColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13543,8 +14492,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-1135"><a href="#CollateColumnConstraint-1135"><span class="linenos">1135</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-1136"><a href="#CollateColumnConstraint-1136"><span class="linenos">1136</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-1230"><a href="#CollateColumnConstraint-1230"><span class="linenos">1230</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-1231"><a href="#CollateColumnConstraint-1231"><span class="linenos">1231</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13566,6 +14515,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CollateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CollateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CollateColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CollateColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CollateColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13607,8 +14557,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-1139"><a href="#CommentColumnConstraint-1139"><span class="linenos">1139</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-1140"><a href="#CommentColumnConstraint-1140"><span class="linenos">1140</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-1234"><a href="#CommentColumnConstraint-1234"><span class="linenos">1234</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-1235"><a href="#CommentColumnConstraint-1235"><span class="linenos">1235</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13630,6 +14580,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CommentColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CommentColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CommentColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CommentColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CommentColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13671,8 +14622,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-1143"><a href="#CompressColumnConstraint-1143"><span class="linenos">1143</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-1144"><a href="#CompressColumnConstraint-1144"><span class="linenos">1144</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-1238"><a href="#CompressColumnConstraint-1238"><span class="linenos">1238</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-1239"><a href="#CompressColumnConstraint-1239"><span class="linenos">1239</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13694,6 +14645,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CompressColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CompressColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CompressColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CompressColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CompressColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13735,8 +14687,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-1147"><a href="#DateFormatColumnConstraint-1147"><span class="linenos">1147</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-1148"><a href="#DateFormatColumnConstraint-1148"><span class="linenos">1148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1242"><a href="#DateFormatColumnConstraint-1242"><span class="linenos">1242</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-1243"><a href="#DateFormatColumnConstraint-1243"><span class="linenos">1243</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -13758,6 +14710,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DateFormatColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateFormatColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateFormatColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateFormatColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateFormatColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13799,8 +14752,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-1151"><a href="#DefaultColumnConstraint-1151"><span class="linenos">1151</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-1152"><a href="#DefaultColumnConstraint-1152"><span class="linenos">1152</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-1246"><a href="#DefaultColumnConstraint-1246"><span class="linenos">1246</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-1247"><a href="#DefaultColumnConstraint-1247"><span class="linenos">1247</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13822,6 +14775,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DefaultColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DefaultColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DefaultColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DefaultColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DefaultColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13863,8 +14817,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-1155"><a href="#EncodeColumnConstraint-1155"><span class="linenos">1155</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-1156"><a href="#EncodeColumnConstraint-1156"><span class="linenos">1156</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-1250"><a href="#EncodeColumnConstraint-1250"><span class="linenos">1250</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-1251"><a href="#EncodeColumnConstraint-1251"><span class="linenos">1251</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13886,6 +14840,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="EncodeColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="EncodeColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="EncodeColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="EncodeColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="EncodeColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13927,16 +14882,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-1159"><a href="#GeneratedAsIdentityColumnConstraint-1159"><span class="linenos">1159</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-1160"><a href="#GeneratedAsIdentityColumnConstraint-1160"><span class="linenos">1160</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1161"><a href="#GeneratedAsIdentityColumnConstraint-1161"><span class="linenos">1161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1162"><a href="#GeneratedAsIdentityColumnConstraint-1162"><span class="linenos">1162</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-1163"><a href="#GeneratedAsIdentityColumnConstraint-1163"><span class="linenos">1163</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-1164"><a href="#GeneratedAsIdentityColumnConstraint-1164"><span class="linenos">1164</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-1165"><a href="#GeneratedAsIdentityColumnConstraint-1165"><span class="linenos">1165</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-1166"><a href="#GeneratedAsIdentityColumnConstraint-1166"><span class="linenos">1166</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-1167"><a href="#GeneratedAsIdentityColumnConstraint-1167"><span class="linenos">1167</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-1168"><a href="#GeneratedAsIdentityColumnConstraint-1168"><span class="linenos">1168</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-1254"><a href="#GeneratedAsIdentityColumnConstraint-1254"><span class="linenos">1254</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-1255"><a href="#GeneratedAsIdentityColumnConstraint-1255"><span class="linenos">1255</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1256"><a href="#GeneratedAsIdentityColumnConstraint-1256"><span class="linenos">1256</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1257"><a href="#GeneratedAsIdentityColumnConstraint-1257"><span class="linenos">1257</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-1258"><a href="#GeneratedAsIdentityColumnConstraint-1258"><span class="linenos">1258</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-1259"><a href="#GeneratedAsIdentityColumnConstraint-1259"><span class="linenos">1259</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-1260"><a href="#GeneratedAsIdentityColumnConstraint-1260"><span class="linenos">1260</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-1261"><a href="#GeneratedAsIdentityColumnConstraint-1261"><span class="linenos">1261</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-1262"><a href="#GeneratedAsIdentityColumnConstraint-1262"><span class="linenos">1262</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-1263"><a href="#GeneratedAsIdentityColumnConstraint-1263"><span class="linenos">1263</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-1264"><a href="#GeneratedAsIdentityColumnConstraint-1264"><span class="linenos">1264</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-1265"><a href="#GeneratedAsIdentityColumnConstraint-1265"><span class="linenos">1265</span></a> <span class="p">}</span>
</span></pre></div>
@@ -13958,6 +14915,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsIdentityColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="GeneratedAsIdentityColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -13999,8 +14957,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-1171"><a href="#InlineLengthColumnConstraint-1171"><span class="linenos">1171</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-1172"><a href="#InlineLengthColumnConstraint-1172"><span class="linenos">1172</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1268"><a href="#InlineLengthColumnConstraint-1268"><span class="linenos">1268</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-1269"><a href="#InlineLengthColumnConstraint-1269"><span class="linenos">1269</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -14022,6 +14980,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="InlineLengthColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="InlineLengthColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="InlineLengthColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="InlineLengthColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="InlineLengthColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14063,8 +15022,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-1175"><a href="#NotNullColumnConstraint-1175"><span class="linenos">1175</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-1176"><a href="#NotNullColumnConstraint-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;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-1272"><a href="#NotNullColumnConstraint-1272"><span class="linenos">1272</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-1273"><a href="#NotNullColumnConstraint-1273"><span class="linenos">1273</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>
@@ -14086,6 +15045,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotNullColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NotNullColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NotNullColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NotNullColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NotNullColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14127,8 +15087,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-1180"><a href="#OnUpdateColumnConstraint-1180"><span class="linenos">1180</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-1181"><a href="#OnUpdateColumnConstraint-1181"><span class="linenos">1181</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnUpdateColumnConstraint-1277"><a href="#OnUpdateColumnConstraint-1277"><span class="linenos">1277</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-1278"><a href="#OnUpdateColumnConstraint-1278"><span class="linenos">1278</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -14150,6 +15110,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="OnUpdateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OnUpdateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnUpdateColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="OnUpdateColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OnUpdateColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OnUpdateColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OnUpdateColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14191,8 +15152,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-1184"><a href="#PrimaryKeyColumnConstraint-1184"><span class="linenos">1184</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-1185"><a href="#PrimaryKeyColumnConstraint-1185"><span class="linenos">1185</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-1281"><a href="#PrimaryKeyColumnConstraint-1281"><span class="linenos">1281</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-1282"><a href="#PrimaryKeyColumnConstraint-1282"><span class="linenos">1282</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>
@@ -14214,6 +15175,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKeyColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PrimaryKeyColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PrimaryKeyColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PrimaryKeyColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PrimaryKeyColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14255,8 +15217,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-1188"><a href="#TitleColumnConstraint-1188"><span class="linenos">1188</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-1189"><a href="#TitleColumnConstraint-1189"><span class="linenos">1189</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1285"><a href="#TitleColumnConstraint-1285"><span class="linenos">1285</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-1286"><a href="#TitleColumnConstraint-1286"><span class="linenos">1286</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -14278,6 +15240,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TitleColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TitleColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TitleColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TitleColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TitleColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14319,8 +15282,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-1192"><a href="#UniqueColumnConstraint-1192"><span class="linenos">1192</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-1193"><a href="#UniqueColumnConstraint-1193"><span class="linenos">1193</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UniqueColumnConstraint-1289"><a href="#UniqueColumnConstraint-1289"><span class="linenos">1289</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-1290"><a href="#UniqueColumnConstraint-1290"><span class="linenos">1290</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>
@@ -14342,6 +15305,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UniqueColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UniqueColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UniqueColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UniqueColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UniqueColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14383,8 +15347,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-1196"><a href="#UppercaseColumnConstraint-1196"><span class="linenos">1196</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-1197"><a href="#UppercaseColumnConstraint-1197"><span class="linenos">1197</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-1293"><a href="#UppercaseColumnConstraint-1293"><span class="linenos">1293</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-1294"><a href="#UppercaseColumnConstraint-1294"><span class="linenos">1294</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>
@@ -14406,6 +15370,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UppercaseColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UppercaseColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UppercaseColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UppercaseColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UppercaseColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14447,8 +15412,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-1200"><a href="#PathColumnConstraint-1200"><span class="linenos">1200</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-1201"><a href="#PathColumnConstraint-1201"><span class="linenos">1201</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1297"><a href="#PathColumnConstraint-1297"><span class="linenos">1297</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-1298"><a href="#PathColumnConstraint-1298"><span class="linenos">1298</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -14470,6 +15435,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PathColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PathColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PathColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PathColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PathColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14511,8 +15477,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-1204"><a href="#Constraint-1204"><span class="linenos">1204</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-1205"><a href="#Constraint-1205"><span class="linenos">1205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-1301"><a href="#Constraint-1301"><span class="linenos">1301</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-1302"><a href="#Constraint-1302"><span class="linenos">1302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -14534,6 +15500,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Constraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Constraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Constraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Constraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Constraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14575,115 +15542,115 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1208"><a href="#Delete-1208"><span class="linenos">1208</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Delete-1209"><a href="#Delete-1209"><span class="linenos">1209</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Delete-1210"><a href="#Delete-1210"><span class="linenos">1210</span></a>
-</span><span id="Delete-1211"><a href="#Delete-1211"><span class="linenos">1211</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="Delete-1212"><a href="#Delete-1212"><span class="linenos">1212</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1213"><a href="#Delete-1213"><span class="linenos">1213</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete-1214"><a href="#Delete-1214"><span class="linenos">1214</span></a> <span class="n">dialect</span><span 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-1215"><a href="#Delete-1215"><span class="linenos">1215</span></a> <span class="n">copy</span><span 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-1216"><a href="#Delete-1216"><span class="linenos">1216</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1217"><a href="#Delete-1217"><span class="linenos">1217</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1218"><a href="#Delete-1218"><span class="linenos">1218</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1219"><a href="#Delete-1219"><span class="linenos">1219</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="Delete-1220"><a href="#Delete-1220"><span class="linenos">1220</span></a>
-</span><span id="Delete-1221"><a href="#Delete-1221"><span class="linenos">1221</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1222"><a href="#Delete-1222"><span class="linenos">1222</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="Delete-1223"><a href="#Delete-1223"><span class="linenos">1223</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
-</span><span id="Delete-1224"><a href="#Delete-1224"><span class="linenos">1224</span></a>
-</span><span id="Delete-1225"><a href="#Delete-1225"><span class="linenos">1225</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1226"><a href="#Delete-1226"><span class="linenos">1226</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="Delete-1227"><a href="#Delete-1227"><span class="linenos">1227</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Delete-1228"><a href="#Delete-1228"><span class="linenos">1228</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1229"><a href="#Delete-1229"><span class="linenos">1229</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1230"><a href="#Delete-1230"><span class="linenos">1230</span></a>
-</span><span id="Delete-1231"><a href="#Delete-1231"><span class="linenos">1231</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1232"><a href="#Delete-1232"><span class="linenos">1232</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1233"><a href="#Delete-1233"><span class="linenos">1233</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1234"><a href="#Delete-1234"><span class="linenos">1234</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete-1235"><a href="#Delete-1235"><span class="linenos">1235</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="Delete-1236"><a href="#Delete-1236"><span class="linenos">1236</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1237"><a href="#Delete-1237"><span class="linenos">1237</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-1238"><a href="#Delete-1238"><span class="linenos">1238</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1239"><a href="#Delete-1239"><span class="linenos">1239</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Delete-1240"><a href="#Delete-1240"><span class="linenos">1240</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1241"><a href="#Delete-1241"><span class="linenos">1241</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1242"><a href="#Delete-1242"><span class="linenos">1242</span></a> <span class="p">)</span>
-</span><span id="Delete-1243"><a href="#Delete-1243"><span class="linenos">1243</span></a>
-</span><span id="Delete-1244"><a href="#Delete-1244"><span class="linenos">1244</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Delete-1245"><a href="#Delete-1245"><span class="linenos">1245</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1246"><a href="#Delete-1246"><span class="linenos">1246</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete-1247"><a href="#Delete-1247"><span class="linenos">1247</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-1248"><a href="#Delete-1248"><span class="linenos">1248</span></a> <span class="n">dialect</span><span 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-1249"><a href="#Delete-1249"><span class="linenos">1249</span></a> <span class="n">copy</span><span 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-1250"><a href="#Delete-1250"><span class="linenos">1250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1251"><a href="#Delete-1251"><span class="linenos">1251</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1252"><a href="#Delete-1252"><span class="linenos">1252</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1253"><a href="#Delete-1253"><span class="linenos">1253</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Delete-1254"><a href="#Delete-1254"><span class="linenos">1254</span></a>
-</span><span id="Delete-1255"><a href="#Delete-1255"><span class="linenos">1255</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1256"><a href="#Delete-1256"><span class="linenos">1256</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-1257"><a href="#Delete-1257"><span class="linenos">1257</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-1258"><a href="#Delete-1258"><span class="linenos">1258</span></a>
-</span><span id="Delete-1259"><a href="#Delete-1259"><span class="linenos">1259</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1260"><a href="#Delete-1260"><span class="linenos">1260</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Delete-1261"><a href="#Delete-1261"><span class="linenos">1261</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete-1262"><a href="#Delete-1262"><span class="linenos">1262</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Delete-1263"><a href="#Delete-1263"><span class="linenos">1263</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Delete-1264"><a href="#Delete-1264"><span class="linenos">1264</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Delete-1265"><a href="#Delete-1265"><span class="linenos">1265</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete-1266"><a href="#Delete-1266"><span class="linenos">1266</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1267"><a href="#Delete-1267"><span class="linenos">1267</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1268"><a href="#Delete-1268"><span class="linenos">1268</span></a>
-</span><span id="Delete-1269"><a href="#Delete-1269"><span class="linenos">1269</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1270"><a href="#Delete-1270"><span class="linenos">1270</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1271"><a href="#Delete-1271"><span class="linenos">1271</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1272"><a href="#Delete-1272"><span class="linenos">1272</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Delete-1273"><a href="#Delete-1273"><span class="linenos">1273</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Delete-1274"><a href="#Delete-1274"><span class="linenos">1274</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1275"><a href="#Delete-1275"><span class="linenos">1275</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-1276"><a href="#Delete-1276"><span class="linenos">1276</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Delete-1277"><a href="#Delete-1277"><span class="linenos">1277</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Delete-1278"><a href="#Delete-1278"><span class="linenos">1278</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1279"><a href="#Delete-1279"><span class="linenos">1279</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1280"><a href="#Delete-1280"><span class="linenos">1280</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1281"><a href="#Delete-1281"><span class="linenos">1281</span></a> <span class="p">)</span>
-</span><span id="Delete-1282"><a href="#Delete-1282"><span class="linenos">1282</span></a>
-</span><span id="Delete-1283"><a href="#Delete-1283"><span class="linenos">1283</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="Delete-1284"><a href="#Delete-1284"><span class="linenos">1284</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1285"><a href="#Delete-1285"><span class="linenos">1285</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete-1286"><a href="#Delete-1286"><span class="linenos">1286</span></a> <span class="n">dialect</span><span 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-1287"><a href="#Delete-1287"><span class="linenos">1287</span></a> <span class="n">copy</span><span 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-1288"><a href="#Delete-1288"><span class="linenos">1288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1289"><a href="#Delete-1289"><span class="linenos">1289</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1290"><a href="#Delete-1290"><span class="linenos">1290</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1291"><a href="#Delete-1291"><span class="linenos">1291</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="Delete-1292"><a href="#Delete-1292"><span class="linenos">1292</span></a>
-</span><span id="Delete-1293"><a href="#Delete-1293"><span class="linenos">1293</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1294"><a href="#Delete-1294"><span class="linenos">1294</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="Delete-1295"><a href="#Delete-1295"><span class="linenos">1295</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
-</span><span id="Delete-1296"><a href="#Delete-1296"><span class="linenos">1296</span></a>
-</span><span id="Delete-1297"><a href="#Delete-1297"><span class="linenos">1297</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1298"><a href="#Delete-1298"><span class="linenos">1298</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="Delete-1299"><a href="#Delete-1299"><span class="linenos">1299</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete-1300"><a href="#Delete-1300"><span class="linenos">1300</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete-1301"><a href="#Delete-1301"><span class="linenos">1301</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1302"><a href="#Delete-1302"><span class="linenos">1302</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1303"><a href="#Delete-1303"><span class="linenos">1303</span></a>
-</span><span id="Delete-1304"><a href="#Delete-1304"><span class="linenos">1304</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1305"><a href="#Delete-1305"><span class="linenos">1305</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1306"><a href="#Delete-1306"><span class="linenos">1306</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1307"><a href="#Delete-1307"><span class="linenos">1307</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete-1308"><a href="#Delete-1308"><span class="linenos">1308</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Delete-1309"><a href="#Delete-1309"><span class="linenos">1309</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1310"><a href="#Delete-1310"><span class="linenos">1310</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
-</span><span id="Delete-1311"><a href="#Delete-1311"><span class="linenos">1311</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
-</span><span id="Delete-1312"><a href="#Delete-1312"><span class="linenos">1312</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1313"><a href="#Delete-1313"><span class="linenos">1313</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1314"><a href="#Delete-1314"><span class="linenos">1314</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="Delete-1315"><a href="#Delete-1315"><span class="linenos">1315</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1316"><a href="#Delete-1316"><span class="linenos">1316</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1305"><a href="#Delete-1305"><span class="linenos">1305</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Delete-1306"><a href="#Delete-1306"><span class="linenos">1306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Delete-1307"><a href="#Delete-1307"><span class="linenos">1307</span></a>
+</span><span id="Delete-1308"><a href="#Delete-1308"><span class="linenos">1308</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="Delete-1309"><a href="#Delete-1309"><span class="linenos">1309</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1310"><a href="#Delete-1310"><span class="linenos">1310</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete-1311"><a href="#Delete-1311"><span class="linenos">1311</span></a> <span class="n">dialect</span><span 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-1312"><a href="#Delete-1312"><span class="linenos">1312</span></a> <span class="n">copy</span><span 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-1313"><a href="#Delete-1313"><span class="linenos">1313</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1314"><a href="#Delete-1314"><span class="linenos">1314</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1315"><a href="#Delete-1315"><span class="linenos">1315</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1316"><a href="#Delete-1316"><span class="linenos">1316</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
+</span><span id="Delete-1317"><a href="#Delete-1317"><span class="linenos">1317</span></a>
+</span><span id="Delete-1318"><a href="#Delete-1318"><span class="linenos">1318</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1319"><a href="#Delete-1319"><span class="linenos">1319</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="Delete-1320"><a href="#Delete-1320"><span class="linenos">1320</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="Delete-1321"><a href="#Delete-1321"><span class="linenos">1321</span></a>
+</span><span id="Delete-1322"><a href="#Delete-1322"><span class="linenos">1322</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1323"><a href="#Delete-1323"><span class="linenos">1323</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="Delete-1324"><a href="#Delete-1324"><span class="linenos">1324</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Delete-1325"><a href="#Delete-1325"><span class="linenos">1325</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1326"><a href="#Delete-1326"><span class="linenos">1326</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1327"><a href="#Delete-1327"><span class="linenos">1327</span></a>
+</span><span id="Delete-1328"><a href="#Delete-1328"><span class="linenos">1328</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1329"><a href="#Delete-1329"><span class="linenos">1329</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1330"><a href="#Delete-1330"><span class="linenos">1330</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1331"><a href="#Delete-1331"><span class="linenos">1331</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete-1332"><a href="#Delete-1332"><span class="linenos">1332</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="Delete-1333"><a href="#Delete-1333"><span class="linenos">1333</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1334"><a href="#Delete-1334"><span class="linenos">1334</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-1335"><a href="#Delete-1335"><span class="linenos">1335</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1336"><a href="#Delete-1336"><span class="linenos">1336</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Delete-1337"><a href="#Delete-1337"><span class="linenos">1337</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1338"><a href="#Delete-1338"><span class="linenos">1338</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1339"><a href="#Delete-1339"><span class="linenos">1339</span></a> <span class="p">)</span>
+</span><span id="Delete-1340"><a href="#Delete-1340"><span class="linenos">1340</span></a>
+</span><span id="Delete-1341"><a href="#Delete-1341"><span class="linenos">1341</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Delete-1342"><a href="#Delete-1342"><span class="linenos">1342</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1343"><a href="#Delete-1343"><span class="linenos">1343</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-1344"><a href="#Delete-1344"><span class="linenos">1344</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-1345"><a href="#Delete-1345"><span class="linenos">1345</span></a> <span class="n">dialect</span><span 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-1346"><a href="#Delete-1346"><span class="linenos">1346</span></a> <span class="n">copy</span><span 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-1347"><a href="#Delete-1347"><span class="linenos">1347</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1348"><a href="#Delete-1348"><span class="linenos">1348</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1349"><a href="#Delete-1349"><span class="linenos">1349</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1350"><a href="#Delete-1350"><span class="linenos">1350</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Delete-1351"><a href="#Delete-1351"><span class="linenos">1351</span></a>
+</span><span id="Delete-1352"><a href="#Delete-1352"><span class="linenos">1352</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1353"><a href="#Delete-1353"><span class="linenos">1353</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-1354"><a href="#Delete-1354"><span class="linenos">1354</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-1355"><a href="#Delete-1355"><span class="linenos">1355</span></a>
+</span><span id="Delete-1356"><a href="#Delete-1356"><span class="linenos">1356</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1357"><a href="#Delete-1357"><span class="linenos">1357</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Delete-1358"><a href="#Delete-1358"><span class="linenos">1358</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete-1359"><a href="#Delete-1359"><span class="linenos">1359</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Delete-1360"><a href="#Delete-1360"><span class="linenos">1360</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Delete-1361"><a href="#Delete-1361"><span class="linenos">1361</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Delete-1362"><a href="#Delete-1362"><span class="linenos">1362</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete-1363"><a href="#Delete-1363"><span class="linenos">1363</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1364"><a href="#Delete-1364"><span class="linenos">1364</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1365"><a href="#Delete-1365"><span class="linenos">1365</span></a>
+</span><span id="Delete-1366"><a href="#Delete-1366"><span class="linenos">1366</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1367"><a href="#Delete-1367"><span class="linenos">1367</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1368"><a href="#Delete-1368"><span class="linenos">1368</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1369"><a href="#Delete-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Delete-1370"><a href="#Delete-1370"><span class="linenos">1370</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Delete-1371"><a href="#Delete-1371"><span class="linenos">1371</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1372"><a href="#Delete-1372"><span class="linenos">1372</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-1373"><a href="#Delete-1373"><span class="linenos">1373</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Delete-1374"><a href="#Delete-1374"><span class="linenos">1374</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Delete-1375"><a href="#Delete-1375"><span class="linenos">1375</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1376"><a href="#Delete-1376"><span class="linenos">1376</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1377"><a href="#Delete-1377"><span class="linenos">1377</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1378"><a href="#Delete-1378"><span class="linenos">1378</span></a> <span class="p">)</span>
+</span><span id="Delete-1379"><a href="#Delete-1379"><span class="linenos">1379</span></a>
+</span><span id="Delete-1380"><a href="#Delete-1380"><span class="linenos">1380</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="Delete-1381"><a href="#Delete-1381"><span class="linenos">1381</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1382"><a href="#Delete-1382"><span class="linenos">1382</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete-1383"><a href="#Delete-1383"><span class="linenos">1383</span></a> <span class="n">dialect</span><span 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-1384"><a href="#Delete-1384"><span class="linenos">1384</span></a> <span class="n">copy</span><span 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-1385"><a href="#Delete-1385"><span class="linenos">1385</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1386"><a href="#Delete-1386"><span class="linenos">1386</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1387"><a href="#Delete-1387"><span class="linenos">1387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1388"><a href="#Delete-1388"><span class="linenos">1388</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
+</span><span id="Delete-1389"><a href="#Delete-1389"><span class="linenos">1389</span></a>
+</span><span id="Delete-1390"><a href="#Delete-1390"><span class="linenos">1390</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1391"><a href="#Delete-1391"><span class="linenos">1391</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="Delete-1392"><a href="#Delete-1392"><span class="linenos">1392</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="Delete-1393"><a href="#Delete-1393"><span class="linenos">1393</span></a>
+</span><span id="Delete-1394"><a href="#Delete-1394"><span class="linenos">1394</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1395"><a href="#Delete-1395"><span class="linenos">1395</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="Delete-1396"><a href="#Delete-1396"><span class="linenos">1396</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete-1397"><a href="#Delete-1397"><span class="linenos">1397</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete-1398"><a href="#Delete-1398"><span class="linenos">1398</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1399"><a href="#Delete-1399"><span class="linenos">1399</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1400"><a href="#Delete-1400"><span class="linenos">1400</span></a>
+</span><span id="Delete-1401"><a href="#Delete-1401"><span class="linenos">1401</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1402"><a href="#Delete-1402"><span class="linenos">1402</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1403"><a href="#Delete-1403"><span class="linenos">1403</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1404"><a href="#Delete-1404"><span class="linenos">1404</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete-1405"><a href="#Delete-1405"><span class="linenos">1405</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Delete-1406"><a href="#Delete-1406"><span class="linenos">1406</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1407"><a href="#Delete-1407"><span class="linenos">1407</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
+</span><span id="Delete-1408"><a href="#Delete-1408"><span class="linenos">1408</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
+</span><span id="Delete-1409"><a href="#Delete-1409"><span class="linenos">1409</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1410"><a href="#Delete-1410"><span class="linenos">1410</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1411"><a href="#Delete-1411"><span class="linenos">1411</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="Delete-1412"><a href="#Delete-1412"><span class="linenos">1412</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1413"><a href="#Delete-1413"><span class="linenos">1413</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14700,38 +15667,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-1211"><a href="#Delete.delete-1211"><span class="linenos">1211</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="Delete.delete-1212"><a href="#Delete.delete-1212"><span class="linenos">1212</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.delete-1213"><a href="#Delete.delete-1213"><span class="linenos">1213</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-1214"><a href="#Delete.delete-1214"><span class="linenos">1214</span></a> <span class="n">dialect</span><span 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-1215"><a href="#Delete.delete-1215"><span class="linenos">1215</span></a> <span class="n">copy</span><span 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-1216"><a href="#Delete.delete-1216"><span class="linenos">1216</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.delete-1217"><a href="#Delete.delete-1217"><span class="linenos">1217</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-1218"><a href="#Delete.delete-1218"><span class="linenos">1218</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.delete-1219"><a href="#Delete.delete-1219"><span class="linenos">1219</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="Delete.delete-1220"><a href="#Delete.delete-1220"><span class="linenos">1220</span></a>
-</span><span id="Delete.delete-1221"><a href="#Delete.delete-1221"><span class="linenos">1221</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.delete-1222"><a href="#Delete.delete-1222"><span class="linenos">1222</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="Delete.delete-1223"><a href="#Delete.delete-1223"><span class="linenos">1223</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
-</span><span id="Delete.delete-1224"><a href="#Delete.delete-1224"><span class="linenos">1224</span></a>
-</span><span id="Delete.delete-1225"><a href="#Delete.delete-1225"><span class="linenos">1225</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.delete-1226"><a href="#Delete.delete-1226"><span class="linenos">1226</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="Delete.delete-1227"><a href="#Delete.delete-1227"><span class="linenos">1227</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Delete.delete-1228"><a href="#Delete.delete-1228"><span class="linenos">1228</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.delete-1229"><a href="#Delete.delete-1229"><span class="linenos">1229</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.delete-1230"><a href="#Delete.delete-1230"><span class="linenos">1230</span></a>
-</span><span id="Delete.delete-1231"><a href="#Delete.delete-1231"><span class="linenos">1231</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.delete-1232"><a href="#Delete.delete-1232"><span class="linenos">1232</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.delete-1233"><a href="#Delete.delete-1233"><span class="linenos">1233</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.delete-1234"><a href="#Delete.delete-1234"><span class="linenos">1234</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete.delete-1235"><a href="#Delete.delete-1235"><span class="linenos">1235</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-1236"><a href="#Delete.delete-1236"><span class="linenos">1236</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-1237"><a href="#Delete.delete-1237"><span class="linenos">1237</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-1238"><a href="#Delete.delete-1238"><span class="linenos">1238</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-1239"><a href="#Delete.delete-1239"><span class="linenos">1239</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-1240"><a href="#Delete.delete-1240"><span class="linenos">1240</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-1241"><a href="#Delete.delete-1241"><span class="linenos">1241</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.delete-1242"><a href="#Delete.delete-1242"><span class="linenos">1242</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.delete-1308"><a href="#Delete.delete-1308"><span class="linenos">1308</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="Delete.delete-1309"><a href="#Delete.delete-1309"><span class="linenos">1309</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.delete-1310"><a href="#Delete.delete-1310"><span class="linenos">1310</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-1311"><a href="#Delete.delete-1311"><span class="linenos">1311</span></a> <span class="n">dialect</span><span 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-1312"><a href="#Delete.delete-1312"><span class="linenos">1312</span></a> <span class="n">copy</span><span 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-1313"><a href="#Delete.delete-1313"><span class="linenos">1313</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.delete-1314"><a href="#Delete.delete-1314"><span class="linenos">1314</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-1315"><a href="#Delete.delete-1315"><span class="linenos">1315</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.delete-1316"><a href="#Delete.delete-1316"><span class="linenos">1316</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
+</span><span id="Delete.delete-1317"><a href="#Delete.delete-1317"><span class="linenos">1317</span></a>
+</span><span id="Delete.delete-1318"><a href="#Delete.delete-1318"><span class="linenos">1318</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.delete-1319"><a href="#Delete.delete-1319"><span class="linenos">1319</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="Delete.delete-1320"><a href="#Delete.delete-1320"><span class="linenos">1320</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="Delete.delete-1321"><a href="#Delete.delete-1321"><span class="linenos">1321</span></a>
+</span><span id="Delete.delete-1322"><a href="#Delete.delete-1322"><span class="linenos">1322</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.delete-1323"><a href="#Delete.delete-1323"><span class="linenos">1323</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="Delete.delete-1324"><a href="#Delete.delete-1324"><span class="linenos">1324</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Delete.delete-1325"><a href="#Delete.delete-1325"><span class="linenos">1325</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.delete-1326"><a href="#Delete.delete-1326"><span class="linenos">1326</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.delete-1327"><a href="#Delete.delete-1327"><span class="linenos">1327</span></a>
+</span><span id="Delete.delete-1328"><a href="#Delete.delete-1328"><span class="linenos">1328</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.delete-1329"><a href="#Delete.delete-1329"><span class="linenos">1329</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.delete-1330"><a href="#Delete.delete-1330"><span class="linenos">1330</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.delete-1331"><a href="#Delete.delete-1331"><span class="linenos">1331</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete.delete-1332"><a href="#Delete.delete-1332"><span class="linenos">1332</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-1333"><a href="#Delete.delete-1333"><span class="linenos">1333</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-1334"><a href="#Delete.delete-1334"><span class="linenos">1334</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-1335"><a href="#Delete.delete-1335"><span class="linenos">1335</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-1336"><a href="#Delete.delete-1336"><span class="linenos">1336</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-1337"><a href="#Delete.delete-1337"><span class="linenos">1337</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-1338"><a href="#Delete.delete-1338"><span class="linenos">1338</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.delete-1339"><a href="#Delete.delete-1339"><span class="linenos">1339</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14770,50 +15737,50 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span>
+ <span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span>
<label class="view-source-button" for="Delete.where-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Delete.where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1244"><a href="#Delete.where-1244"><span class="linenos">1244</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Delete.where-1245"><a href="#Delete.where-1245"><span class="linenos">1245</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.where-1246"><a href="#Delete.where-1246"><span class="linenos">1246</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete.where-1247"><a href="#Delete.where-1247"><span class="linenos">1247</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-1248"><a href="#Delete.where-1248"><span class="linenos">1248</span></a> <span class="n">dialect</span><span 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-1249"><a href="#Delete.where-1249"><span class="linenos">1249</span></a> <span class="n">copy</span><span 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-1250"><a href="#Delete.where-1250"><span class="linenos">1250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.where-1251"><a href="#Delete.where-1251"><span class="linenos">1251</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-1252"><a href="#Delete.where-1252"><span class="linenos">1252</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.where-1253"><a href="#Delete.where-1253"><span class="linenos">1253</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Delete.where-1254"><a href="#Delete.where-1254"><span class="linenos">1254</span></a>
-</span><span id="Delete.where-1255"><a href="#Delete.where-1255"><span class="linenos">1255</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.where-1256"><a href="#Delete.where-1256"><span class="linenos">1256</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-1257"><a href="#Delete.where-1257"><span class="linenos">1257</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-1258"><a href="#Delete.where-1258"><span class="linenos">1258</span></a>
-</span><span id="Delete.where-1259"><a href="#Delete.where-1259"><span class="linenos">1259</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.where-1260"><a href="#Delete.where-1260"><span class="linenos">1260</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Delete.where-1261"><a href="#Delete.where-1261"><span class="linenos">1261</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete.where-1262"><a href="#Delete.where-1262"><span class="linenos">1262</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Delete.where-1263"><a href="#Delete.where-1263"><span class="linenos">1263</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Delete.where-1264"><a href="#Delete.where-1264"><span class="linenos">1264</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Delete.where-1265"><a href="#Delete.where-1265"><span class="linenos">1265</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete.where-1266"><a href="#Delete.where-1266"><span class="linenos">1266</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.where-1267"><a href="#Delete.where-1267"><span class="linenos">1267</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.where-1268"><a href="#Delete.where-1268"><span class="linenos">1268</span></a>
-</span><span id="Delete.where-1269"><a href="#Delete.where-1269"><span class="linenos">1269</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.where-1270"><a href="#Delete.where-1270"><span class="linenos">1270</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.where-1271"><a href="#Delete.where-1271"><span class="linenos">1271</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.where-1272"><a href="#Delete.where-1272"><span class="linenos">1272</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Delete.where-1273"><a href="#Delete.where-1273"><span class="linenos">1273</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Delete.where-1274"><a href="#Delete.where-1274"><span class="linenos">1274</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-1275"><a href="#Delete.where-1275"><span class="linenos">1275</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-1276"><a href="#Delete.where-1276"><span class="linenos">1276</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-1277"><a href="#Delete.where-1277"><span class="linenos">1277</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-1278"><a href="#Delete.where-1278"><span class="linenos">1278</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-1279"><a href="#Delete.where-1279"><span class="linenos">1279</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-1280"><a href="#Delete.where-1280"><span class="linenos">1280</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.where-1281"><a href="#Delete.where-1281"><span class="linenos">1281</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1341"><a href="#Delete.where-1341"><span class="linenos">1341</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Delete.where-1342"><a href="#Delete.where-1342"><span class="linenos">1342</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.where-1343"><a href="#Delete.where-1343"><span class="linenos">1343</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-1344"><a href="#Delete.where-1344"><span class="linenos">1344</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-1345"><a href="#Delete.where-1345"><span class="linenos">1345</span></a> <span class="n">dialect</span><span 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-1346"><a href="#Delete.where-1346"><span class="linenos">1346</span></a> <span class="n">copy</span><span 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-1347"><a href="#Delete.where-1347"><span class="linenos">1347</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.where-1348"><a href="#Delete.where-1348"><span class="linenos">1348</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-1349"><a href="#Delete.where-1349"><span class="linenos">1349</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.where-1350"><a href="#Delete.where-1350"><span class="linenos">1350</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Delete.where-1351"><a href="#Delete.where-1351"><span class="linenos">1351</span></a>
+</span><span id="Delete.where-1352"><a href="#Delete.where-1352"><span class="linenos">1352</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.where-1353"><a href="#Delete.where-1353"><span class="linenos">1353</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-1354"><a href="#Delete.where-1354"><span class="linenos">1354</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-1355"><a href="#Delete.where-1355"><span class="linenos">1355</span></a>
+</span><span id="Delete.where-1356"><a href="#Delete.where-1356"><span class="linenos">1356</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.where-1357"><a href="#Delete.where-1357"><span class="linenos">1357</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Delete.where-1358"><a href="#Delete.where-1358"><span class="linenos">1358</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete.where-1359"><a href="#Delete.where-1359"><span class="linenos">1359</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Delete.where-1360"><a href="#Delete.where-1360"><span class="linenos">1360</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Delete.where-1361"><a href="#Delete.where-1361"><span class="linenos">1361</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Delete.where-1362"><a href="#Delete.where-1362"><span class="linenos">1362</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete.where-1363"><a href="#Delete.where-1363"><span class="linenos">1363</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.where-1364"><a href="#Delete.where-1364"><span class="linenos">1364</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.where-1365"><a href="#Delete.where-1365"><span class="linenos">1365</span></a>
+</span><span id="Delete.where-1366"><a href="#Delete.where-1366"><span class="linenos">1366</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.where-1367"><a href="#Delete.where-1367"><span class="linenos">1367</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.where-1368"><a href="#Delete.where-1368"><span class="linenos">1368</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.where-1369"><a href="#Delete.where-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Delete.where-1370"><a href="#Delete.where-1370"><span class="linenos">1370</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Delete.where-1371"><a href="#Delete.where-1371"><span class="linenos">1371</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-1372"><a href="#Delete.where-1372"><span class="linenos">1372</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-1373"><a href="#Delete.where-1373"><span class="linenos">1373</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-1374"><a href="#Delete.where-1374"><span class="linenos">1374</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-1375"><a href="#Delete.where-1375"><span class="linenos">1375</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-1376"><a href="#Delete.where-1376"><span class="linenos">1376</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-1377"><a href="#Delete.where-1377"><span class="linenos">1377</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.where-1378"><a href="#Delete.where-1378"><span class="linenos">1378</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14862,40 +15829,40 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Delete.returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.returning-1283"><a href="#Delete.returning-1283"><span class="linenos">1283</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="Delete.returning-1284"><a href="#Delete.returning-1284"><span class="linenos">1284</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.returning-1285"><a href="#Delete.returning-1285"><span class="linenos">1285</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete.returning-1286"><a href="#Delete.returning-1286"><span class="linenos">1286</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Delete.returning-1287"><a href="#Delete.returning-1287"><span class="linenos">1287</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Delete.returning-1288"><a href="#Delete.returning-1288"><span class="linenos">1288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.returning-1289"><a href="#Delete.returning-1289"><span class="linenos">1289</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete.returning-1290"><a href="#Delete.returning-1290"><span class="linenos">1290</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.returning-1291"><a href="#Delete.returning-1291"><span class="linenos">1291</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="Delete.returning-1292"><a href="#Delete.returning-1292"><span class="linenos">1292</span></a>
-</span><span id="Delete.returning-1293"><a href="#Delete.returning-1293"><span class="linenos">1293</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.returning-1294"><a href="#Delete.returning-1294"><span class="linenos">1294</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="Delete.returning-1295"><a href="#Delete.returning-1295"><span class="linenos">1295</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
-</span><span id="Delete.returning-1296"><a href="#Delete.returning-1296"><span class="linenos">1296</span></a>
-</span><span id="Delete.returning-1297"><a href="#Delete.returning-1297"><span class="linenos">1297</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.returning-1298"><a href="#Delete.returning-1298"><span class="linenos">1298</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="Delete.returning-1299"><a href="#Delete.returning-1299"><span class="linenos">1299</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete.returning-1300"><a href="#Delete.returning-1300"><span class="linenos">1300</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete.returning-1301"><a href="#Delete.returning-1301"><span class="linenos">1301</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.returning-1302"><a href="#Delete.returning-1302"><span class="linenos">1302</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.returning-1303"><a href="#Delete.returning-1303"><span class="linenos">1303</span></a>
-</span><span id="Delete.returning-1304"><a href="#Delete.returning-1304"><span class="linenos">1304</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.returning-1305"><a href="#Delete.returning-1305"><span class="linenos">1305</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.returning-1306"><a href="#Delete.returning-1306"><span class="linenos">1306</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.returning-1307"><a href="#Delete.returning-1307"><span class="linenos">1307</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete.returning-1308"><a href="#Delete.returning-1308"><span class="linenos">1308</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Delete.returning-1309"><a href="#Delete.returning-1309"><span class="linenos">1309</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.returning-1310"><a href="#Delete.returning-1310"><span class="linenos">1310</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
-</span><span id="Delete.returning-1311"><a href="#Delete.returning-1311"><span class="linenos">1311</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
-</span><span id="Delete.returning-1312"><a href="#Delete.returning-1312"><span class="linenos">1312</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete.returning-1313"><a href="#Delete.returning-1313"><span class="linenos">1313</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete.returning-1314"><a href="#Delete.returning-1314"><span class="linenos">1314</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="Delete.returning-1315"><a href="#Delete.returning-1315"><span class="linenos">1315</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.returning-1316"><a href="#Delete.returning-1316"><span class="linenos">1316</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.returning-1380"><a href="#Delete.returning-1380"><span class="linenos">1380</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="Delete.returning-1381"><a href="#Delete.returning-1381"><span class="linenos">1381</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.returning-1382"><a href="#Delete.returning-1382"><span class="linenos">1382</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete.returning-1383"><a href="#Delete.returning-1383"><span class="linenos">1383</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Delete.returning-1384"><a href="#Delete.returning-1384"><span class="linenos">1384</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Delete.returning-1385"><a href="#Delete.returning-1385"><span class="linenos">1385</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.returning-1386"><a href="#Delete.returning-1386"><span class="linenos">1386</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete.returning-1387"><a href="#Delete.returning-1387"><span class="linenos">1387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.returning-1388"><a href="#Delete.returning-1388"><span class="linenos">1388</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
+</span><span id="Delete.returning-1389"><a href="#Delete.returning-1389"><span class="linenos">1389</span></a>
+</span><span id="Delete.returning-1390"><a href="#Delete.returning-1390"><span class="linenos">1390</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.returning-1391"><a href="#Delete.returning-1391"><span class="linenos">1391</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="Delete.returning-1392"><a href="#Delete.returning-1392"><span class="linenos">1392</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="Delete.returning-1393"><a href="#Delete.returning-1393"><span class="linenos">1393</span></a>
+</span><span id="Delete.returning-1394"><a href="#Delete.returning-1394"><span class="linenos">1394</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.returning-1395"><a href="#Delete.returning-1395"><span class="linenos">1395</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="Delete.returning-1396"><a href="#Delete.returning-1396"><span class="linenos">1396</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete.returning-1397"><a href="#Delete.returning-1397"><span class="linenos">1397</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete.returning-1398"><a href="#Delete.returning-1398"><span class="linenos">1398</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.returning-1399"><a href="#Delete.returning-1399"><span class="linenos">1399</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.returning-1400"><a href="#Delete.returning-1400"><span class="linenos">1400</span></a>
+</span><span id="Delete.returning-1401"><a href="#Delete.returning-1401"><span class="linenos">1401</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.returning-1402"><a href="#Delete.returning-1402"><span class="linenos">1402</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.returning-1403"><a href="#Delete.returning-1403"><span class="linenos">1403</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.returning-1404"><a href="#Delete.returning-1404"><span class="linenos">1404</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete.returning-1405"><a href="#Delete.returning-1405"><span class="linenos">1405</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Delete.returning-1406"><a href="#Delete.returning-1406"><span class="linenos">1406</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.returning-1407"><a href="#Delete.returning-1407"><span class="linenos">1407</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
+</span><span id="Delete.returning-1408"><a href="#Delete.returning-1408"><span class="linenos">1408</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
+</span><span id="Delete.returning-1409"><a href="#Delete.returning-1409"><span class="linenos">1409</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete.returning-1410"><a href="#Delete.returning-1410"><span class="linenos">1410</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete.returning-1411"><a href="#Delete.returning-1411"><span class="linenos">1411</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="Delete.returning-1412"><a href="#Delete.returning-1412"><span class="linenos">1412</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.returning-1413"><a href="#Delete.returning-1413"><span class="linenos">1413</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14946,6 +15913,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Delete.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Delete.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Delete.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Delete.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Delete.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -14987,17 +15955,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Drop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1319"><a href="#Drop-1319"><span class="linenos">1319</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-1320"><a href="#Drop-1320"><span class="linenos">1320</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Drop-1321"><a href="#Drop-1321"><span class="linenos">1321</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-1322"><a href="#Drop-1322"><span class="linenos">1322</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-1323"><a href="#Drop-1323"><span class="linenos">1323</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-1324"><a href="#Drop-1324"><span class="linenos">1324</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-1325"><a href="#Drop-1325"><span class="linenos">1325</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-1326"><a href="#Drop-1326"><span class="linenos">1326</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-1327"><a href="#Drop-1327"><span class="linenos">1327</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-1328"><a href="#Drop-1328"><span class="linenos">1328</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-1329"><a href="#Drop-1329"><span class="linenos">1329</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1416"><a href="#Drop-1416"><span class="linenos">1416</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-1417"><a href="#Drop-1417"><span class="linenos">1417</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Drop-1418"><a href="#Drop-1418"><span class="linenos">1418</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-1419"><a href="#Drop-1419"><span class="linenos">1419</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-1420"><a href="#Drop-1420"><span class="linenos">1420</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-1421"><a href="#Drop-1421"><span class="linenos">1421</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-1422"><a href="#Drop-1422"><span class="linenos">1422</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-1423"><a href="#Drop-1423"><span class="linenos">1423</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-1424"><a href="#Drop-1424"><span class="linenos">1424</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-1425"><a href="#Drop-1425"><span class="linenos">1425</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-1426"><a href="#Drop-1426"><span class="linenos">1426</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15019,6 +15987,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Drop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Drop.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Drop.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Drop.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Drop.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15060,8 +16029,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Filter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Filter-1332"><a href="#Filter-1332"><span class="linenos">1332</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-1333"><a href="#Filter-1333"><span class="linenos">1333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-1429"><a href="#Filter-1429"><span class="linenos">1429</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-1430"><a href="#Filter-1430"><span class="linenos">1430</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -15083,6 +16052,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Filter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Filter.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Filter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Filter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Filter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15124,8 +16094,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Check"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1336"><a href="#Check-1336"><span class="linenos">1336</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-1337"><a href="#Check-1337"><span class="linenos">1337</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1433"><a href="#Check-1433"><span class="linenos">1433</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-1434"><a href="#Check-1434"><span class="linenos">1434</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -15147,6 +16117,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Check.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Check.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Check.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Check.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Check.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15188,9 +16159,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Directory"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1340"><a href="#Directory-1340"><span class="linenos">1340</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-1341"><a href="#Directory-1341"><span class="linenos">1341</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-1342"><a href="#Directory-1342"><span class="linenos">1342</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-1437"><a href="#Directory-1437"><span class="linenos">1437</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-1438"><a href="#Directory-1438"><span class="linenos">1438</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-1439"><a href="#Directory-1439"><span class="linenos">1439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -15212,6 +16183,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Directory.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Directory.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Directory.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Directory.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Directory.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15253,13 +16225,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ForeignKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1345"><a href="#ForeignKey-1345"><span class="linenos">1345</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-1346"><a href="#ForeignKey-1346"><span class="linenos">1346</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ForeignKey-1347"><a href="#ForeignKey-1347"><span class="linenos">1347</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-1348"><a href="#ForeignKey-1348"><span class="linenos">1348</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-1349"><a href="#ForeignKey-1349"><span class="linenos">1349</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-1350"><a href="#ForeignKey-1350"><span class="linenos">1350</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-1351"><a href="#ForeignKey-1351"><span class="linenos">1351</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1442"><a href="#ForeignKey-1442"><span class="linenos">1442</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-1443"><a href="#ForeignKey-1443"><span class="linenos">1443</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ForeignKey-1444"><a href="#ForeignKey-1444"><span class="linenos">1444</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-1445"><a href="#ForeignKey-1445"><span class="linenos">1445</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-1446"><a href="#ForeignKey-1446"><span class="linenos">1446</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-1447"><a href="#ForeignKey-1447"><span class="linenos">1447</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-1448"><a href="#ForeignKey-1448"><span class="linenos">1448</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15281,6 +16253,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ForeignKey.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ForeignKey.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ForeignKey.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ForeignKey.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ForeignKey.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15322,8 +16295,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#PrimaryKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1354"><a href="#PrimaryKey-1354"><span class="linenos">1354</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-1355"><a href="#PrimaryKey-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;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-1451"><a href="#PrimaryKey-1451"><span class="linenos">1451</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-1452"><a href="#PrimaryKey-1452"><span class="linenos">1452</span></a> <span class="n">arg_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>
@@ -15345,6 +16318,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKey.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PrimaryKey.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PrimaryKey.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PrimaryKey.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PrimaryKey.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15386,8 +16360,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Unique"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unique-1358"><a href="#Unique-1358"><span class="linenos">1358</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Unique-1359"><a href="#Unique-1359"><span class="linenos">1359</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unique-1455"><a href="#Unique-1455"><span class="linenos">1455</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Unique-1456"><a href="#Unique-1456"><span class="linenos">1456</span></a> <span class="n">arg_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>
@@ -15409,6 +16383,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unique.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unique.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unique.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Unique.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Unique.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unique.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unique.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15450,8 +16425,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Into"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Into-1364"><a href="#Into-1364"><span class="linenos">1364</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-1365"><a href="#Into-1365"><span class="linenos">1365</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1461"><a href="#Into-1461"><span class="linenos">1461</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-1462"><a href="#Into-1462"><span class="linenos">1462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -15473,6 +16448,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Into.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Into.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Into.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Into.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Into.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15514,8 +16490,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#From"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="From-1368"><a href="#From-1368"><span class="linenos">1368</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-1369"><a href="#From-1369"><span class="linenos">1369</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From-1465"><a href="#From-1465"><span class="linenos">1465</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-1466"><a href="#From-1466"><span class="linenos">1466</span></a> <span class="nd">@property</span>
+</span><span id="From-1467"><a href="#From-1467"><span class="linenos">1467</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-1468"><a href="#From-1468"><span class="linenos">1468</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-1469"><a href="#From-1469"><span class="linenos">1469</span></a>
+</span><span id="From-1470"><a href="#From-1470"><span class="linenos">1470</span></a> <span class="nd">@property</span>
+</span><span id="From-1471"><a href="#From-1471"><span class="linenos">1471</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-1472"><a href="#From-1472"><span class="linenos">1472</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>
@@ -15537,6 +16519,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="From.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="From.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="From.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="From.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="From.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15578,8 +16561,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1372"><a href="#Having-1372"><span class="linenos">1372</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-1373"><a href="#Having-1373"><span class="linenos">1373</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1475"><a href="#Having-1475"><span class="linenos">1475</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-1476"><a href="#Having-1476"><span class="linenos">1476</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -15601,6 +16584,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Having.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Having.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Having.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Having.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Having.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15642,8 +16626,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-1376"><a href="#Hint-1376"><span class="linenos">1376</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-1377"><a href="#Hint-1377"><span class="linenos">1377</span></a> <span class="n">arg_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-1479"><a href="#Hint-1479"><span class="linenos">1479</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-1480"><a href="#Hint-1480"><span class="linenos">1480</span></a> <span class="n">arg_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>
@@ -15665,6 +16649,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Hint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Hint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Hint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Hint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Hint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15706,8 +16691,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#JoinHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1380"><a href="#JoinHint-1380"><span class="linenos">1380</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-1381"><a href="#JoinHint-1381"><span class="linenos">1381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1483"><a href="#JoinHint-1483"><span class="linenos">1483</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-1484"><a href="#JoinHint-1484"><span class="linenos">1484</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -15729,6 +16714,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="JoinHint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JoinHint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JoinHint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JoinHint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JoinHint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15770,22 +16756,22 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-1384"><a href="#Identifier-1384"><span class="linenos">1384</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-1385"><a href="#Identifier-1385"><span class="linenos">1385</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Identifier-1386"><a href="#Identifier-1386"><span class="linenos">1386</span></a>
-</span><span id="Identifier-1387"><a href="#Identifier-1387"><span class="linenos">1387</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1388"><a href="#Identifier-1388"><span class="linenos">1388</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Identifier-1389"><a href="#Identifier-1389"><span class="linenos">1389</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-1390"><a href="#Identifier-1390"><span class="linenos">1390</span></a>
-</span><span id="Identifier-1391"><a href="#Identifier-1391"><span class="linenos">1391</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1392"><a href="#Identifier-1392"><span class="linenos">1392</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-1393"><a href="#Identifier-1393"><span class="linenos">1393</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
-</span><span id="Identifier-1394"><a href="#Identifier-1394"><span class="linenos">1394</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-1395"><a href="#Identifier-1395"><span class="linenos">1395</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
-</span><span id="Identifier-1396"><a href="#Identifier-1396"><span class="linenos">1396</span></a>
-</span><span id="Identifier-1397"><a href="#Identifier-1397"><span class="linenos">1397</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1398"><a href="#Identifier-1398"><span class="linenos">1398</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Identifier-1399"><a href="#Identifier-1399"><span class="linenos">1399</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-1487"><a href="#Identifier-1487"><span class="linenos">1487</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-1488"><a href="#Identifier-1488"><span class="linenos">1488</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Identifier-1489"><a href="#Identifier-1489"><span class="linenos">1489</span></a>
+</span><span id="Identifier-1490"><a href="#Identifier-1490"><span class="linenos">1490</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1491"><a href="#Identifier-1491"><span class="linenos">1491</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-1492"><a href="#Identifier-1492"><span class="linenos">1492</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-1493"><a href="#Identifier-1493"><span class="linenos">1493</span></a>
+</span><span id="Identifier-1494"><a href="#Identifier-1494"><span class="linenos">1494</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1495"><a href="#Identifier-1495"><span class="linenos">1495</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-1496"><a href="#Identifier-1496"><span class="linenos">1496</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
+</span><span id="Identifier-1497"><a href="#Identifier-1497"><span class="linenos">1497</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-1498"><a href="#Identifier-1498"><span class="linenos">1498</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+</span><span id="Identifier-1499"><a href="#Identifier-1499"><span class="linenos">1499</span></a>
+</span><span id="Identifier-1500"><a href="#Identifier-1500"><span class="linenos">1500</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1501"><a href="#Identifier-1501"><span class="linenos">1501</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-1502"><a href="#Identifier-1502"><span class="linenos">1502</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -15793,7 +16779,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div id="Identifier.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -15836,6 +16822,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Identifier.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Identifier.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Identifier.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Identifier.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Identifier.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15877,16 +16864,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Index"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1402"><a href="#Index-1402"><span class="linenos">1402</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-1403"><a href="#Index-1403"><span class="linenos">1403</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Index-1404"><a href="#Index-1404"><span class="linenos">1404</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-1405"><a href="#Index-1405"><span class="linenos">1405</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-1406"><a href="#Index-1406"><span class="linenos">1406</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-1407"><a href="#Index-1407"><span class="linenos">1407</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-1408"><a href="#Index-1408"><span class="linenos">1408</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-1409"><a href="#Index-1409"><span class="linenos">1409</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-1410"><a href="#Index-1410"><span class="linenos">1410</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-1411"><a href="#Index-1411"><span class="linenos">1411</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1505"><a href="#Index-1505"><span class="linenos">1505</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-1506"><a href="#Index-1506"><span class="linenos">1506</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Index-1507"><a href="#Index-1507"><span class="linenos">1507</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-1508"><a href="#Index-1508"><span class="linenos">1508</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-1509"><a href="#Index-1509"><span class="linenos">1509</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-1510"><a href="#Index-1510"><span class="linenos">1510</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-1511"><a href="#Index-1511"><span class="linenos">1511</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-1512"><a href="#Index-1512"><span class="linenos">1512</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-1513"><a href="#Index-1513"><span class="linenos">1513</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-1514"><a href="#Index-1514"><span class="linenos">1514</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15908,6 +16895,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Index.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Index.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Index.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Index.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Index.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -15949,23 +16937,144 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1414"><a href="#Insert-1414"><span class="linenos">1414</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Insert-1415"><a href="#Insert-1415"><span class="linenos">1415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Insert-1416"><a href="#Insert-1416"><span class="linenos">1416</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-1417"><a href="#Insert-1417"><span class="linenos">1417</span></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-1418"><a href="#Insert-1418"><span class="linenos">1418</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-1419"><a href="#Insert-1419"><span class="linenos">1419</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-1420"><a href="#Insert-1420"><span class="linenos">1420</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-1421"><a href="#Insert-1421"><span class="linenos">1421</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-1422"><a href="#Insert-1422"><span class="linenos">1422</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-1423"><a href="#Insert-1423"><span class="linenos">1423</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-1424"><a href="#Insert-1424"><span class="linenos">1424</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-1425"><a href="#Insert-1425"><span class="linenos">1425</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1517"><a href="#Insert-1517"><span class="linenos">1517</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Insert-1518"><a href="#Insert-1518"><span class="linenos">1518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Insert-1519"><a href="#Insert-1519"><span class="linenos">1519</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-1520"><a href="#Insert-1520"><span class="linenos">1520</span></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-1521"><a href="#Insert-1521"><span class="linenos">1521</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-1522"><a href="#Insert-1522"><span class="linenos">1522</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-1523"><a href="#Insert-1523"><span class="linenos">1523</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-1524"><a href="#Insert-1524"><span class="linenos">1524</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-1525"><a href="#Insert-1525"><span class="linenos">1525</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-1526"><a href="#Insert-1526"><span class="linenos">1526</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-1527"><a href="#Insert-1527"><span class="linenos">1527</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-1528"><a href="#Insert-1528"><span class="linenos">1528</span></a> <span class="p">}</span>
+</span><span id="Insert-1529"><a href="#Insert-1529"><span class="linenos">1529</span></a>
+</span><span id="Insert-1530"><a href="#Insert-1530"><span class="linenos">1530</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Insert-1531"><a href="#Insert-1531"><span class="linenos">1531</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Insert-1532"><a href="#Insert-1532"><span class="linenos">1532</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert-1533"><a href="#Insert-1533"><span class="linenos">1533</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert-1534"><a href="#Insert-1534"><span class="linenos">1534</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-1535"><a href="#Insert-1535"><span class="linenos">1535</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-1536"><a href="#Insert-1536"><span class="linenos">1536</span></a> <span class="n">dialect</span><span 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-1537"><a href="#Insert-1537"><span class="linenos">1537</span></a> <span class="n">copy</span><span 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-1538"><a href="#Insert-1538"><span class="linenos">1538</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Insert-1539"><a href="#Insert-1539"><span class="linenos">1539</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="Insert-1540"><a href="#Insert-1540"><span class="linenos">1540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Insert-1541"><a href="#Insert-1541"><span class="linenos">1541</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Insert-1542"><a href="#Insert-1542"><span class="linenos">1542</span></a>
+</span><span id="Insert-1543"><a href="#Insert-1543"><span class="linenos">1543</span></a><span class="sd"> Example:</span>
+</span><span id="Insert-1544"><a href="#Insert-1544"><span class="linenos">1544</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-1545"><a href="#Insert-1545"><span class="linenos">1545</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-1546"><a href="#Insert-1546"><span class="linenos">1546</span></a>
+</span><span id="Insert-1547"><a href="#Insert-1547"><span class="linenos">1547</span></a><span class="sd"> Args:</span>
+</span><span id="Insert-1548"><a href="#Insert-1548"><span class="linenos">1548</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Insert-1549"><a href="#Insert-1549"><span class="linenos">1549</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Insert-1550"><a href="#Insert-1550"><span class="linenos">1550</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Insert-1551"><a href="#Insert-1551"><span class="linenos">1551</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Insert-1552"><a href="#Insert-1552"><span class="linenos">1552</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Insert-1553"><a href="#Insert-1553"><span class="linenos">1553</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Insert-1554"><a href="#Insert-1554"><span class="linenos">1554</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Insert-1555"><a href="#Insert-1555"><span class="linenos">1555</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Insert-1556"><a href="#Insert-1556"><span class="linenos">1556</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Insert-1557"><a href="#Insert-1557"><span class="linenos">1557</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Insert-1558"><a href="#Insert-1558"><span class="linenos">1558</span></a>
+</span><span id="Insert-1559"><a href="#Insert-1559"><span class="linenos">1559</span></a><span class="sd"> Returns:</span>
+</span><span id="Insert-1560"><a href="#Insert-1560"><span class="linenos">1560</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Insert-1561"><a href="#Insert-1561"><span class="linenos">1561</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Insert-1562"><a href="#Insert-1562"><span class="linenos">1562</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Insert-1563"><a href="#Insert-1563"><span class="linenos">1563</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-1564"><a href="#Insert-1564"><span class="linenos">1564</span></a> <span class="p">)</span>
+</span></pre></div>
+
+
+
+
+ <div id="Insert.with_" class="classattr">
+ <input id="Insert.with_-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">with_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">as_</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">recursive</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="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Insert">sqlglot.expressions.Insert</a></span>:</span></span>
+
+ <label class="view-source-button" for="Insert.with_-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Insert.with_"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert.with_-1530"><a href="#Insert.with_-1530"><span class="linenos">1530</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Insert.with_-1531"><a href="#Insert.with_-1531"><span class="linenos">1531</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Insert.with_-1532"><a href="#Insert.with_-1532"><span class="linenos">1532</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_-1533"><a href="#Insert.with_-1533"><span class="linenos">1533</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_-1534"><a href="#Insert.with_-1534"><span class="linenos">1534</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_-1535"><a href="#Insert.with_-1535"><span class="linenos">1535</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_-1536"><a href="#Insert.with_-1536"><span class="linenos">1536</span></a> <span class="n">dialect</span><span 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_-1537"><a href="#Insert.with_-1537"><span class="linenos">1537</span></a> <span class="n">copy</span><span 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_-1538"><a href="#Insert.with_-1538"><span class="linenos">1538</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Insert.with_-1539"><a href="#Insert.with_-1539"><span class="linenos">1539</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_-1540"><a href="#Insert.with_-1540"><span class="linenos">1540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Insert.with_-1541"><a href="#Insert.with_-1541"><span class="linenos">1541</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Insert.with_-1542"><a href="#Insert.with_-1542"><span class="linenos">1542</span></a>
+</span><span id="Insert.with_-1543"><a href="#Insert.with_-1543"><span class="linenos">1543</span></a><span class="sd"> Example:</span>
+</span><span id="Insert.with_-1544"><a href="#Insert.with_-1544"><span class="linenos">1544</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_-1545"><a href="#Insert.with_-1545"><span class="linenos">1545</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_-1546"><a href="#Insert.with_-1546"><span class="linenos">1546</span></a>
+</span><span id="Insert.with_-1547"><a href="#Insert.with_-1547"><span class="linenos">1547</span></a><span class="sd"> Args:</span>
+</span><span id="Insert.with_-1548"><a href="#Insert.with_-1548"><span class="linenos">1548</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Insert.with_-1549"><a href="#Insert.with_-1549"><span class="linenos">1549</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Insert.with_-1550"><a href="#Insert.with_-1550"><span class="linenos">1550</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Insert.with_-1551"><a href="#Insert.with_-1551"><span class="linenos">1551</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Insert.with_-1552"><a href="#Insert.with_-1552"><span class="linenos">1552</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Insert.with_-1553"><a href="#Insert.with_-1553"><span class="linenos">1553</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Insert.with_-1554"><a href="#Insert.with_-1554"><span class="linenos">1554</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Insert.with_-1555"><a href="#Insert.with_-1555"><span class="linenos">1555</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Insert.with_-1556"><a href="#Insert.with_-1556"><span class="linenos">1556</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Insert.with_-1557"><a href="#Insert.with_-1557"><span class="linenos">1557</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Insert.with_-1558"><a href="#Insert.with_-1558"><span class="linenos">1558</span></a>
+</span><span id="Insert.with_-1559"><a href="#Insert.with_-1559"><span class="linenos">1559</span></a><span class="sd"> Returns:</span>
+</span><span id="Insert.with_-1560"><a href="#Insert.with_-1560"><span class="linenos">1560</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Insert.with_-1561"><a href="#Insert.with_-1561"><span class="linenos">1561</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Insert.with_-1562"><a href="#Insert.with_-1562"><span class="linenos">1562</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Insert.with_-1563"><a href="#Insert.with_-1563"><span class="linenos">1563</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_-1564"><a href="#Insert.with_-1564"><span class="linenos">1564</span></a> <span class="p">)</span>
</span></pre></div>
-
+ <div class="docstring"><p>Append to or set the common table expressions.</p>
+
+<h6 id="example">Example:</h6>
+
+<blockquote>
+ <div class="pdoc-code codehilite">
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">insert</span><span class="p">(</span><span class="s2">&quot;SELECT x FROM cte&quot;</span><span class="p">,</span> <span class="s2">&quot;t&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">with_</span><span class="p">(</span><span class="s2">&quot;cte&quot;</span><span class="p">,</span> <span class="n">as_</span><span class="o">=</span><span class="s2">&quot;SELECT * FROM tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<span class="go">&#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</code></pre>
+ </div>
+</blockquote>
+
+<h6 id="arguments">Arguments:</h6>
+
+<ul>
+<li><strong>alias:</strong> the SQL code string to parse as the table name.
+If an <code><a href="#Expression">Expression</a></code> instance is passed, this is used as-is.</li>
+<li><strong>as_:</strong> the SQL code string to parse as the table expression.
+If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
+<li><strong>recursive:</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
+Otherwise, this resets the expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
+</ul>
+<h6 id="returns">Returns:</h6>
+
+<blockquote>
+ <p>The modified expression.</p>
+</blockquote>
+</div>
+
+
+ </div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
@@ -15982,6 +17091,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Insert.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Insert.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Insert.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Insert.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Insert.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16023,14 +17133,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#OnConflict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-1428"><a href="#OnConflict-1428"><span class="linenos">1428</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-1429"><a href="#OnConflict-1429"><span class="linenos">1429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="OnConflict-1430"><a href="#OnConflict-1430"><span class="linenos">1430</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-1431"><a href="#OnConflict-1431"><span class="linenos">1431</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-1432"><a href="#OnConflict-1432"><span class="linenos">1432</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-1433"><a href="#OnConflict-1433"><span class="linenos">1433</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-1434"><a href="#OnConflict-1434"><span class="linenos">1434</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-1435"><a href="#OnConflict-1435"><span class="linenos">1435</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-1567"><a href="#OnConflict-1567"><span class="linenos">1567</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-1568"><a href="#OnConflict-1568"><span class="linenos">1568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="OnConflict-1569"><a href="#OnConflict-1569"><span class="linenos">1569</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-1570"><a href="#OnConflict-1570"><span class="linenos">1570</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-1571"><a href="#OnConflict-1571"><span class="linenos">1571</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-1572"><a href="#OnConflict-1572"><span class="linenos">1572</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-1573"><a href="#OnConflict-1573"><span class="linenos">1573</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-1574"><a href="#OnConflict-1574"><span class="linenos">1574</span></a> <span class="p">}</span>
</span></pre></div>
@@ -16052,6 +17162,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="OnConflict.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OnConflict.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnConflict.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="OnConflict.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OnConflict.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OnConflict.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OnConflict.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16093,8 +17204,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1438"><a href="#Returning-1438"><span class="linenos">1438</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-1439"><a href="#Returning-1439"><span class="linenos">1439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1577"><a href="#Returning-1577"><span class="linenos">1577</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-1578"><a href="#Returning-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -16116,6 +17227,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Returning.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Returning.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Returning.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Returning.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Returning.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16157,8 +17269,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Introducer"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-1443"><a href="#Introducer-1443"><span class="linenos">1443</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-1444"><a href="#Introducer-1444"><span class="linenos">1444</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-1582"><a href="#Introducer-1582"><span class="linenos">1582</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-1583"><a href="#Introducer-1583"><span class="linenos">1583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -16180,6 +17292,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Introducer.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Introducer.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Introducer.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Introducer.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Introducer.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16221,8 +17334,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#National"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="National-1448"><a href="#National-1448"><span class="linenos">1448</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-1449"><a href="#National-1449"><span class="linenos">1449</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="National-1587"><a href="#National-1587"><span class="linenos">1587</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-1588"><a href="#National-1588"><span class="linenos">1588</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -16244,6 +17357,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="National.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="National.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="National.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="National.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="National.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16285,16 +17399,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#LoadData"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1452"><a href="#LoadData-1452"><span class="linenos">1452</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-1453"><a href="#LoadData-1453"><span class="linenos">1453</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LoadData-1454"><a href="#LoadData-1454"><span class="linenos">1454</span></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-1455"><a href="#LoadData-1455"><span class="linenos">1455</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-1456"><a href="#LoadData-1456"><span class="linenos">1456</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-1457"><a href="#LoadData-1457"><span class="linenos">1457</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-1458"><a href="#LoadData-1458"><span class="linenos">1458</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-1459"><a href="#LoadData-1459"><span class="linenos">1459</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-1460"><a href="#LoadData-1460"><span class="linenos">1460</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-1461"><a href="#LoadData-1461"><span class="linenos">1461</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1591"><a href="#LoadData-1591"><span class="linenos">1591</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-1592"><a href="#LoadData-1592"><span class="linenos">1592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LoadData-1593"><a href="#LoadData-1593"><span class="linenos">1593</span></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-1594"><a href="#LoadData-1594"><span class="linenos">1594</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-1595"><a href="#LoadData-1595"><span class="linenos">1595</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-1596"><a href="#LoadData-1596"><span class="linenos">1596</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-1597"><a href="#LoadData-1597"><span class="linenos">1597</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-1598"><a href="#LoadData-1598"><span class="linenos">1598</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-1599"><a href="#LoadData-1599"><span class="linenos">1599</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-1600"><a href="#LoadData-1600"><span class="linenos">1600</span></a> <span class="p">}</span>
</span></pre></div>
@@ -16316,6 +17430,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="LoadData.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LoadData.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LoadData.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LoadData.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LoadData.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16357,8 +17472,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Partition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-1464"><a href="#Partition-1464"><span class="linenos">1464</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-1465"><a href="#Partition-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;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-1603"><a href="#Partition-1603"><span class="linenos">1603</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-1604"><a href="#Partition-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></pre></div>
@@ -16380,6 +17495,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Partition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Partition.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Partition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Partition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Partition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16421,13 +17537,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Fetch"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1468"><a href="#Fetch-1468"><span class="linenos">1468</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-1469"><a href="#Fetch-1469"><span class="linenos">1469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Fetch-1470"><a href="#Fetch-1470"><span class="linenos">1470</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-1471"><a href="#Fetch-1471"><span class="linenos">1471</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-1472"><a href="#Fetch-1472"><span class="linenos">1472</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-1473"><a href="#Fetch-1473"><span class="linenos">1473</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-1474"><a href="#Fetch-1474"><span class="linenos">1474</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1607"><a href="#Fetch-1607"><span class="linenos">1607</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-1608"><a href="#Fetch-1608"><span class="linenos">1608</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Fetch-1609"><a href="#Fetch-1609"><span class="linenos">1609</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-1610"><a href="#Fetch-1610"><span class="linenos">1610</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-1611"><a href="#Fetch-1611"><span class="linenos">1611</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-1612"><a href="#Fetch-1612"><span class="linenos">1612</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-1613"><a href="#Fetch-1613"><span class="linenos">1613</span></a> <span class="p">}</span>
</span></pre></div>
@@ -16449,6 +17565,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Fetch.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Fetch.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Fetch.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Fetch.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Fetch.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16490,13 +17607,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Group"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1477"><a href="#Group-1477"><span class="linenos">1477</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-1478"><a href="#Group-1478"><span class="linenos">1478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Group-1479"><a href="#Group-1479"><span class="linenos">1479</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-1480"><a href="#Group-1480"><span class="linenos">1480</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-1481"><a href="#Group-1481"><span class="linenos">1481</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-1482"><a href="#Group-1482"><span class="linenos">1482</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-1483"><a href="#Group-1483"><span class="linenos">1483</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1616"><a href="#Group-1616"><span class="linenos">1616</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-1617"><a href="#Group-1617"><span class="linenos">1617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Group-1618"><a href="#Group-1618"><span class="linenos">1618</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-1619"><a href="#Group-1619"><span class="linenos">1619</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-1620"><a href="#Group-1620"><span class="linenos">1620</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-1621"><a href="#Group-1621"><span class="linenos">1621</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-1622"><a href="#Group-1622"><span class="linenos">1622</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-1623"><a href="#Group-1623"><span class="linenos">1623</span></a> <span class="p">}</span>
</span></pre></div>
@@ -16518,6 +17636,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Group.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Group.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Group.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Group.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Group.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16559,8 +17678,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Lambda"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-1486"><a href="#Lambda-1486"><span class="linenos">1486</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-1487"><a href="#Lambda-1487"><span class="linenos">1487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1626"><a href="#Lambda-1626"><span class="linenos">1626</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-1627"><a href="#Lambda-1627"><span class="linenos">1627</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -16582,6 +17701,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Lambda.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lambda.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Lambda.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lambda.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lambda.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16623,8 +17743,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1490"><a href="#Limit-1490"><span class="linenos">1490</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-1491"><a href="#Limit-1491"><span class="linenos">1491</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1630"><a href="#Limit-1630"><span class="linenos">1630</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-1631"><a href="#Limit-1631"><span class="linenos">1631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -16646,6 +17766,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Limit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Limit.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Limit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Limit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Limit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16687,24 +17808,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Literal"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-1494"><a href="#Literal-1494"><span class="linenos">1494</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-1495"><a href="#Literal-1495"><span class="linenos">1495</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1496"><a href="#Literal-1496"><span class="linenos">1496</span></a>
-</span><span id="Literal-1497"><a href="#Literal-1497"><span class="linenos">1497</span></a> <span class="nd">@property</span>
-</span><span id="Literal-1498"><a href="#Literal-1498"><span class="linenos">1498</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-1499"><a href="#Literal-1499"><span class="linenos">1499</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-1500"><a href="#Literal-1500"><span class="linenos">1500</span></a>
-</span><span id="Literal-1501"><a href="#Literal-1501"><span class="linenos">1501</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-1502"><a href="#Literal-1502"><span class="linenos">1502</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-1503"><a href="#Literal-1503"><span class="linenos">1503</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-1504"><a href="#Literal-1504"><span class="linenos">1504</span></a>
-</span><span id="Literal-1505"><a href="#Literal-1505"><span class="linenos">1505</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-1506"><a href="#Literal-1506"><span class="linenos">1506</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-1507"><a href="#Literal-1507"><span class="linenos">1507</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-1508"><a href="#Literal-1508"><span class="linenos">1508</span></a>
-</span><span id="Literal-1509"><a href="#Literal-1509"><span class="linenos">1509</span></a> <span class="nd">@property</span>
-</span><span id="Literal-1510"><a href="#Literal-1510"><span class="linenos">1510</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Literal-1511"><a href="#Literal-1511"><span class="linenos">1511</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-1634"><a href="#Literal-1634"><span class="linenos">1634</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-1635"><a href="#Literal-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;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Literal-1636"><a href="#Literal-1636"><span class="linenos">1636</span></a>
+</span><span id="Literal-1637"><a href="#Literal-1637"><span class="linenos">1637</span></a> <span class="nd">@property</span>
+</span><span id="Literal-1638"><a href="#Literal-1638"><span class="linenos">1638</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-1639"><a href="#Literal-1639"><span class="linenos">1639</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-1640"><a href="#Literal-1640"><span class="linenos">1640</span></a>
+</span><span id="Literal-1641"><a href="#Literal-1641"><span class="linenos">1641</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-1642"><a href="#Literal-1642"><span class="linenos">1642</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-1643"><a href="#Literal-1643"><span class="linenos">1643</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-1644"><a href="#Literal-1644"><span class="linenos">1644</span></a>
+</span><span id="Literal-1645"><a href="#Literal-1645"><span class="linenos">1645</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-1646"><a href="#Literal-1646"><span class="linenos">1646</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-1647"><a href="#Literal-1647"><span class="linenos">1647</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-1648"><a href="#Literal-1648"><span class="linenos">1648</span></a>
+</span><span id="Literal-1649"><a href="#Literal-1649"><span class="linenos">1649</span></a> <span class="nd">@property</span>
+</span><span id="Literal-1650"><a href="#Literal-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="Literal-1651"><a href="#Literal-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></pre></div>
@@ -16722,9 +17843,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Literal.number"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-1501"><a href="#Literal.number-1501"><span class="linenos">1501</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.number-1502"><a href="#Literal.number-1502"><span class="linenos">1502</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-1503"><a href="#Literal.number-1503"><span class="linenos">1503</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-1641"><a href="#Literal.number-1641"><span class="linenos">1641</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.number-1642"><a href="#Literal.number-1642"><span class="linenos">1642</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-1643"><a href="#Literal.number-1643"><span class="linenos">1643</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>
@@ -16743,9 +17864,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Literal.string"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-1505"><a href="#Literal.string-1505"><span class="linenos">1505</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.string-1506"><a href="#Literal.string-1506"><span class="linenos">1506</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-1507"><a href="#Literal.string-1507"><span class="linenos">1507</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-1645"><a href="#Literal.string-1645"><span class="linenos">1645</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.string-1646"><a href="#Literal.string-1646"><span class="linenos">1646</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-1647"><a href="#Literal.string-1647"><span class="linenos">1647</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>
@@ -16754,7 +17875,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Literal.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -16797,6 +17918,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Literal.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Literal.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Literal.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Literal.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Literal.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -16828,8 +17950,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Literal.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Literal.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Literal.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Literal.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Literal.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Literal.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Literal.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Literal.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Literal.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Literal.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -16851,105 +17975,120 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1514"><a href="#Join-1514"><span class="linenos">1514</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-1515"><a href="#Join-1515"><span class="linenos">1515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Join-1516"><a href="#Join-1516"><span class="linenos">1516</span></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-1517"><a href="#Join-1517"><span class="linenos">1517</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-1518"><a href="#Join-1518"><span class="linenos">1518</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-1519"><a href="#Join-1519"><span class="linenos">1519</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-1520"><a href="#Join-1520"><span class="linenos">1520</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-1521"><a href="#Join-1521"><span class="linenos">1521</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-1522"><a href="#Join-1522"><span class="linenos">1522</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-1523"><a href="#Join-1523"><span class="linenos">1523</span></a> <span class="p">}</span>
-</span><span id="Join-1524"><a href="#Join-1524"><span class="linenos">1524</span></a>
-</span><span id="Join-1525"><a href="#Join-1525"><span class="linenos">1525</span></a> <span class="nd">@property</span>
-</span><span id="Join-1526"><a href="#Join-1526"><span class="linenos">1526</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Join-1527"><a href="#Join-1527"><span class="linenos">1527</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-1528"><a href="#Join-1528"><span class="linenos">1528</span></a>
-</span><span id="Join-1529"><a href="#Join-1529"><span class="linenos">1529</span></a> <span class="nd">@property</span>
-</span><span id="Join-1530"><a href="#Join-1530"><span class="linenos">1530</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Join-1531"><a href="#Join-1531"><span class="linenos">1531</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-1532"><a href="#Join-1532"><span class="linenos">1532</span></a>
-</span><span id="Join-1533"><a href="#Join-1533"><span class="linenos">1533</span></a> <span class="nd">@property</span>
-</span><span id="Join-1534"><a href="#Join-1534"><span class="linenos">1534</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Join-1535"><a href="#Join-1535"><span class="linenos">1535</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-1536"><a href="#Join-1536"><span class="linenos">1536</span></a>
-</span><span id="Join-1537"><a href="#Join-1537"><span class="linenos">1537</span></a> <span class="nd">@property</span>
-</span><span id="Join-1538"><a href="#Join-1538"><span class="linenos">1538</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Join-1539"><a href="#Join-1539"><span class="linenos">1539</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-1540"><a href="#Join-1540"><span class="linenos">1540</span></a>
-</span><span id="Join-1541"><a href="#Join-1541"><span class="linenos">1541</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Join-1542"><a href="#Join-1542"><span class="linenos">1542</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-1543"><a href="#Join-1543"><span class="linenos">1543</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join-1544"><a href="#Join-1544"><span class="linenos">1544</span></a>
-</span><span id="Join-1545"><a href="#Join-1545"><span class="linenos">1545</span></a><span class="sd"> Example:</span>
-</span><span id="Join-1546"><a href="#Join-1546"><span class="linenos">1546</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-1547"><a href="#Join-1547"><span class="linenos">1547</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-1548"><a href="#Join-1548"><span class="linenos">1548</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join-1549"><a href="#Join-1549"><span class="linenos">1549</span></a>
-</span><span id="Join-1550"><a href="#Join-1550"><span class="linenos">1550</span></a><span class="sd"> Args:</span>
-</span><span id="Join-1551"><a href="#Join-1551"><span class="linenos">1551</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join-1552"><a href="#Join-1552"><span class="linenos">1552</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-1553"><a href="#Join-1553"><span class="linenos">1553</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join-1554"><a href="#Join-1554"><span class="linenos">1554</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join-1555"><a href="#Join-1555"><span class="linenos">1555</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-1556"><a href="#Join-1556"><span class="linenos">1556</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join-1557"><a href="#Join-1557"><span class="linenos">1557</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-1558"><a href="#Join-1558"><span class="linenos">1558</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join-1559"><a href="#Join-1559"><span class="linenos">1559</span></a>
-</span><span id="Join-1560"><a href="#Join-1560"><span class="linenos">1560</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-1561"><a href="#Join-1561"><span class="linenos">1561</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join-1562"><a href="#Join-1562"><span class="linenos">1562</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-1563"><a href="#Join-1563"><span class="linenos">1563</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-1564"><a href="#Join-1564"><span class="linenos">1564</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-1565"><a href="#Join-1565"><span class="linenos">1565</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1566"><a href="#Join-1566"><span class="linenos">1566</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-1567"><a href="#Join-1567"><span class="linenos">1567</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-1568"><a href="#Join-1568"><span class="linenos">1568</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-1569"><a href="#Join-1569"><span class="linenos">1569</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-1570"><a href="#Join-1570"><span class="linenos">1570</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1571"><a href="#Join-1571"><span class="linenos">1571</span></a> <span class="p">)</span>
-</span><span id="Join-1572"><a href="#Join-1572"><span class="linenos">1572</span></a>
-</span><span id="Join-1573"><a href="#Join-1573"><span class="linenos">1573</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-1574"><a href="#Join-1574"><span class="linenos">1574</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-1575"><a href="#Join-1575"><span class="linenos">1575</span></a>
-</span><span id="Join-1576"><a href="#Join-1576"><span class="linenos">1576</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="Join-1577"><a href="#Join-1577"><span class="linenos">1577</span></a>
-</span><span id="Join-1578"><a href="#Join-1578"><span class="linenos">1578</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Join-1579"><a href="#Join-1579"><span class="linenos">1579</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-1580"><a href="#Join-1580"><span class="linenos">1580</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join-1581"><a href="#Join-1581"><span class="linenos">1581</span></a>
-</span><span id="Join-1582"><a href="#Join-1582"><span class="linenos">1582</span></a><span class="sd"> Example:</span>
-</span><span id="Join-1583"><a href="#Join-1583"><span class="linenos">1583</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-1584"><a href="#Join-1584"><span class="linenos">1584</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-1585"><a href="#Join-1585"><span class="linenos">1585</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join-1586"><a href="#Join-1586"><span class="linenos">1586</span></a>
-</span><span id="Join-1587"><a href="#Join-1587"><span class="linenos">1587</span></a><span class="sd"> Args:</span>
-</span><span id="Join-1588"><a href="#Join-1588"><span class="linenos">1588</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join-1589"><a href="#Join-1589"><span class="linenos">1589</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-1590"><a href="#Join-1590"><span class="linenos">1590</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join-1591"><a href="#Join-1591"><span class="linenos">1591</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-1592"><a href="#Join-1592"><span class="linenos">1592</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join-1593"><a href="#Join-1593"><span class="linenos">1593</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-1594"><a href="#Join-1594"><span class="linenos">1594</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join-1595"><a href="#Join-1595"><span class="linenos">1595</span></a>
-</span><span id="Join-1596"><a href="#Join-1596"><span class="linenos">1596</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-1597"><a href="#Join-1597"><span class="linenos">1597</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join-1598"><a href="#Join-1598"><span class="linenos">1598</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-1599"><a href="#Join-1599"><span class="linenos">1599</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-1600"><a href="#Join-1600"><span class="linenos">1600</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-1601"><a href="#Join-1601"><span class="linenos">1601</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1602"><a href="#Join-1602"><span class="linenos">1602</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-1603"><a href="#Join-1603"><span class="linenos">1603</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-1604"><a href="#Join-1604"><span class="linenos">1604</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-1605"><a href="#Join-1605"><span class="linenos">1605</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-1606"><a href="#Join-1606"><span class="linenos">1606</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1607"><a href="#Join-1607"><span class="linenos">1607</span></a> <span class="p">)</span>
-</span><span id="Join-1608"><a href="#Join-1608"><span class="linenos">1608</span></a>
-</span><span id="Join-1609"><a href="#Join-1609"><span class="linenos">1609</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-1610"><a href="#Join-1610"><span class="linenos">1610</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-1611"><a href="#Join-1611"><span class="linenos">1611</span></a>
-</span><span id="Join-1612"><a href="#Join-1612"><span class="linenos">1612</span></a> <span class="k">return</span> <span class="n">join</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1654"><a href="#Join-1654"><span class="linenos">1654</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-1655"><a href="#Join-1655"><span class="linenos">1655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Join-1656"><a href="#Join-1656"><span class="linenos">1656</span></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-1657"><a href="#Join-1657"><span class="linenos">1657</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-1658"><a href="#Join-1658"><span class="linenos">1658</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-1659"><a href="#Join-1659"><span class="linenos">1659</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-1660"><a href="#Join-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="Join-1661"><a href="#Join-1661"><span class="linenos">1661</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-1662"><a href="#Join-1662"><span class="linenos">1662</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-1663"><a href="#Join-1663"><span class="linenos">1663</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-1664"><a href="#Join-1664"><span class="linenos">1664</span></a> <span class="p">}</span>
+</span><span id="Join-1665"><a href="#Join-1665"><span class="linenos">1665</span></a>
+</span><span id="Join-1666"><a href="#Join-1666"><span class="linenos">1666</span></a> <span class="nd">@property</span>
+</span><span id="Join-1667"><a href="#Join-1667"><span class="linenos">1667</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-1668"><a href="#Join-1668"><span class="linenos">1668</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-1669"><a href="#Join-1669"><span class="linenos">1669</span></a>
+</span><span id="Join-1670"><a href="#Join-1670"><span class="linenos">1670</span></a> <span class="nd">@property</span>
+</span><span id="Join-1671"><a href="#Join-1671"><span class="linenos">1671</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-1672"><a href="#Join-1672"><span class="linenos">1672</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-1673"><a href="#Join-1673"><span class="linenos">1673</span></a>
+</span><span id="Join-1674"><a href="#Join-1674"><span class="linenos">1674</span></a> <span class="nd">@property</span>
+</span><span id="Join-1675"><a href="#Join-1675"><span class="linenos">1675</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-1676"><a href="#Join-1676"><span class="linenos">1676</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-1677"><a href="#Join-1677"><span class="linenos">1677</span></a>
+</span><span id="Join-1678"><a href="#Join-1678"><span class="linenos">1678</span></a> <span class="nd">@property</span>
+</span><span id="Join-1679"><a href="#Join-1679"><span class="linenos">1679</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-1680"><a href="#Join-1680"><span class="linenos">1680</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-1681"><a href="#Join-1681"><span class="linenos">1681</span></a>
+</span><span id="Join-1682"><a href="#Join-1682"><span class="linenos">1682</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="Join-1683"><a href="#Join-1683"><span class="linenos">1683</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1684"><a href="#Join-1684"><span class="linenos">1684</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-1685"><a href="#Join-1685"><span class="linenos">1685</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-1686"><a href="#Join-1686"><span class="linenos">1686</span></a> <span class="n">dialect</span><span 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-1687"><a href="#Join-1687"><span class="linenos">1687</span></a> <span class="n">copy</span><span 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-1688"><a href="#Join-1688"><span class="linenos">1688</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1689"><a href="#Join-1689"><span class="linenos">1689</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join-1690"><a href="#Join-1690"><span class="linenos">1690</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-1691"><a href="#Join-1691"><span class="linenos">1691</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join-1692"><a href="#Join-1692"><span class="linenos">1692</span></a>
+</span><span id="Join-1693"><a href="#Join-1693"><span class="linenos">1693</span></a><span class="sd"> Example:</span>
+</span><span id="Join-1694"><a href="#Join-1694"><span class="linenos">1694</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-1695"><a href="#Join-1695"><span class="linenos">1695</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-1696"><a href="#Join-1696"><span class="linenos">1696</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="Join-1697"><a href="#Join-1697"><span class="linenos">1697</span></a>
+</span><span id="Join-1698"><a href="#Join-1698"><span class="linenos">1698</span></a><span class="sd"> Args:</span>
+</span><span id="Join-1699"><a href="#Join-1699"><span class="linenos">1699</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join-1700"><a href="#Join-1700"><span class="linenos">1700</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-1701"><a href="#Join-1701"><span class="linenos">1701</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join-1702"><a href="#Join-1702"><span class="linenos">1702</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join-1703"><a href="#Join-1703"><span class="linenos">1703</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-1704"><a href="#Join-1704"><span class="linenos">1704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join-1705"><a href="#Join-1705"><span class="linenos">1705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-1706"><a href="#Join-1706"><span class="linenos">1706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join-1707"><a href="#Join-1707"><span class="linenos">1707</span></a>
+</span><span id="Join-1708"><a href="#Join-1708"><span class="linenos">1708</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-1709"><a href="#Join-1709"><span class="linenos">1709</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join-1710"><a href="#Join-1710"><span class="linenos">1710</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-1711"><a href="#Join-1711"><span class="linenos">1711</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-1712"><a href="#Join-1712"><span class="linenos">1712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-1713"><a href="#Join-1713"><span class="linenos">1713</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1714"><a href="#Join-1714"><span class="linenos">1714</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-1715"><a href="#Join-1715"><span class="linenos">1715</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-1716"><a href="#Join-1716"><span class="linenos">1716</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-1717"><a href="#Join-1717"><span class="linenos">1717</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-1718"><a href="#Join-1718"><span class="linenos">1718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1719"><a href="#Join-1719"><span class="linenos">1719</span></a> <span class="p">)</span>
+</span><span id="Join-1720"><a href="#Join-1720"><span class="linenos">1720</span></a>
+</span><span id="Join-1721"><a href="#Join-1721"><span class="linenos">1721</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-1722"><a href="#Join-1722"><span class="linenos">1722</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-1723"><a href="#Join-1723"><span class="linenos">1723</span></a>
+</span><span id="Join-1724"><a href="#Join-1724"><span class="linenos">1724</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join-1725"><a href="#Join-1725"><span class="linenos">1725</span></a>
+</span><span id="Join-1726"><a href="#Join-1726"><span class="linenos">1726</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="Join-1727"><a href="#Join-1727"><span class="linenos">1727</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1728"><a href="#Join-1728"><span class="linenos">1728</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-1729"><a href="#Join-1729"><span class="linenos">1729</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-1730"><a href="#Join-1730"><span class="linenos">1730</span></a> <span class="n">dialect</span><span 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-1731"><a href="#Join-1731"><span class="linenos">1731</span></a> <span class="n">copy</span><span 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-1732"><a href="#Join-1732"><span class="linenos">1732</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1733"><a href="#Join-1733"><span class="linenos">1733</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join-1734"><a href="#Join-1734"><span class="linenos">1734</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-1735"><a href="#Join-1735"><span class="linenos">1735</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join-1736"><a href="#Join-1736"><span class="linenos">1736</span></a>
+</span><span id="Join-1737"><a href="#Join-1737"><span class="linenos">1737</span></a><span class="sd"> Example:</span>
+</span><span id="Join-1738"><a href="#Join-1738"><span class="linenos">1738</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-1739"><a href="#Join-1739"><span class="linenos">1739</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-1740"><a href="#Join-1740"><span class="linenos">1740</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="Join-1741"><a href="#Join-1741"><span class="linenos">1741</span></a>
+</span><span id="Join-1742"><a href="#Join-1742"><span class="linenos">1742</span></a><span class="sd"> Args:</span>
+</span><span id="Join-1743"><a href="#Join-1743"><span class="linenos">1743</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join-1744"><a href="#Join-1744"><span class="linenos">1744</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-1745"><a href="#Join-1745"><span class="linenos">1745</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join-1746"><a href="#Join-1746"><span class="linenos">1746</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-1747"><a href="#Join-1747"><span class="linenos">1747</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join-1748"><a href="#Join-1748"><span class="linenos">1748</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-1749"><a href="#Join-1749"><span class="linenos">1749</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join-1750"><a href="#Join-1750"><span class="linenos">1750</span></a>
+</span><span id="Join-1751"><a href="#Join-1751"><span class="linenos">1751</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-1752"><a href="#Join-1752"><span class="linenos">1752</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join-1753"><a href="#Join-1753"><span class="linenos">1753</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-1754"><a href="#Join-1754"><span class="linenos">1754</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-1755"><a href="#Join-1755"><span class="linenos">1755</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-1756"><a href="#Join-1756"><span class="linenos">1756</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1757"><a href="#Join-1757"><span class="linenos">1757</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-1758"><a href="#Join-1758"><span class="linenos">1758</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-1759"><a href="#Join-1759"><span class="linenos">1759</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-1760"><a href="#Join-1760"><span class="linenos">1760</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-1761"><a href="#Join-1761"><span class="linenos">1761</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1762"><a href="#Join-1762"><span class="linenos">1762</span></a> <span class="p">)</span>
+</span><span id="Join-1763"><a href="#Join-1763"><span class="linenos">1763</span></a>
+</span><span id="Join-1764"><a href="#Join-1764"><span class="linenos">1764</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-1765"><a href="#Join-1765"><span class="linenos">1765</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-1766"><a href="#Join-1766"><span class="linenos">1766</span></a>
+</span><span id="Join-1767"><a href="#Join-1767"><span class="linenos">1767</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -16960,48 +18099,55 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">on</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">append</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">on</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Join">sqlglot.expressions.Join</a></span>:</span></span>
<label class="view-source-button" for="Join.on-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Join.on"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1541"><a href="#Join.on-1541"><span class="linenos">1541</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Join.on-1542"><a href="#Join.on-1542"><span class="linenos">1542</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.on-1543"><a href="#Join.on-1543"><span class="linenos">1543</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join.on-1544"><a href="#Join.on-1544"><span class="linenos">1544</span></a>
-</span><span id="Join.on-1545"><a href="#Join.on-1545"><span class="linenos">1545</span></a><span class="sd"> Example:</span>
-</span><span id="Join.on-1546"><a href="#Join.on-1546"><span class="linenos">1546</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.on-1547"><a href="#Join.on-1547"><span class="linenos">1547</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-1548"><a href="#Join.on-1548"><span class="linenos">1548</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join.on-1549"><a href="#Join.on-1549"><span class="linenos">1549</span></a>
-</span><span id="Join.on-1550"><a href="#Join.on-1550"><span class="linenos">1550</span></a><span class="sd"> Args:</span>
-</span><span id="Join.on-1551"><a href="#Join.on-1551"><span class="linenos">1551</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join.on-1552"><a href="#Join.on-1552"><span class="linenos">1552</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.on-1553"><a href="#Join.on-1553"><span class="linenos">1553</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join.on-1554"><a href="#Join.on-1554"><span class="linenos">1554</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join.on-1555"><a href="#Join.on-1555"><span class="linenos">1555</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.on-1556"><a href="#Join.on-1556"><span class="linenos">1556</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join.on-1557"><a href="#Join.on-1557"><span class="linenos">1557</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.on-1558"><a href="#Join.on-1558"><span class="linenos">1558</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join.on-1559"><a href="#Join.on-1559"><span class="linenos">1559</span></a>
-</span><span id="Join.on-1560"><a href="#Join.on-1560"><span class="linenos">1560</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.on-1561"><a href="#Join.on-1561"><span class="linenos">1561</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join.on-1562"><a href="#Join.on-1562"><span class="linenos">1562</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.on-1563"><a href="#Join.on-1563"><span class="linenos">1563</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-1564"><a href="#Join.on-1564"><span class="linenos">1564</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.on-1565"><a href="#Join.on-1565"><span class="linenos">1565</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-1566"><a href="#Join.on-1566"><span class="linenos">1566</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-1567"><a href="#Join.on-1567"><span class="linenos">1567</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-1568"><a href="#Join.on-1568"><span class="linenos">1568</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-1569"><a href="#Join.on-1569"><span class="linenos">1569</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-1570"><a href="#Join.on-1570"><span class="linenos">1570</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.on-1571"><a href="#Join.on-1571"><span class="linenos">1571</span></a> <span class="p">)</span>
-</span><span id="Join.on-1572"><a href="#Join.on-1572"><span class="linenos">1572</span></a>
-</span><span id="Join.on-1573"><a href="#Join.on-1573"><span class="linenos">1573</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-1574"><a href="#Join.on-1574"><span class="linenos">1574</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-1575"><a href="#Join.on-1575"><span class="linenos">1575</span></a>
-</span><span id="Join.on-1576"><a href="#Join.on-1576"><span class="linenos">1576</span></a> <span class="k">return</span> <span class="n">join</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1682"><a href="#Join.on-1682"><span class="linenos">1682</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="Join.on-1683"><a href="#Join.on-1683"><span class="linenos">1683</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.on-1684"><a href="#Join.on-1684"><span class="linenos">1684</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-1685"><a href="#Join.on-1685"><span class="linenos">1685</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-1686"><a href="#Join.on-1686"><span class="linenos">1686</span></a> <span class="n">dialect</span><span 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-1687"><a href="#Join.on-1687"><span class="linenos">1687</span></a> <span class="n">copy</span><span 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-1688"><a href="#Join.on-1688"><span class="linenos">1688</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-1689"><a href="#Join.on-1689"><span class="linenos">1689</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-1690"><a href="#Join.on-1690"><span class="linenos">1690</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.on-1691"><a href="#Join.on-1691"><span class="linenos">1691</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join.on-1692"><a href="#Join.on-1692"><span class="linenos">1692</span></a>
+</span><span id="Join.on-1693"><a href="#Join.on-1693"><span class="linenos">1693</span></a><span class="sd"> Example:</span>
+</span><span id="Join.on-1694"><a href="#Join.on-1694"><span class="linenos">1694</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.on-1695"><a href="#Join.on-1695"><span class="linenos">1695</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-1696"><a href="#Join.on-1696"><span class="linenos">1696</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="Join.on-1697"><a href="#Join.on-1697"><span class="linenos">1697</span></a>
+</span><span id="Join.on-1698"><a href="#Join.on-1698"><span class="linenos">1698</span></a><span class="sd"> Args:</span>
+</span><span id="Join.on-1699"><a href="#Join.on-1699"><span class="linenos">1699</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join.on-1700"><a href="#Join.on-1700"><span class="linenos">1700</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.on-1701"><a href="#Join.on-1701"><span class="linenos">1701</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join.on-1702"><a href="#Join.on-1702"><span class="linenos">1702</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join.on-1703"><a href="#Join.on-1703"><span class="linenos">1703</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.on-1704"><a href="#Join.on-1704"><span class="linenos">1704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join.on-1705"><a href="#Join.on-1705"><span class="linenos">1705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.on-1706"><a href="#Join.on-1706"><span class="linenos">1706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join.on-1707"><a href="#Join.on-1707"><span class="linenos">1707</span></a>
+</span><span id="Join.on-1708"><a href="#Join.on-1708"><span class="linenos">1708</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.on-1709"><a href="#Join.on-1709"><span class="linenos">1709</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join.on-1710"><a href="#Join.on-1710"><span class="linenos">1710</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.on-1711"><a href="#Join.on-1711"><span class="linenos">1711</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-1712"><a href="#Join.on-1712"><span class="linenos">1712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.on-1713"><a href="#Join.on-1713"><span class="linenos">1713</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-1714"><a href="#Join.on-1714"><span class="linenos">1714</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-1715"><a href="#Join.on-1715"><span class="linenos">1715</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-1716"><a href="#Join.on-1716"><span class="linenos">1716</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-1717"><a href="#Join.on-1717"><span class="linenos">1717</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-1718"><a href="#Join.on-1718"><span class="linenos">1718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-1719"><a href="#Join.on-1719"><span class="linenos">1719</span></a> <span class="p">)</span>
+</span><span id="Join.on-1720"><a href="#Join.on-1720"><span class="linenos">1720</span></a>
+</span><span id="Join.on-1721"><a href="#Join.on-1721"><span class="linenos">1721</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-1722"><a href="#Join.on-1722"><span class="linenos">1722</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-1723"><a href="#Join.on-1723"><span class="linenos">1723</span></a>
+</span><span id="Join.on-1724"><a href="#Join.on-1724"><span class="linenos">1724</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -17021,20 +18167,20 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.
+<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Join: the modified join expression.</p>
+ <p>The modified Join expression.</p>
</blockquote>
</div>
@@ -17045,47 +18191,54 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">using</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">append</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">using</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Join">sqlglot.expressions.Join</a></span>:</span></span>
<label class="view-source-button" for="Join.using-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Join.using"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1578"><a href="#Join.using-1578"><span class="linenos">1578</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="Join.using-1579"><a href="#Join.using-1579"><span class="linenos">1579</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.using-1580"><a href="#Join.using-1580"><span class="linenos">1580</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join.using-1581"><a href="#Join.using-1581"><span class="linenos">1581</span></a>
-</span><span id="Join.using-1582"><a href="#Join.using-1582"><span class="linenos">1582</span></a><span class="sd"> Example:</span>
-</span><span id="Join.using-1583"><a href="#Join.using-1583"><span class="linenos">1583</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.using-1584"><a href="#Join.using-1584"><span class="linenos">1584</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-1585"><a href="#Join.using-1585"><span class="linenos">1585</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join.using-1586"><a href="#Join.using-1586"><span class="linenos">1586</span></a>
-</span><span id="Join.using-1587"><a href="#Join.using-1587"><span class="linenos">1587</span></a><span class="sd"> Args:</span>
-</span><span id="Join.using-1588"><a href="#Join.using-1588"><span class="linenos">1588</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join.using-1589"><a href="#Join.using-1589"><span class="linenos">1589</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.using-1590"><a href="#Join.using-1590"><span class="linenos">1590</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join.using-1591"><a href="#Join.using-1591"><span class="linenos">1591</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.using-1592"><a href="#Join.using-1592"><span class="linenos">1592</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join.using-1593"><a href="#Join.using-1593"><span class="linenos">1593</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.using-1594"><a href="#Join.using-1594"><span class="linenos">1594</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join.using-1595"><a href="#Join.using-1595"><span class="linenos">1595</span></a>
-</span><span id="Join.using-1596"><a href="#Join.using-1596"><span class="linenos">1596</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.using-1597"><a href="#Join.using-1597"><span class="linenos">1597</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join.using-1598"><a href="#Join.using-1598"><span class="linenos">1598</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.using-1599"><a href="#Join.using-1599"><span class="linenos">1599</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-1600"><a href="#Join.using-1600"><span class="linenos">1600</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.using-1601"><a href="#Join.using-1601"><span class="linenos">1601</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-1602"><a href="#Join.using-1602"><span class="linenos">1602</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-1603"><a href="#Join.using-1603"><span class="linenos">1603</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-1604"><a href="#Join.using-1604"><span class="linenos">1604</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-1605"><a href="#Join.using-1605"><span class="linenos">1605</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-1606"><a href="#Join.using-1606"><span class="linenos">1606</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.using-1607"><a href="#Join.using-1607"><span class="linenos">1607</span></a> <span class="p">)</span>
-</span><span id="Join.using-1608"><a href="#Join.using-1608"><span class="linenos">1608</span></a>
-</span><span id="Join.using-1609"><a href="#Join.using-1609"><span class="linenos">1609</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-1610"><a href="#Join.using-1610"><span class="linenos">1610</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-1611"><a href="#Join.using-1611"><span class="linenos">1611</span></a>
-</span><span id="Join.using-1612"><a href="#Join.using-1612"><span class="linenos">1612</span></a> <span class="k">return</span> <span class="n">join</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1726"><a href="#Join.using-1726"><span class="linenos">1726</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="Join.using-1727"><a href="#Join.using-1727"><span class="linenos">1727</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.using-1728"><a href="#Join.using-1728"><span class="linenos">1728</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-1729"><a href="#Join.using-1729"><span class="linenos">1729</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-1730"><a href="#Join.using-1730"><span class="linenos">1730</span></a> <span class="n">dialect</span><span 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-1731"><a href="#Join.using-1731"><span class="linenos">1731</span></a> <span class="n">copy</span><span 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-1732"><a href="#Join.using-1732"><span class="linenos">1732</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-1733"><a href="#Join.using-1733"><span class="linenos">1733</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-1734"><a href="#Join.using-1734"><span class="linenos">1734</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.using-1735"><a href="#Join.using-1735"><span class="linenos">1735</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join.using-1736"><a href="#Join.using-1736"><span class="linenos">1736</span></a>
+</span><span id="Join.using-1737"><a href="#Join.using-1737"><span class="linenos">1737</span></a><span class="sd"> Example:</span>
+</span><span id="Join.using-1738"><a href="#Join.using-1738"><span class="linenos">1738</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.using-1739"><a href="#Join.using-1739"><span class="linenos">1739</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-1740"><a href="#Join.using-1740"><span class="linenos">1740</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="Join.using-1741"><a href="#Join.using-1741"><span class="linenos">1741</span></a>
+</span><span id="Join.using-1742"><a href="#Join.using-1742"><span class="linenos">1742</span></a><span class="sd"> Args:</span>
+</span><span id="Join.using-1743"><a href="#Join.using-1743"><span class="linenos">1743</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join.using-1744"><a href="#Join.using-1744"><span class="linenos">1744</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.using-1745"><a href="#Join.using-1745"><span class="linenos">1745</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-1746"><a href="#Join.using-1746"><span class="linenos">1746</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.using-1747"><a href="#Join.using-1747"><span class="linenos">1747</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join.using-1748"><a href="#Join.using-1748"><span class="linenos">1748</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.using-1749"><a href="#Join.using-1749"><span class="linenos">1749</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join.using-1750"><a href="#Join.using-1750"><span class="linenos">1750</span></a>
+</span><span id="Join.using-1751"><a href="#Join.using-1751"><span class="linenos">1751</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.using-1752"><a href="#Join.using-1752"><span class="linenos">1752</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join.using-1753"><a href="#Join.using-1753"><span class="linenos">1753</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.using-1754"><a href="#Join.using-1754"><span class="linenos">1754</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-1755"><a href="#Join.using-1755"><span class="linenos">1755</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.using-1756"><a href="#Join.using-1756"><span class="linenos">1756</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-1757"><a href="#Join.using-1757"><span class="linenos">1757</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-1758"><a href="#Join.using-1758"><span class="linenos">1758</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-1759"><a href="#Join.using-1759"><span class="linenos">1759</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-1760"><a href="#Join.using-1760"><span class="linenos">1760</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-1761"><a href="#Join.using-1761"><span class="linenos">1761</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-1762"><a href="#Join.using-1762"><span class="linenos">1762</span></a> <span class="p">)</span>
+</span><span id="Join.using-1763"><a href="#Join.using-1763"><span class="linenos">1763</span></a>
+</span><span id="Join.using-1764"><a href="#Join.using-1764"><span class="linenos">1764</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-1765"><a href="#Join.using-1765"><span class="linenos">1765</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-1766"><a href="#Join.using-1766"><span class="linenos">1766</span></a>
+</span><span id="Join.using-1767"><a href="#Join.using-1767"><span class="linenos">1767</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -17105,19 +18258,19 @@ Otherwise, this resets the expression.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, concatenate the new expressions to the existing "using" list.
+<li><strong>append:</strong> if <code>True</code>, concatenate the new expressions to the existing "using" list.
Otherwise, this resets the expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Join: the modified join expression.</p>
+ <p>The modified Join expression.</p>
</blockquote>
</div>
@@ -17139,6 +18292,7 @@ Otherwise, this resets the expression.</li>
<dd id="Join.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Join.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Join.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Join.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Join.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17180,8 +18334,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-1615"><a href="#Lateral-1615"><span class="linenos">1615</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-1616"><a href="#Lateral-1616"><span class="linenos">1616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1770"><a href="#Lateral-1770"><span class="linenos">1770</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-1771"><a href="#Lateral-1771"><span class="linenos">1771</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -17203,6 +18357,7 @@ Otherwise, this resets the expression.</li>
<dd id="Lateral.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lateral.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Lateral.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lateral.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lateral.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17250,17 +18405,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-1619"><a href="#MatchRecognize-1619"><span class="linenos">1619</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-1620"><a href="#MatchRecognize-1620"><span class="linenos">1620</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MatchRecognize-1621"><a href="#MatchRecognize-1621"><span class="linenos">1621</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-1622"><a href="#MatchRecognize-1622"><span class="linenos">1622</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-1623"><a href="#MatchRecognize-1623"><span class="linenos">1623</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-1624"><a href="#MatchRecognize-1624"><span class="linenos">1624</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-1625"><a href="#MatchRecognize-1625"><span class="linenos">1625</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-1626"><a href="#MatchRecognize-1626"><span class="linenos">1626</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-1627"><a href="#MatchRecognize-1627"><span class="linenos">1627</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-1628"><a href="#MatchRecognize-1628"><span class="linenos">1628</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-1629"><a href="#MatchRecognize-1629"><span class="linenos">1629</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-1774"><a href="#MatchRecognize-1774"><span class="linenos">1774</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-1775"><a href="#MatchRecognize-1775"><span class="linenos">1775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MatchRecognize-1776"><a href="#MatchRecognize-1776"><span class="linenos">1776</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-1777"><a href="#MatchRecognize-1777"><span class="linenos">1777</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-1778"><a href="#MatchRecognize-1778"><span class="linenos">1778</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-1779"><a href="#MatchRecognize-1779"><span class="linenos">1779</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-1780"><a href="#MatchRecognize-1780"><span class="linenos">1780</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-1781"><a href="#MatchRecognize-1781"><span class="linenos">1781</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-1782"><a href="#MatchRecognize-1782"><span class="linenos">1782</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-1783"><a href="#MatchRecognize-1783"><span class="linenos">1783</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-1784"><a href="#MatchRecognize-1784"><span class="linenos">1784</span></a> <span class="p">}</span>
</span></pre></div>
@@ -17282,6 +18437,7 @@ Otherwise, this resets the expression.</li>
<dd id="MatchRecognize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MatchRecognize.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="MatchRecognize.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MatchRecognize.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MatchRecognize.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17323,8 +18479,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-1634"><a href="#Final-1634"><span class="linenos">1634</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-1635"><a href="#Final-1635"><span class="linenos">1635</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Final-1789"><a href="#Final-1789"><span class="linenos">1789</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-1790"><a href="#Final-1790"><span class="linenos">1790</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -17346,6 +18502,7 @@ Otherwise, this resets the expression.</li>
<dd id="Final.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Final.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Final.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Final.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Final.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17387,8 +18544,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-1638"><a href="#Offset-1638"><span class="linenos">1638</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-1639"><a href="#Offset-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">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-1793"><a href="#Offset-1793"><span class="linenos">1793</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-1794"><a href="#Offset-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">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>
@@ -17410,6 +18567,7 @@ Otherwise, this resets the expression.</li>
<dd id="Offset.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Offset.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Offset.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Offset.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Offset.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17451,8 +18609,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-1642"><a href="#Order-1642"><span class="linenos">1642</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-1643"><a href="#Order-1643"><span class="linenos">1643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1797"><a href="#Order-1797"><span class="linenos">1797</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-1798"><a href="#Order-1798"><span class="linenos">1798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -17474,6 +18632,7 @@ Otherwise, this resets the expression.</li>
<dd id="Order.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Order.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Order.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Order.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Order.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17515,8 +18674,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-1648"><a href="#Cluster-1648"><span class="linenos">1648</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-1649"><a href="#Cluster-1649"><span class="linenos">1649</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-1803"><a href="#Cluster-1803"><span class="linenos">1803</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-1804"><a href="#Cluster-1804"><span class="linenos">1804</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -17538,6 +18697,7 @@ Otherwise, this resets the expression.</li>
<dd id="Cluster.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Cluster.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Cluster.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Cluster.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Cluster.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17579,8 +18739,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-1652"><a href="#Distribute-1652"><span class="linenos">1652</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-1653"><a href="#Distribute-1653"><span class="linenos">1653</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-1807"><a href="#Distribute-1807"><span class="linenos">1807</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-1808"><a href="#Distribute-1808"><span class="linenos">1808</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -17602,6 +18762,7 @@ Otherwise, this resets the expression.</li>
<dd id="Distribute.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Distribute.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Distribute.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Distribute.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Distribute.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17643,8 +18804,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-1656"><a href="#Sort-1656"><span class="linenos">1656</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-1657"><a href="#Sort-1657"><span class="linenos">1657</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-1811"><a href="#Sort-1811"><span class="linenos">1811</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-1812"><a href="#Sort-1812"><span class="linenos">1812</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -17666,6 +18827,7 @@ Otherwise, this resets the expression.</li>
<dd id="Sort.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sort.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Sort.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sort.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sort.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17707,8 +18869,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-1660"><a href="#Ordered-1660"><span class="linenos">1660</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-1661"><a href="#Ordered-1661"><span class="linenos">1661</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-1815"><a href="#Ordered-1815"><span class="linenos">1815</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-1816"><a href="#Ordered-1816"><span class="linenos">1816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -17730,6 +18892,7 @@ Otherwise, this resets the expression.</li>
<dd id="Ordered.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Ordered.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Ordered.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Ordered.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Ordered.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17771,8 +18934,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-1664"><a href="#Property-1664"><span class="linenos">1664</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-1665"><a href="#Property-1665"><span class="linenos">1665</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1819"><a href="#Property-1819"><span class="linenos">1819</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-1820"><a href="#Property-1820"><span class="linenos">1820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -17794,6 +18957,7 @@ Otherwise, this resets the expression.</li>
<dd id="Property.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Property.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Property.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Property.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Property.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17824,70 +18988,6 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
- <section id="AfterJournalProperty">
- <input id="AfterJournalProperty-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">AfterJournalProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
-
- <label class="view-source-button" for="AfterJournalProperty-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#AfterJournalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AfterJournalProperty-1668"><a href="#AfterJournalProperty-1668"><span class="linenos">1668</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="AfterJournalProperty-1669"><a href="#AfterJournalProperty-1669"><span class="linenos">1669</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="AfterJournalProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="AfterJournalProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="AfterJournalProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="AfterJournalProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="AfterJournalProperty.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="AfterJournalProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="AfterJournalProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="AfterJournalProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="AfterJournalProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="AfterJournalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="AfterJournalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="AfterJournalProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="AfterJournalProperty.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="AfterJournalProperty.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="AfterJournalProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="AfterJournalProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="AfterJournalProperty.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="AfterJournalProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="AfterJournalProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="AfterJournalProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="AfterJournalProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="AfterJournalProperty.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="AfterJournalProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="AfterJournalProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="AfterJournalProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="AfterJournalProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="AfterJournalProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="AfterJournalProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="AfterJournalProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="AfterJournalProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="AfterJournalProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="AfterJournalProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="AfterJournalProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="AfterJournalProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="AfterJournalProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="AfterJournalProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="AfterJournalProperty.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="AlgorithmProperty">
<input id="AlgorithmProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -17899,8 +18999,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-1672"><a href="#AlgorithmProperty-1672"><span class="linenos">1672</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-1673"><a href="#AlgorithmProperty-1673"><span class="linenos">1673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlgorithmProperty-1823"><a href="#AlgorithmProperty-1823"><span class="linenos">1823</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-1824"><a href="#AlgorithmProperty-1824"><span class="linenos">1824</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17922,6 +19022,7 @@ Otherwise, this resets the expression.</li>
<dd id="AlgorithmProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AlgorithmProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AlgorithmProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AlgorithmProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AlgorithmProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -17963,8 +19064,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-1676"><a href="#AutoIncrementProperty-1676"><span class="linenos">1676</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-1677"><a href="#AutoIncrementProperty-1677"><span class="linenos">1677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementProperty-1827"><a href="#AutoIncrementProperty-1827"><span class="linenos">1827</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-1828"><a href="#AutoIncrementProperty-1828"><span class="linenos">1828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17986,6 +19087,7 @@ Otherwise, this resets the expression.</li>
<dd id="AutoIncrementProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AutoIncrementProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AutoIncrementProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AutoIncrementProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AutoIncrementProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18027,8 +19129,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-1680"><a href="#BlockCompressionProperty-1680"><span class="linenos">1680</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-1681"><a href="#BlockCompressionProperty-1681"><span class="linenos">1681</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-1831"><a href="#BlockCompressionProperty-1831"><span class="linenos">1831</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-1832"><a href="#BlockCompressionProperty-1832"><span class="linenos">1832</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>
@@ -18050,6 +19152,7 @@ Otherwise, this resets the expression.</li>
<dd id="BlockCompressionProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BlockCompressionProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BlockCompressionProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BlockCompressionProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BlockCompressionProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18091,8 +19194,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-1684"><a href="#CharacterSetProperty-1684"><span class="linenos">1684</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-1685"><a href="#CharacterSetProperty-1685"><span class="linenos">1685</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1835"><a href="#CharacterSetProperty-1835"><span class="linenos">1835</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-1836"><a href="#CharacterSetProperty-1836"><span class="linenos">1836</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18114,6 +19217,7 @@ Otherwise, this resets the expression.</li>
<dd id="CharacterSetProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CharacterSetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CharacterSetProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CharacterSetProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CharacterSetProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18155,8 +19259,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-1688"><a href="#ChecksumProperty-1688"><span class="linenos">1688</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-1689"><a href="#ChecksumProperty-1689"><span class="linenos">1689</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-1839"><a href="#ChecksumProperty-1839"><span class="linenos">1839</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-1840"><a href="#ChecksumProperty-1840"><span class="linenos">1840</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>
@@ -18178,6 +19282,7 @@ Otherwise, this resets the expression.</li>
<dd id="ChecksumProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ChecksumProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ChecksumProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ChecksumProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ChecksumProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18219,8 +19324,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-1692"><a href="#CollateProperty-1692"><span class="linenos">1692</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-1693"><a href="#CollateProperty-1693"><span class="linenos">1693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CollateProperty-1843"><a href="#CollateProperty-1843"><span class="linenos">1843</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-1844"><a href="#CollateProperty-1844"><span class="linenos">1844</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18242,6 +19347,7 @@ Otherwise, this resets the expression.</li>
<dd id="CollateProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CollateProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CollateProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CollateProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CollateProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18283,8 +19389,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-1696"><a href="#DataBlocksizeProperty-1696"><span class="linenos">1696</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-1697"><a href="#DataBlocksizeProperty-1697"><span class="linenos">1697</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-1847"><a href="#DataBlocksizeProperty-1847"><span class="linenos">1847</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-1848"><a href="#DataBlocksizeProperty-1848"><span class="linenos">1848</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataBlocksizeProperty-1849"><a href="#DataBlocksizeProperty-1849"><span class="linenos">1849</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-1850"><a href="#DataBlocksizeProperty-1850"><span class="linenos">1850</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-1851"><a href="#DataBlocksizeProperty-1851"><span class="linenos">1851</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-1852"><a href="#DataBlocksizeProperty-1852"><span class="linenos">1852</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-1853"><a href="#DataBlocksizeProperty-1853"><span class="linenos">1853</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-1854"><a href="#DataBlocksizeProperty-1854"><span class="linenos">1854</span></a> <span class="p">}</span>
</span></pre></div>
@@ -18306,6 +19418,7 @@ Otherwise, this resets the expression.</li>
<dd id="DataBlocksizeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DataBlocksizeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DataBlocksizeProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DataBlocksizeProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DataBlocksizeProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18347,8 +19460,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-1700"><a href="#DefinerProperty-1700"><span class="linenos">1700</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-1701"><a href="#DefinerProperty-1701"><span class="linenos">1701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1857"><a href="#DefinerProperty-1857"><span class="linenos">1857</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-1858"><a href="#DefinerProperty-1858"><span class="linenos">1858</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18370,6 +19483,7 @@ Otherwise, this resets the expression.</li>
<dd id="DefinerProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DefinerProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DefinerProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DefinerProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DefinerProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18411,8 +19525,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-1704"><a href="#DistKeyProperty-1704"><span class="linenos">1704</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-1705"><a href="#DistKeyProperty-1705"><span class="linenos">1705</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1861"><a href="#DistKeyProperty-1861"><span class="linenos">1861</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-1862"><a href="#DistKeyProperty-1862"><span class="linenos">1862</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18434,6 +19548,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistKeyProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DistKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DistKeyProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DistKeyProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DistKeyProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18475,8 +19590,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-1708"><a href="#DistStyleProperty-1708"><span class="linenos">1708</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-1709"><a href="#DistStyleProperty-1709"><span class="linenos">1709</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1865"><a href="#DistStyleProperty-1865"><span class="linenos">1865</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-1866"><a href="#DistStyleProperty-1866"><span class="linenos">1866</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18498,6 +19613,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistStyleProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DistStyleProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DistStyleProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DistStyleProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DistStyleProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18539,8 +19655,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-1712"><a href="#EngineProperty-1712"><span class="linenos">1712</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-1713"><a href="#EngineProperty-1713"><span class="linenos">1713</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1869"><a href="#EngineProperty-1869"><span class="linenos">1869</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-1870"><a href="#EngineProperty-1870"><span class="linenos">1870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18562,6 +19678,7 @@ Otherwise, this resets the expression.</li>
<dd id="EngineProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="EngineProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="EngineProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="EngineProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="EngineProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18603,8 +19720,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-1716"><a href="#ExecuteAsProperty-1716"><span class="linenos">1716</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-1717"><a href="#ExecuteAsProperty-1717"><span class="linenos">1717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1873"><a href="#ExecuteAsProperty-1873"><span class="linenos">1873</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-1874"><a href="#ExecuteAsProperty-1874"><span class="linenos">1874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18626,6 +19743,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExecuteAsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ExecuteAsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ExecuteAsProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ExecuteAsProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ExecuteAsProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18667,8 +19785,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-1720"><a href="#ExternalProperty-1720"><span class="linenos">1720</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-1721"><a href="#ExternalProperty-1721"><span class="linenos">1721</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1877"><a href="#ExternalProperty-1877"><span class="linenos">1877</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-1878"><a href="#ExternalProperty-1878"><span class="linenos">1878</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18690,6 +19808,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExternalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ExternalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ExternalProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ExternalProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ExternalProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18731,8 +19850,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-1724"><a href="#FallbackProperty-1724"><span class="linenos">1724</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-1725"><a href="#FallbackProperty-1725"><span class="linenos">1725</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-1881"><a href="#FallbackProperty-1881"><span class="linenos">1881</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-1882"><a href="#FallbackProperty-1882"><span class="linenos">1882</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>
@@ -18754,6 +19873,7 @@ Otherwise, this resets the expression.</li>
<dd id="FallbackProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FallbackProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="FallbackProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FallbackProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FallbackProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18795,8 +19915,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-1728"><a href="#FileFormatProperty-1728"><span class="linenos">1728</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-1729"><a href="#FileFormatProperty-1729"><span class="linenos">1729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1885"><a href="#FileFormatProperty-1885"><span class="linenos">1885</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-1886"><a href="#FileFormatProperty-1886"><span class="linenos">1886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18818,6 +19938,7 @@ Otherwise, this resets the expression.</li>
<dd id="FileFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FileFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="FileFormatProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FileFormatProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FileFormatProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18859,8 +19980,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-1732"><a href="#FreespaceProperty-1732"><span class="linenos">1732</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-1733"><a href="#FreespaceProperty-1733"><span class="linenos">1733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1889"><a href="#FreespaceProperty-1889"><span class="linenos">1889</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-1890"><a href="#FreespaceProperty-1890"><span class="linenos">1890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18882,6 +20003,7 @@ Otherwise, this resets the expression.</li>
<dd id="FreespaceProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FreespaceProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="FreespaceProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FreespaceProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FreespaceProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18923,8 +20045,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-1736"><a href="#InputOutputFormat-1736"><span class="linenos">1736</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-1737"><a href="#InputOutputFormat-1737"><span class="linenos">1737</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-1893"><a href="#InputOutputFormat-1893"><span class="linenos">1893</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-1894"><a href="#InputOutputFormat-1894"><span class="linenos">1894</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>
@@ -18946,6 +20068,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputOutputFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="InputOutputFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="InputOutputFormat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="InputOutputFormat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="InputOutputFormat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="InputOutputFormat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="InputOutputFormat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -18987,14 +20110,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-1740"><a href="#IsolatedLoadingProperty-1740"><span class="linenos">1740</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-1741"><a href="#IsolatedLoadingProperty-1741"><span class="linenos">1741</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="IsolatedLoadingProperty-1742"><a href="#IsolatedLoadingProperty-1742"><span class="linenos">1742</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-1743"><a href="#IsolatedLoadingProperty-1743"><span class="linenos">1743</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-1744"><a href="#IsolatedLoadingProperty-1744"><span class="linenos">1744</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-1745"><a href="#IsolatedLoadingProperty-1745"><span class="linenos">1745</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-1746"><a href="#IsolatedLoadingProperty-1746"><span class="linenos">1746</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-1747"><a href="#IsolatedLoadingProperty-1747"><span class="linenos">1747</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-1897"><a href="#IsolatedLoadingProperty-1897"><span class="linenos">1897</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-1898"><a href="#IsolatedLoadingProperty-1898"><span class="linenos">1898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="IsolatedLoadingProperty-1899"><a href="#IsolatedLoadingProperty-1899"><span class="linenos">1899</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-1900"><a href="#IsolatedLoadingProperty-1900"><span class="linenos">1900</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-1901"><a href="#IsolatedLoadingProperty-1901"><span class="linenos">1901</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-1902"><a href="#IsolatedLoadingProperty-1902"><span class="linenos">1902</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-1903"><a href="#IsolatedLoadingProperty-1903"><span class="linenos">1903</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-1904"><a href="#IsolatedLoadingProperty-1904"><span class="linenos">1904</span></a> <span class="p">}</span>
</span></pre></div>
@@ -19016,6 +20139,7 @@ Otherwise, this resets the expression.</li>
<dd id="IsolatedLoadingProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IsolatedLoadingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="IsolatedLoadingProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IsolatedLoadingProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IsolatedLoadingProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19057,8 +20181,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-1750"><a href="#JournalProperty-1750"><span class="linenos">1750</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-1751"><a href="#JournalProperty-1751"><span class="linenos">1751</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-1907"><a href="#JournalProperty-1907"><span class="linenos">1907</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-1908"><a href="#JournalProperty-1908"><span class="linenos">1908</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JournalProperty-1909"><a href="#JournalProperty-1909"><span class="linenos">1909</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-1910"><a href="#JournalProperty-1910"><span class="linenos">1910</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-1911"><a href="#JournalProperty-1911"><span class="linenos">1911</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-1912"><a href="#JournalProperty-1912"><span class="linenos">1912</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-1913"><a href="#JournalProperty-1913"><span class="linenos">1913</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-1914"><a href="#JournalProperty-1914"><span class="linenos">1914</span></a> <span class="p">}</span>
</span></pre></div>
@@ -19080,6 +20210,7 @@ Otherwise, this resets the expression.</li>
<dd id="JournalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JournalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JournalProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JournalProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JournalProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19121,8 +20252,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-1754"><a href="#LanguageProperty-1754"><span class="linenos">1754</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-1755"><a href="#LanguageProperty-1755"><span class="linenos">1755</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1917"><a href="#LanguageProperty-1917"><span class="linenos">1917</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-1918"><a href="#LanguageProperty-1918"><span class="linenos">1918</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19144,6 +20275,7 @@ Otherwise, this resets the expression.</li>
<dd id="LanguageProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LanguageProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LanguageProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LanguageProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LanguageProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19185,8 +20317,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-1758"><a href="#LikeProperty-1758"><span class="linenos">1758</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-1759"><a href="#LikeProperty-1759"><span class="linenos">1759</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1921"><a href="#LikeProperty-1921"><span class="linenos">1921</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-1922"><a href="#LikeProperty-1922"><span class="linenos">1922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -19208,6 +20340,7 @@ Otherwise, this resets the expression.</li>
<dd id="LikeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LikeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LikeProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LikeProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LikeProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19249,8 +20382,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-1762"><a href="#LocationProperty-1762"><span class="linenos">1762</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-1763"><a href="#LocationProperty-1763"><span class="linenos">1763</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1925"><a href="#LocationProperty-1925"><span class="linenos">1925</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-1926"><a href="#LocationProperty-1926"><span class="linenos">1926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19272,6 +20405,7 @@ Otherwise, this resets the expression.</li>
<dd id="LocationProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LocationProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LocationProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LocationProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LocationProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19313,14 +20447,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-1766"><a href="#LockingProperty-1766"><span class="linenos">1766</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-1767"><a href="#LockingProperty-1767"><span class="linenos">1767</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LockingProperty-1768"><a href="#LockingProperty-1768"><span class="linenos">1768</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-1769"><a href="#LockingProperty-1769"><span class="linenos">1769</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-1770"><a href="#LockingProperty-1770"><span class="linenos">1770</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="LockingProperty-1771"><a href="#LockingProperty-1771"><span class="linenos">1771</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-1772"><a href="#LockingProperty-1772"><span class="linenos">1772</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-1773"><a href="#LockingProperty-1773"><span class="linenos">1773</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-1929"><a href="#LockingProperty-1929"><span class="linenos">1929</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-1930"><a href="#LockingProperty-1930"><span class="linenos">1930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LockingProperty-1931"><a href="#LockingProperty-1931"><span class="linenos">1931</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-1932"><a href="#LockingProperty-1932"><span class="linenos">1932</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-1933"><a href="#LockingProperty-1933"><span class="linenos">1933</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="LockingProperty-1934"><a href="#LockingProperty-1934"><span class="linenos">1934</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-1935"><a href="#LockingProperty-1935"><span class="linenos">1935</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-1936"><a href="#LockingProperty-1936"><span class="linenos">1936</span></a> <span class="p">}</span>
</span></pre></div>
@@ -19342,6 +20476,7 @@ Otherwise, this resets the expression.</li>
<dd id="LockingProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LockingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LockingProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LockingProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LockingProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19383,8 +20518,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-1776"><a href="#LogProperty-1776"><span class="linenos">1776</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-1777"><a href="#LogProperty-1777"><span class="linenos">1777</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-1939"><a href="#LogProperty-1939"><span class="linenos">1939</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-1940"><a href="#LogProperty-1940"><span class="linenos">1940</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>
@@ -19406,6 +20541,7 @@ Otherwise, this resets the expression.</li>
<dd id="LogProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LogProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LogProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LogProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LogProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19447,8 +20583,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-1780"><a href="#MaterializedProperty-1780"><span class="linenos">1780</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-1781"><a href="#MaterializedProperty-1781"><span class="linenos">1781</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MaterializedProperty-1943"><a href="#MaterializedProperty-1943"><span class="linenos">1943</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-1944"><a href="#MaterializedProperty-1944"><span class="linenos">1944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19470,6 +20606,7 @@ Otherwise, this resets the expression.</li>
<dd id="MaterializedProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MaterializedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="MaterializedProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MaterializedProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MaterializedProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19511,8 +20648,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-1784"><a href="#MergeBlockRatioProperty-1784"><span class="linenos">1784</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-1785"><a href="#MergeBlockRatioProperty-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">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-1947"><a href="#MergeBlockRatioProperty-1947"><span class="linenos">1947</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-1948"><a href="#MergeBlockRatioProperty-1948"><span class="linenos">1948</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -19534,6 +20671,7 @@ Otherwise, this resets the expression.</li>
<dd id="MergeBlockRatioProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MergeBlockRatioProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="MergeBlockRatioProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MergeBlockRatioProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MergeBlockRatioProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19575,8 +20713,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-1788"><a href="#NoPrimaryIndexProperty-1788"><span class="linenos">1788</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-1789"><a href="#NoPrimaryIndexProperty-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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-1951"><a href="#NoPrimaryIndexProperty-1951"><span class="linenos">1951</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-1952"><a href="#NoPrimaryIndexProperty-1952"><span class="linenos">1952</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -19598,6 +20736,7 @@ Otherwise, this resets the expression.</li>
<dd id="NoPrimaryIndexProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NoPrimaryIndexProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NoPrimaryIndexProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NoPrimaryIndexProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NoPrimaryIndexProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19639,8 +20778,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-1792"><a href="#OnCommitProperty-1792"><span class="linenos">1792</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-1793"><a href="#OnCommitProperty-1793"><span class="linenos">1793</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnCommitProperty-1955"><a href="#OnCommitProperty-1955"><span class="linenos">1955</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-1956"><a href="#OnCommitProperty-1956"><span class="linenos">1956</span></a> <span class="n">arg_type</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>
@@ -19662,6 +20801,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCommitProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OnCommitProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="OnCommitProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OnCommitProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OnCommitProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19703,8 +20843,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-1796"><a href="#PartitionedByProperty-1796"><span class="linenos">1796</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-1797"><a href="#PartitionedByProperty-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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedByProperty-1959"><a href="#PartitionedByProperty-1959"><span class="linenos">1959</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-1960"><a href="#PartitionedByProperty-1960"><span class="linenos">1960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -19726,6 +20866,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedByProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PartitionedByProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PartitionedByProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PartitionedByProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PartitionedByProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19767,8 +20908,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-1800"><a href="#ReturnsProperty-1800"><span class="linenos">1800</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-1801"><a href="#ReturnsProperty-1801"><span class="linenos">1801</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1963"><a href="#ReturnsProperty-1963"><span class="linenos">1963</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-1964"><a href="#ReturnsProperty-1964"><span class="linenos">1964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -19790,6 +20931,7 @@ Otherwise, this resets the expression.</li>
<dd id="ReturnsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ReturnsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ReturnsProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ReturnsProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ReturnsProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19831,8 +20973,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-1804"><a href="#RowFormatProperty-1804"><span class="linenos">1804</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-1805"><a href="#RowFormatProperty-1805"><span class="linenos">1805</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1967"><a href="#RowFormatProperty-1967"><span class="linenos">1967</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-1968"><a href="#RowFormatProperty-1968"><span class="linenos">1968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19854,6 +20996,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="RowFormatProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RowFormatProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowFormatProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowFormatProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19895,17 +21038,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-1808"><a href="#RowFormatDelimitedProperty-1808"><span class="linenos">1808</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-1809"><a href="#RowFormatDelimitedProperty-1809"><span class="linenos">1809</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="RowFormatDelimitedProperty-1810"><a href="#RowFormatDelimitedProperty-1810"><span class="linenos">1810</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RowFormatDelimitedProperty-1811"><a href="#RowFormatDelimitedProperty-1811"><span class="linenos">1811</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-1812"><a href="#RowFormatDelimitedProperty-1812"><span class="linenos">1812</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-1813"><a href="#RowFormatDelimitedProperty-1813"><span class="linenos">1813</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-1814"><a href="#RowFormatDelimitedProperty-1814"><span class="linenos">1814</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-1815"><a href="#RowFormatDelimitedProperty-1815"><span class="linenos">1815</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-1816"><a href="#RowFormatDelimitedProperty-1816"><span class="linenos">1816</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-1817"><a href="#RowFormatDelimitedProperty-1817"><span class="linenos">1817</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-1818"><a href="#RowFormatDelimitedProperty-1818"><span class="linenos">1818</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-1971"><a href="#RowFormatDelimitedProperty-1971"><span class="linenos">1971</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-1972"><a href="#RowFormatDelimitedProperty-1972"><span class="linenos">1972</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="RowFormatDelimitedProperty-1973"><a href="#RowFormatDelimitedProperty-1973"><span class="linenos">1973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RowFormatDelimitedProperty-1974"><a href="#RowFormatDelimitedProperty-1974"><span class="linenos">1974</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-1975"><a href="#RowFormatDelimitedProperty-1975"><span class="linenos">1975</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-1976"><a href="#RowFormatDelimitedProperty-1976"><span class="linenos">1976</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-1977"><a href="#RowFormatDelimitedProperty-1977"><span class="linenos">1977</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-1978"><a href="#RowFormatDelimitedProperty-1978"><span class="linenos">1978</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-1979"><a href="#RowFormatDelimitedProperty-1979"><span class="linenos">1979</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-1980"><a href="#RowFormatDelimitedProperty-1980"><span class="linenos">1980</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-1981"><a href="#RowFormatDelimitedProperty-1981"><span class="linenos">1981</span></a> <span class="p">}</span>
</span></pre></div>
@@ -19927,6 +21070,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatDelimitedProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowFormatDelimitedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RowFormatDelimitedProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowFormatDelimitedProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowFormatDelimitedProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -19968,8 +21112,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-1821"><a href="#RowFormatSerdeProperty-1821"><span class="linenos">1821</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-1822"><a href="#RowFormatSerdeProperty-1822"><span class="linenos">1822</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatSerdeProperty-1984"><a href="#RowFormatSerdeProperty-1984"><span class="linenos">1984</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-1985"><a href="#RowFormatSerdeProperty-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></pre></div>
@@ -19991,6 +21135,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatSerdeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowFormatSerdeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RowFormatSerdeProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowFormatSerdeProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowFormatSerdeProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20032,8 +21177,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-1825"><a href="#SchemaCommentProperty-1825"><span class="linenos">1825</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-1826"><a href="#SchemaCommentProperty-1826"><span class="linenos">1826</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-1988"><a href="#SchemaCommentProperty-1988"><span class="linenos">1988</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-1989"><a href="#SchemaCommentProperty-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></pre></div>
@@ -20055,6 +21200,7 @@ Otherwise, this resets the expression.</li>
<dd id="SchemaCommentProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SchemaCommentProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SchemaCommentProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SchemaCommentProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SchemaCommentProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20096,8 +21242,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-1829"><a href="#SerdeProperties-1829"><span class="linenos">1829</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-1830"><a href="#SerdeProperties-1830"><span class="linenos">1830</span></a> <span class="n">arg_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-1992"><a href="#SerdeProperties-1992"><span class="linenos">1992</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-1993"><a href="#SerdeProperties-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -20119,6 +21265,7 @@ Otherwise, this resets the expression.</li>
<dd id="SerdeProperties.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SerdeProperties.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SerdeProperties.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SerdeProperties.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SerdeProperties.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20160,8 +21307,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-1833"><a href="#SetProperty-1833"><span class="linenos">1833</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-1834"><a href="#SetProperty-1834"><span class="linenos">1834</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-1996"><a href="#SetProperty-1996"><span class="linenos">1996</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-1997"><a href="#SetProperty-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;multi&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -20183,6 +21330,7 @@ Otherwise, this resets the expression.</li>
<dd id="SetProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SetProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20213,6 +21361,71 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
+ <section id="SettingsProperty">
+ <input id="SettingsProperty-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">SettingsProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
+
+ <label class="view-source-button" for="SettingsProperty-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#SettingsProperty"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SettingsProperty-2000"><a href="#SettingsProperty-2000"><span class="linenos">2000</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-2001"><a href="#SettingsProperty-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="SettingsProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="SettingsProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="SettingsProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="SettingsProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="SettingsProperty.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="SettingsProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="SettingsProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="SettingsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="SettingsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="SettingsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SettingsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="SettingsProperty.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="SettingsProperty.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="SettingsProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="SettingsProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="SettingsProperty.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="SettingsProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="SettingsProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="SettingsProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="SettingsProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="SettingsProperty.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="SettingsProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="SettingsProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="SettingsProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="SettingsProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="SettingsProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="SettingsProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="SettingsProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="SettingsProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="SettingsProperty.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="SortKeyProperty">
<input id="SortKeyProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -20224,8 +21437,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-1837"><a href="#SortKeyProperty-1837"><span class="linenos">1837</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-1838"><a href="#SortKeyProperty-1838"><span class="linenos">1838</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2004"><a href="#SortKeyProperty-2004"><span class="linenos">2004</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-2005"><a href="#SortKeyProperty-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;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>
@@ -20247,6 +21460,7 @@ Otherwise, this resets the expression.</li>
<dd id="SortKeyProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SortKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SortKeyProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SortKeyProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SortKeyProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20288,8 +21502,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-1841"><a href="#SqlSecurityProperty-1841"><span class="linenos">1841</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-1842"><a href="#SqlSecurityProperty-1842"><span class="linenos">1842</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-2008"><a href="#SqlSecurityProperty-2008"><span class="linenos">2008</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-2009"><a href="#SqlSecurityProperty-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;definer&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -20311,6 +21525,7 @@ Otherwise, this resets the expression.</li>
<dd id="SqlSecurityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SqlSecurityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SqlSecurityProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SqlSecurityProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SqlSecurityProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20352,8 +21567,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-1845"><a href="#StabilityProperty-1845"><span class="linenos">1845</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-1846"><a href="#StabilityProperty-1846"><span class="linenos">1846</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2012"><a href="#StabilityProperty-2012"><span class="linenos">2012</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-2013"><a href="#StabilityProperty-2013"><span class="linenos">2013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -20375,6 +21590,7 @@ Otherwise, this resets the expression.</li>
<dd id="StabilityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StabilityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StabilityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="StabilityProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StabilityProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StabilityProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StabilityProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20405,70 +21621,6 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
- <section id="TableFormatProperty">
- <input id="TableFormatProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
-<div class="attr class">
-
- <span class="def">class</span>
- <span class="name">TableFormatProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
-
- <label class="view-source-button" for="TableFormatProperty-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#TableFormatProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableFormatProperty-1849"><a href="#TableFormatProperty-1849"><span class="linenos">1849</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="TableFormatProperty-1850"><a href="#TableFormatProperty-1850"><span class="linenos">1850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="TableFormatProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="TableFormatProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="TableFormatProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="TableFormatProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="TableFormatProperty.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="TableFormatProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="TableFormatProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="TableFormatProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="TableFormatProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="TableFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="TableFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="TableFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="TableFormatProperty.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="TableFormatProperty.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="TableFormatProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="TableFormatProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="TableFormatProperty.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="TableFormatProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="TableFormatProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="TableFormatProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="TableFormatProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="TableFormatProperty.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="TableFormatProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="TableFormatProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="TableFormatProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="TableFormatProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="TableFormatProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="TableFormatProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="TableFormatProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="TableFormatProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="TableFormatProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="TableFormatProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="TableFormatProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="TableFormatProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="TableFormatProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="TableFormatProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="TableFormatProperty.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="TemporaryProperty">
<input id="TemporaryProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -20480,8 +21632,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-1853"><a href="#TemporaryProperty-1853"><span class="linenos">1853</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-1854"><a href="#TemporaryProperty-1854"><span class="linenos">1854</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;global_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TemporaryProperty-2016"><a href="#TemporaryProperty-2016"><span class="linenos">2016</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-2017"><a href="#TemporaryProperty-2017"><span class="linenos">2017</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -20503,6 +21655,7 @@ Otherwise, this resets the expression.</li>
<dd id="TemporaryProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TemporaryProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TemporaryProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TemporaryProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TemporaryProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20544,8 +21697,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-1857"><a href="#TransientProperty-1857"><span class="linenos">1857</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-1858"><a href="#TransientProperty-1858"><span class="linenos">1858</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2020"><a href="#TransientProperty-2020"><span class="linenos">2020</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-2021"><a href="#TransientProperty-2021"><span class="linenos">2021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -20567,6 +21720,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransientProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TransientProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TransientProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TransientProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TransientProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20608,8 +21762,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-1861"><a href="#VolatileProperty-1861"><span class="linenos">1861</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-1862"><a href="#VolatileProperty-1862"><span class="linenos">1862</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2024"><a href="#VolatileProperty-2024"><span class="linenos">2024</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-2025"><a href="#VolatileProperty-2025"><span class="linenos">2025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -20631,6 +21785,7 @@ Otherwise, this resets the expression.</li>
<dd id="VolatileProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="VolatileProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VolatileProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="VolatileProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="VolatileProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="VolatileProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="VolatileProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20672,8 +21827,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-1865"><a href="#WithDataProperty-1865"><span class="linenos">1865</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-1866"><a href="#WithDataProperty-1866"><span class="linenos">1866</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-2028"><a href="#WithDataProperty-2028"><span class="linenos">2028</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-2029"><a href="#WithDataProperty-2029"><span class="linenos">2029</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>
@@ -20695,6 +21850,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithDataProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WithDataProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="WithDataProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WithDataProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WithDataProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20736,8 +21892,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-1869"><a href="#WithJournalTableProperty-1869"><span class="linenos">1869</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-1870"><a href="#WithJournalTableProperty-1870"><span class="linenos">1870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2032"><a href="#WithJournalTableProperty-2032"><span class="linenos">2032</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-2033"><a href="#WithJournalTableProperty-2033"><span class="linenos">2033</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -20759,6 +21915,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithJournalTableProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WithJournalTableProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="WithJournalTableProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WithJournalTableProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WithJournalTableProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20800,66 +21957,65 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Properties"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Properties-1873"><a href="#Properties-1873"><span class="linenos">1873</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-1874"><a href="#Properties-1874"><span class="linenos">1874</span></a> <span class="n">arg_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-1875"><a href="#Properties-1875"><span class="linenos">1875</span></a>
-</span><span id="Properties-1876"><a href="#Properties-1876"><span class="linenos">1876</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Properties-1877"><a href="#Properties-1877"><span class="linenos">1877</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-1878"><a href="#Properties-1878"><span class="linenos">1878</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-1879"><a href="#Properties-1879"><span class="linenos">1879</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-1880"><a href="#Properties-1880"><span class="linenos">1880</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-1881"><a href="#Properties-1881"><span class="linenos">1881</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-1882"><a href="#Properties-1882"><span class="linenos">1882</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-1883"><a href="#Properties-1883"><span class="linenos">1883</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-1884"><a href="#Properties-1884"><span class="linenos">1884</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-1885"><a href="#Properties-1885"><span class="linenos">1885</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-1886"><a href="#Properties-1886"><span class="linenos">1886</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-1887"><a href="#Properties-1887"><span class="linenos">1887</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-1888"><a href="#Properties-1888"><span class="linenos">1888</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-1889"><a href="#Properties-1889"><span class="linenos">1889</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-1890"><a href="#Properties-1890"><span class="linenos">1890</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-1891"><a href="#Properties-1891"><span class="linenos">1891</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-1892"><a href="#Properties-1892"><span class="linenos">1892</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-1893"><a href="#Properties-1893"><span class="linenos">1893</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-1894"><a href="#Properties-1894"><span class="linenos">1894</span></a> <span class="s2">&quot;TABLE_FORMAT&quot;</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span>
-</span><span id="Properties-1895"><a href="#Properties-1895"><span class="linenos">1895</span></a> <span class="p">}</span>
-</span><span id="Properties-1896"><a href="#Properties-1896"><span class="linenos">1896</span></a>
-</span><span id="Properties-1897"><a href="#Properties-1897"><span class="linenos">1897</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-1898"><a href="#Properties-1898"><span class="linenos">1898</span></a>
-</span><span id="Properties-1899"><a href="#Properties-1899"><span class="linenos">1899</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="Properties-1900"><a href="#Properties-1900"><span class="linenos">1900</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="Properties-1901"><a href="#Properties-1901"><span class="linenos">1901</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-1902"><a href="#Properties-1902"><span class="linenos">1902</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-1903"><a href="#Properties-1903"><span class="linenos">1903</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="Properties-1904"><a href="#Properties-1904"><span class="linenos">1904</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="Properties-1905"><a href="#Properties-1905"><span class="linenos">1905</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="Properties-1906"><a href="#Properties-1906"><span class="linenos">1906</span></a> <span class="c1">#</span>
-</span><span id="Properties-1907"><a href="#Properties-1907"><span class="linenos">1907</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="Properties-1908"><a href="#Properties-1908"><span class="linenos">1908</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-1909"><a href="#Properties-1909"><span class="linenos">1909</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-1910"><a href="#Properties-1910"><span class="linenos">1910</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="Properties-1911"><a href="#Properties-1911"><span class="linenos">1911</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="Properties-1912"><a href="#Properties-1912"><span class="linenos">1912</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-1913"><a href="#Properties-1913"><span class="linenos">1913</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-1914"><a href="#Properties-1914"><span class="linenos">1914</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-1915"><a href="#Properties-1915"><span class="linenos">1915</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-1916"><a href="#Properties-1916"><span class="linenos">1916</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-1917"><a href="#Properties-1917"><span class="linenos">1917</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-1918"><a href="#Properties-1918"><span class="linenos">1918</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-1919"><a href="#Properties-1919"><span class="linenos">1919</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-1920"><a href="#Properties-1920"><span class="linenos">1920</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-1921"><a href="#Properties-1921"><span class="linenos">1921</span></a>
-</span><span id="Properties-1922"><a href="#Properties-1922"><span class="linenos">1922</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties-1923"><a href="#Properties-1923"><span class="linenos">1923</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties-1924"><a href="#Properties-1924"><span class="linenos">1924</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties-1925"><a href="#Properties-1925"><span class="linenos">1925</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-1926"><a href="#Properties-1926"><span class="linenos">1926</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-1927"><a href="#Properties-1927"><span class="linenos">1927</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties-1928"><a href="#Properties-1928"><span class="linenos">1928</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-1929"><a href="#Properties-1929"><span class="linenos">1929</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties-1930"><a href="#Properties-1930"><span class="linenos">1930</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-1931"><a href="#Properties-1931"><span class="linenos">1931</span></a>
-</span><span id="Properties-1932"><a href="#Properties-1932"><span class="linenos">1932</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-2036"><a href="#Properties-2036"><span class="linenos">2036</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-2037"><a href="#Properties-2037"><span class="linenos">2037</span></a> <span class="n">arg_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-2038"><a href="#Properties-2038"><span class="linenos">2038</span></a>
+</span><span id="Properties-2039"><a href="#Properties-2039"><span class="linenos">2039</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Properties-2040"><a href="#Properties-2040"><span class="linenos">2040</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-2041"><a href="#Properties-2041"><span class="linenos">2041</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-2042"><a href="#Properties-2042"><span class="linenos">2042</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-2043"><a href="#Properties-2043"><span class="linenos">2043</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-2044"><a href="#Properties-2044"><span class="linenos">2044</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-2045"><a href="#Properties-2045"><span class="linenos">2045</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-2046"><a href="#Properties-2046"><span class="linenos">2046</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-2047"><a href="#Properties-2047"><span class="linenos">2047</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-2048"><a href="#Properties-2048"><span class="linenos">2048</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-2049"><a href="#Properties-2049"><span class="linenos">2049</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-2050"><a href="#Properties-2050"><span class="linenos">2050</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-2051"><a href="#Properties-2051"><span class="linenos">2051</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-2052"><a href="#Properties-2052"><span class="linenos">2052</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-2053"><a href="#Properties-2053"><span class="linenos">2053</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-2054"><a href="#Properties-2054"><span class="linenos">2054</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-2055"><a href="#Properties-2055"><span class="linenos">2055</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-2056"><a href="#Properties-2056"><span class="linenos">2056</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-2057"><a href="#Properties-2057"><span class="linenos">2057</span></a> <span class="p">}</span>
+</span><span id="Properties-2058"><a href="#Properties-2058"><span class="linenos">2058</span></a>
+</span><span id="Properties-2059"><a href="#Properties-2059"><span class="linenos">2059</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-2060"><a href="#Properties-2060"><span class="linenos">2060</span></a>
+</span><span id="Properties-2061"><a href="#Properties-2061"><span class="linenos">2061</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="Properties-2062"><a href="#Properties-2062"><span class="linenos">2062</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="Properties-2063"><a href="#Properties-2063"><span class="linenos">2063</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-2064"><a href="#Properties-2064"><span class="linenos">2064</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-2065"><a href="#Properties-2065"><span class="linenos">2065</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="Properties-2066"><a href="#Properties-2066"><span class="linenos">2066</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="Properties-2067"><a href="#Properties-2067"><span class="linenos">2067</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="Properties-2068"><a href="#Properties-2068"><span class="linenos">2068</span></a> <span class="c1">#</span>
+</span><span id="Properties-2069"><a href="#Properties-2069"><span class="linenos">2069</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="Properties-2070"><a href="#Properties-2070"><span class="linenos">2070</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-2071"><a href="#Properties-2071"><span class="linenos">2071</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-2072"><a href="#Properties-2072"><span class="linenos">2072</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="Properties-2073"><a href="#Properties-2073"><span class="linenos">2073</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="Properties-2074"><a href="#Properties-2074"><span class="linenos">2074</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-2075"><a href="#Properties-2075"><span class="linenos">2075</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-2076"><a href="#Properties-2076"><span class="linenos">2076</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-2077"><a href="#Properties-2077"><span class="linenos">2077</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-2078"><a href="#Properties-2078"><span class="linenos">2078</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-2079"><a href="#Properties-2079"><span class="linenos">2079</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-2080"><a href="#Properties-2080"><span class="linenos">2080</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-2081"><a href="#Properties-2081"><span class="linenos">2081</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-2082"><a href="#Properties-2082"><span class="linenos">2082</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2083"><a href="#Properties-2083"><span class="linenos">2083</span></a>
+</span><span id="Properties-2084"><a href="#Properties-2084"><span class="linenos">2084</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties-2085"><a href="#Properties-2085"><span class="linenos">2085</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-2086"><a href="#Properties-2086"><span class="linenos">2086</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties-2087"><a href="#Properties-2087"><span class="linenos">2087</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-2088"><a href="#Properties-2088"><span class="linenos">2088</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-2089"><a href="#Properties-2089"><span class="linenos">2089</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties-2090"><a href="#Properties-2090"><span class="linenos">2090</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-2091"><a href="#Properties-2091"><span class="linenos">2091</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties-2092"><a href="#Properties-2092"><span class="linenos">2092</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-2093"><a href="#Properties-2093"><span class="linenos">2093</span></a>
+</span><span id="Properties-2094"><a href="#Properties-2094"><span class="linenos">2094</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>
@@ -20871,23 +22027,23 @@ Otherwise, this resets the expression.</li>
<div class="decorator">@classmethod</div>
<span class="def">def</span>
- <span class="name">from_dict</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">properties_dict</span></span><span class="return-annotation">) -> <span class="n"><a href="#Properties">sqlglot.expressions.Properties</a></span>:</span></span>
+ <span class="name">from_dict</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">properties_dict</span><span class="p">:</span> <span class="n">Dict</span></span><span class="return-annotation">) -> <span class="n"><a href="#Properties">sqlglot.expressions.Properties</a></span>:</span></span>
<label class="view-source-button" for="Properties.from_dict-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Properties.from_dict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.from_dict-1922"><a href="#Properties.from_dict-1922"><span class="linenos">1922</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties.from_dict-1923"><a href="#Properties.from_dict-1923"><span class="linenos">1923</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties.from_dict-1924"><a href="#Properties.from_dict-1924"><span class="linenos">1924</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties.from_dict-1925"><a href="#Properties.from_dict-1925"><span class="linenos">1925</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-1926"><a href="#Properties.from_dict-1926"><span class="linenos">1926</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-1927"><a href="#Properties.from_dict-1927"><span class="linenos">1927</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties.from_dict-1928"><a href="#Properties.from_dict-1928"><span class="linenos">1928</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-1929"><a href="#Properties.from_dict-1929"><span class="linenos">1929</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties.from_dict-1930"><a href="#Properties.from_dict-1930"><span class="linenos">1930</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-1931"><a href="#Properties.from_dict-1931"><span class="linenos">1931</span></a>
-</span><span id="Properties.from_dict-1932"><a href="#Properties.from_dict-1932"><span class="linenos">1932</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-2084"><a href="#Properties.from_dict-2084"><span class="linenos">2084</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties.from_dict-2085"><a href="#Properties.from_dict-2085"><span class="linenos">2085</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-2086"><a href="#Properties.from_dict-2086"><span class="linenos">2086</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties.from_dict-2087"><a href="#Properties.from_dict-2087"><span class="linenos">2087</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-2088"><a href="#Properties.from_dict-2088"><span class="linenos">2088</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-2089"><a href="#Properties.from_dict-2089"><span class="linenos">2089</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2090"><a href="#Properties.from_dict-2090"><span class="linenos">2090</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-2091"><a href="#Properties.from_dict-2091"><span class="linenos">2091</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2092"><a href="#Properties.from_dict-2092"><span class="linenos">2092</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-2093"><a href="#Properties.from_dict-2093"><span class="linenos">2093</span></a>
+</span><span id="Properties.from_dict-2094"><a href="#Properties.from_dict-2094"><span class="linenos">2094</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>
@@ -20910,6 +22066,7 @@ Otherwise, this resets the expression.</li>
<dd id="Properties.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Properties.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Properties.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Properties.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Properties.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -20951,15 +22108,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-1912"><a href="#Properties.Location-1912"><span class="linenos">1912</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-1913"><a href="#Properties.Location-1913"><span class="linenos">1913</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-1914"><a href="#Properties.Location-1914"><span class="linenos">1914</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-1915"><a href="#Properties.Location-1915"><span class="linenos">1915</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-1916"><a href="#Properties.Location-1916"><span class="linenos">1916</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-1917"><a href="#Properties.Location-1917"><span class="linenos">1917</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-1918"><a href="#Properties.Location-1918"><span class="linenos">1918</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-1919"><a href="#Properties.Location-1919"><span class="linenos">1919</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-1920"><a href="#Properties.Location-1920"><span class="linenos">1920</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-2074"><a href="#Properties.Location-2074"><span class="linenos">2074</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-2075"><a href="#Properties.Location-2075"><span class="linenos">2075</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-2076"><a href="#Properties.Location-2076"><span class="linenos">2076</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-2077"><a href="#Properties.Location-2077"><span class="linenos">2077</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-2078"><a href="#Properties.Location-2078"><span class="linenos">2078</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-2079"><a href="#Properties.Location-2079"><span class="linenos">2079</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-2080"><a href="#Properties.Location-2080"><span class="linenos">2080</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-2081"><a href="#Properties.Location-2081"><span class="linenos">2081</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-2082"><a href="#Properties.Location-2082"><span class="linenos">2082</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -21085,8 +22242,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-1935"><a href="#Qualify-1935"><span class="linenos">1935</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-1936"><a href="#Qualify-1936"><span class="linenos">1936</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-2097"><a href="#Qualify-2097"><span class="linenos">2097</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-2098"><a href="#Qualify-2098"><span class="linenos">2098</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21108,6 +22265,7 @@ Otherwise, this resets the expression.</li>
<dd id="Qualify.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Qualify.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Qualify.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Qualify.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Qualify.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21149,8 +22307,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-1940"><a href="#Return-1940"><span class="linenos">1940</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-1941"><a href="#Return-1941"><span class="linenos">1941</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Return-2102"><a href="#Return-2102"><span class="linenos">2102</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-2103"><a href="#Return-2103"><span class="linenos">2103</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21172,6 +22330,7 @@ Otherwise, this resets the expression.</li>
<dd id="Return.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Return.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Return.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Return.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Return.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21213,8 +22372,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-1944"><a href="#Reference-1944"><span class="linenos">1944</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-1945"><a href="#Reference-1945"><span class="linenos">1945</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-2106"><a href="#Reference-2106"><span class="linenos">2106</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-2107"><a href="#Reference-2107"><span class="linenos">2107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -21236,6 +22395,7 @@ Otherwise, this resets the expression.</li>
<dd id="Reference.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Reference.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Reference.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Reference.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Reference.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21277,13 +22437,47 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Tuple"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-1948"><a href="#Tuple-1948"><span class="linenos">1948</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-1949"><a href="#Tuple-1949"><span class="linenos">1949</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-2110"><a href="#Tuple-2110"><span class="linenos">2110</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-2111"><a href="#Tuple-2111"><span class="linenos">2111</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Tuple-2112"><a href="#Tuple-2112"><span class="linenos">2112</span></a>
+</span><span id="Tuple-2113"><a href="#Tuple-2113"><span class="linenos">2113</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Tuple-2114"><a href="#Tuple-2114"><span class="linenos">2114</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><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="Tuple-2115"><a href="#Tuple-2115"><span class="linenos">2115</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Tuple-2116"><a href="#Tuple-2116"><span class="linenos">2116</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Tuple-2117"><a href="#Tuple-2117"><span class="linenos">2117</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-2118"><a href="#Tuple-2118"><span class="linenos">2118</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-2119"><a href="#Tuple-2119"><span class="linenos">2119</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-2120"><a href="#Tuple-2120"><span class="linenos">2120</span></a> <span class="p">)</span>
+</span></pre></div>
+
+
+
+
+ <div id="Tuple.isin" class="classattr">
+ <input id="Tuple.isin-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">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">query</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#In">sqlglot.expressions.In</a></span>:</span></span>
+
+ <label class="view-source-button" for="Tuple.isin-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Tuple.isin"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple.isin-2113"><a href="#Tuple.isin-2113"><span class="linenos">2113</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Tuple.isin-2114"><a href="#Tuple.isin-2114"><span class="linenos">2114</span></a> <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">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <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 class="n">copy</span><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="Tuple.isin-2115"><a href="#Tuple.isin-2115"><span class="linenos">2115</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-2116"><a href="#Tuple.isin-2116"><span class="linenos">2116</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Tuple.isin-2117"><a href="#Tuple.isin-2117"><span class="linenos">2117</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-2118"><a href="#Tuple.isin-2118"><span class="linenos">2118</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-2119"><a href="#Tuple.isin-2119"><span class="linenos">2119</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-2120"><a href="#Tuple.isin-2120"><span class="linenos">2120</span></a> <span class="p">)</span>
</span></pre></div>
+ </div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
@@ -21300,6 +22494,7 @@ Otherwise, this resets the expression.</li>
<dd id="Tuple.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Tuple.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Tuple.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Tuple.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Tuple.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21341,103 +22536,84 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-1952"><a href="#Subqueryable-1952"><span class="linenos">1952</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-1953"><a href="#Subqueryable-1953"><span class="linenos">1953</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subqueryable-1954"><a href="#Subqueryable-1954"><span class="linenos">1954</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable-1955"><a href="#Subqueryable-1955"><span class="linenos">1955</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="Subqueryable-1956"><a href="#Subqueryable-1956"><span class="linenos">1956</span></a>
-</span><span id="Subqueryable-1957"><a href="#Subqueryable-1957"><span class="linenos">1957</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable-1958"><a href="#Subqueryable-1958"><span class="linenos">1958</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="Subqueryable-1959"><a href="#Subqueryable-1959"><span class="linenos">1959</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="Subqueryable-1960"><a href="#Subqueryable-1960"><span class="linenos">1960</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="Subqueryable-1961"><a href="#Subqueryable-1961"><span class="linenos">1961</span></a>
-</span><span id="Subqueryable-1962"><a href="#Subqueryable-1962"><span class="linenos">1962</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable-1963"><a href="#Subqueryable-1963"><span class="linenos">1963</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="Subqueryable-1964"><a href="#Subqueryable-1964"><span class="linenos">1964</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable-1965"><a href="#Subqueryable-1965"><span class="linenos">1965</span></a>
-</span><span id="Subqueryable-1966"><a href="#Subqueryable-1966"><span class="linenos">1966</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable-1967"><a href="#Subqueryable-1967"><span class="linenos">1967</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="Subqueryable-1968"><a href="#Subqueryable-1968"><span class="linenos">1968</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable-1969"><a href="#Subqueryable-1969"><span class="linenos">1969</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-1970"><a href="#Subqueryable-1970"><span class="linenos">1970</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
-</span><span id="Subqueryable-1971"><a href="#Subqueryable-1971"><span class="linenos">1971</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Subqueryable-1972"><a href="#Subqueryable-1972"><span class="linenos">1972</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-1973"><a href="#Subqueryable-1973"><span class="linenos">1973</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-1974"><a href="#Subqueryable-1974"><span class="linenos">1974</span></a>
-</span><span id="Subqueryable-1975"><a href="#Subqueryable-1975"><span class="linenos">1975</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Subqueryable-1976"><a href="#Subqueryable-1976"><span class="linenos">1976</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
-</span><span id="Subqueryable-1977"><a href="#Subqueryable-1977"><span class="linenos">1977</span></a>
-</span><span id="Subqueryable-1978"><a href="#Subqueryable-1978"><span class="linenos">1978</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-1979"><a href="#Subqueryable-1979"><span class="linenos">1979</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-1980"><a href="#Subqueryable-1980"><span class="linenos">1980</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-1981"><a href="#Subqueryable-1981"><span class="linenos">1981</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-1982"><a href="#Subqueryable-1982"><span class="linenos">1982</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Subqueryable-1983"><a href="#Subqueryable-1983"><span class="linenos">1983</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-1984"><a href="#Subqueryable-1984"><span class="linenos">1984</span></a>
-</span><span id="Subqueryable-1985"><a href="#Subqueryable-1985"><span class="linenos">1985</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-1986"><a href="#Subqueryable-1986"><span class="linenos">1986</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subqueryable-1987"><a href="#Subqueryable-1987"><span class="linenos">1987</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-1988"><a href="#Subqueryable-1988"><span class="linenos">1988</span></a>
-</span><span id="Subqueryable-1989"><a href="#Subqueryable-1989"><span class="linenos">1989</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-1990"><a href="#Subqueryable-1990"><span class="linenos">1990</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subqueryable-1991"><a href="#Subqueryable-1991"><span class="linenos">1991</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-1992"><a href="#Subqueryable-1992"><span class="linenos">1992</span></a>
-</span><span id="Subqueryable-1993"><a href="#Subqueryable-1993"><span class="linenos">1993</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Subqueryable-1994"><a href="#Subqueryable-1994"><span class="linenos">1994</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable-1995"><a href="#Subqueryable-1995"><span class="linenos">1995</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable-1996"><a href="#Subqueryable-1996"><span class="linenos">1996</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable-1997"><a href="#Subqueryable-1997"><span class="linenos">1997</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-1998"><a href="#Subqueryable-1998"><span class="linenos">1998</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable-1999"><a href="#Subqueryable-1999"><span class="linenos">1999</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-2000"><a href="#Subqueryable-2000"><span class="linenos">2000</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable-2001"><a href="#Subqueryable-2001"><span class="linenos">2001</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-2002"><a href="#Subqueryable-2002"><span class="linenos">2002</span></a> <span class="p">):</span>
-</span><span id="Subqueryable-2003"><a href="#Subqueryable-2003"><span class="linenos">2003</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable-2004"><a href="#Subqueryable-2004"><span class="linenos">2004</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Subqueryable-2005"><a href="#Subqueryable-2005"><span class="linenos">2005</span></a>
-</span><span id="Subqueryable-2006"><a href="#Subqueryable-2006"><span class="linenos">2006</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable-2007"><a href="#Subqueryable-2007"><span class="linenos">2007</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-2008"><a href="#Subqueryable-2008"><span class="linenos">2008</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="Subqueryable-2009"><a href="#Subqueryable-2009"><span class="linenos">2009</span></a>
-</span><span id="Subqueryable-2010"><a href="#Subqueryable-2010"><span class="linenos">2010</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable-2011"><a href="#Subqueryable-2011"><span class="linenos">2011</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Subqueryable-2012"><a href="#Subqueryable-2012"><span class="linenos">2012</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Subqueryable-2013"><a href="#Subqueryable-2013"><span class="linenos">2013</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
-</span><span id="Subqueryable-2014"><a href="#Subqueryable-2014"><span class="linenos">2014</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Subqueryable-2015"><a href="#Subqueryable-2015"><span class="linenos">2015</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Subqueryable-2016"><a href="#Subqueryable-2016"><span class="linenos">2016</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Subqueryable-2017"><a href="#Subqueryable-2017"><span class="linenos">2017</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Subqueryable-2018"><a href="#Subqueryable-2018"><span class="linenos">2018</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Subqueryable-2019"><a href="#Subqueryable-2019"><span class="linenos">2019</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable-2020"><a href="#Subqueryable-2020"><span class="linenos">2020</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Subqueryable-2021"><a href="#Subqueryable-2021"><span class="linenos">2021</span></a>
-</span><span id="Subqueryable-2022"><a href="#Subqueryable-2022"><span class="linenos">2022</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable-2023"><a href="#Subqueryable-2023"><span class="linenos">2023</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Subqueryable-2024"><a href="#Subqueryable-2024"><span class="linenos">2024</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable-2025"><a href="#Subqueryable-2025"><span class="linenos">2025</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable-2026"><a href="#Subqueryable-2026"><span class="linenos">2026</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable-2027"><a href="#Subqueryable-2027"><span class="linenos">2027</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable-2028"><a href="#Subqueryable-2028"><span class="linenos">2028</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
-</span><span id="Subqueryable-2029"><a href="#Subqueryable-2029"><span class="linenos">2029</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-2030"><a href="#Subqueryable-2030"><span class="linenos">2030</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-2031"><a href="#Subqueryable-2031"><span class="linenos">2031</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable-2032"><a href="#Subqueryable-2032"><span class="linenos">2032</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable-2033"><a href="#Subqueryable-2033"><span class="linenos">2033</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable-2034"><a href="#Subqueryable-2034"><span class="linenos">2034</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-2035"><a href="#Subqueryable-2035"><span class="linenos">2035</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-2036"><a href="#Subqueryable-2036"><span class="linenos">2036</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
-</span><span id="Subqueryable-2037"><a href="#Subqueryable-2037"><span class="linenos">2037</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
-</span><span id="Subqueryable-2038"><a href="#Subqueryable-2038"><span class="linenos">2038</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
-</span><span id="Subqueryable-2039"><a href="#Subqueryable-2039"><span class="linenos">2039</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-2040"><a href="#Subqueryable-2040"><span class="linenos">2040</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Subqueryable-2041"><a href="#Subqueryable-2041"><span class="linenos">2041</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="Subqueryable-2042"><a href="#Subqueryable-2042"><span class="linenos">2042</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable-2043"><a href="#Subqueryable-2043"><span class="linenos">2043</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
-</span><span id="Subqueryable-2044"><a href="#Subqueryable-2044"><span class="linenos">2044</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Subqueryable-2045"><a href="#Subqueryable-2045"><span class="linenos">2045</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Subqueryable-2046"><a href="#Subqueryable-2046"><span class="linenos">2046</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="Subqueryable-2047"><a href="#Subqueryable-2047"><span class="linenos">2047</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
-</span><span id="Subqueryable-2048"><a href="#Subqueryable-2048"><span class="linenos">2048</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-2123"><a href="#Subqueryable-2123"><span class="linenos">2123</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-2124"><a href="#Subqueryable-2124"><span class="linenos">2124</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-2125"><a href="#Subqueryable-2125"><span class="linenos">2125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2126"><a href="#Subqueryable-2126"><span class="linenos">2126</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
+</span><span id="Subqueryable-2127"><a href="#Subqueryable-2127"><span class="linenos">2127</span></a>
+</span><span id="Subqueryable-2128"><a href="#Subqueryable-2128"><span class="linenos">2128</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable-2129"><a href="#Subqueryable-2129"><span class="linenos">2129</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="Subqueryable-2130"><a href="#Subqueryable-2130"><span class="linenos">2130</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="Subqueryable-2131"><a href="#Subqueryable-2131"><span class="linenos">2131</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="Subqueryable-2132"><a href="#Subqueryable-2132"><span class="linenos">2132</span></a>
+</span><span id="Subqueryable-2133"><a href="#Subqueryable-2133"><span class="linenos">2133</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable-2134"><a href="#Subqueryable-2134"><span class="linenos">2134</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="Subqueryable-2135"><a href="#Subqueryable-2135"><span class="linenos">2135</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable-2136"><a href="#Subqueryable-2136"><span class="linenos">2136</span></a>
+</span><span id="Subqueryable-2137"><a href="#Subqueryable-2137"><span class="linenos">2137</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable-2138"><a href="#Subqueryable-2138"><span class="linenos">2138</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="Subqueryable-2139"><a href="#Subqueryable-2139"><span class="linenos">2139</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2140"><a href="#Subqueryable-2140"><span class="linenos">2140</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-2141"><a href="#Subqueryable-2141"><span class="linenos">2141</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-2142"><a href="#Subqueryable-2142"><span class="linenos">2142</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-2143"><a href="#Subqueryable-2143"><span class="linenos">2143</span></a>
+</span><span id="Subqueryable-2144"><a href="#Subqueryable-2144"><span class="linenos">2144</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-2145"><a href="#Subqueryable-2145"><span class="linenos">2145</span></a>
+</span><span id="Subqueryable-2146"><a href="#Subqueryable-2146"><span class="linenos">2146</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Subqueryable-2147"><a href="#Subqueryable-2147"><span class="linenos">2147</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-2148"><a href="#Subqueryable-2148"><span class="linenos">2148</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Subqueryable-2149"><a href="#Subqueryable-2149"><span class="linenos">2149</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+</span><span id="Subqueryable-2150"><a href="#Subqueryable-2150"><span class="linenos">2150</span></a>
+</span><span id="Subqueryable-2151"><a href="#Subqueryable-2151"><span class="linenos">2151</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-2152"><a href="#Subqueryable-2152"><span class="linenos">2152</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-2153"><a href="#Subqueryable-2153"><span class="linenos">2153</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-2154"><a href="#Subqueryable-2154"><span class="linenos">2154</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-2155"><a href="#Subqueryable-2155"><span class="linenos">2155</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Subqueryable-2156"><a href="#Subqueryable-2156"><span class="linenos">2156</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-2157"><a href="#Subqueryable-2157"><span class="linenos">2157</span></a>
+</span><span id="Subqueryable-2158"><a href="#Subqueryable-2158"><span class="linenos">2158</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-2159"><a href="#Subqueryable-2159"><span class="linenos">2159</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Subqueryable-2160"><a href="#Subqueryable-2160"><span class="linenos">2160</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-2161"><a href="#Subqueryable-2161"><span class="linenos">2161</span></a>
+</span><span id="Subqueryable-2162"><a href="#Subqueryable-2162"><span class="linenos">2162</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-2163"><a href="#Subqueryable-2163"><span class="linenos">2163</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Subqueryable-2164"><a href="#Subqueryable-2164"><span class="linenos">2164</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-2165"><a href="#Subqueryable-2165"><span class="linenos">2165</span></a>
+</span><span id="Subqueryable-2166"><a href="#Subqueryable-2166"><span class="linenos">2166</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Subqueryable-2167"><a href="#Subqueryable-2167"><span class="linenos">2167</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable-2168"><a href="#Subqueryable-2168"><span class="linenos">2168</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Subqueryable-2169"><a href="#Subqueryable-2169"><span class="linenos">2169</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Subqueryable-2170"><a href="#Subqueryable-2170"><span class="linenos">2170</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-2171"><a href="#Subqueryable-2171"><span class="linenos">2171</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-2172"><a href="#Subqueryable-2172"><span class="linenos">2172</span></a> <span class="n">dialect</span><span 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-2173"><a href="#Subqueryable-2173"><span class="linenos">2173</span></a> <span class="n">copy</span><span 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-2174"><a href="#Subqueryable-2174"><span class="linenos">2174</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable-2175"><a href="#Subqueryable-2175"><span class="linenos">2175</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="Subqueryable-2176"><a href="#Subqueryable-2176"><span class="linenos">2176</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2177"><a href="#Subqueryable-2177"><span class="linenos">2177</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Subqueryable-2178"><a href="#Subqueryable-2178"><span class="linenos">2178</span></a>
+</span><span id="Subqueryable-2179"><a href="#Subqueryable-2179"><span class="linenos">2179</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable-2180"><a href="#Subqueryable-2180"><span class="linenos">2180</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-2181"><a href="#Subqueryable-2181"><span class="linenos">2181</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="Subqueryable-2182"><a href="#Subqueryable-2182"><span class="linenos">2182</span></a>
+</span><span id="Subqueryable-2183"><a href="#Subqueryable-2183"><span class="linenos">2183</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable-2184"><a href="#Subqueryable-2184"><span class="linenos">2184</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Subqueryable-2185"><a href="#Subqueryable-2185"><span class="linenos">2185</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Subqueryable-2186"><a href="#Subqueryable-2186"><span class="linenos">2186</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Subqueryable-2187"><a href="#Subqueryable-2187"><span class="linenos">2187</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Subqueryable-2188"><a href="#Subqueryable-2188"><span class="linenos">2188</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Subqueryable-2189"><a href="#Subqueryable-2189"><span class="linenos">2189</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Subqueryable-2190"><a href="#Subqueryable-2190"><span class="linenos">2190</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Subqueryable-2191"><a href="#Subqueryable-2191"><span class="linenos">2191</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Subqueryable-2192"><a href="#Subqueryable-2192"><span class="linenos">2192</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable-2193"><a href="#Subqueryable-2193"><span class="linenos">2193</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Subqueryable-2194"><a href="#Subqueryable-2194"><span class="linenos">2194</span></a>
+</span><span id="Subqueryable-2195"><a href="#Subqueryable-2195"><span class="linenos">2195</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable-2196"><a href="#Subqueryable-2196"><span class="linenos">2196</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Subqueryable-2197"><a href="#Subqueryable-2197"><span class="linenos">2197</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2198"><a href="#Subqueryable-2198"><span class="linenos">2198</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Subqueryable-2199"><a href="#Subqueryable-2199"><span class="linenos">2199</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-2200"><a href="#Subqueryable-2200"><span class="linenos">2200</span></a> <span class="p">)</span>
</span></pre></div>
@@ -21448,33 +22624,33 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">subquery</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">alias</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 class="n"><a href="#Subquery">sqlglot.expressions.Subquery</a></span>:</span></span>
+ <span class="name">subquery</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Subquery">sqlglot.expressions.Subquery</a></span>:</span></span>
<label class="view-source-button" for="Subqueryable.subquery-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable.subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-1953"><a href="#Subqueryable.subquery-1953"><span class="linenos">1953</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subqueryable.subquery-1954"><a href="#Subqueryable.subquery-1954"><span class="linenos">1954</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable.subquery-1955"><a href="#Subqueryable.subquery-1955"><span class="linenos">1955</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-1956"><a href="#Subqueryable.subquery-1956"><span class="linenos">1956</span></a>
-</span><span id="Subqueryable.subquery-1957"><a href="#Subqueryable.subquery-1957"><span class="linenos">1957</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable.subquery-1958"><a href="#Subqueryable.subquery-1958"><span class="linenos">1958</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-1959"><a href="#Subqueryable.subquery-1959"><span class="linenos">1959</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="Subqueryable.subquery-1960"><a href="#Subqueryable.subquery-1960"><span class="linenos">1960</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="Subqueryable.subquery-1961"><a href="#Subqueryable.subquery-1961"><span class="linenos">1961</span></a>
-</span><span id="Subqueryable.subquery-1962"><a href="#Subqueryable.subquery-1962"><span class="linenos">1962</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable.subquery-1963"><a href="#Subqueryable.subquery-1963"><span class="linenos">1963</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="Subqueryable.subquery-1964"><a href="#Subqueryable.subquery-1964"><span class="linenos">1964</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable.subquery-1965"><a href="#Subqueryable.subquery-1965"><span class="linenos">1965</span></a>
-</span><span id="Subqueryable.subquery-1966"><a href="#Subqueryable.subquery-1966"><span class="linenos">1966</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable.subquery-1967"><a href="#Subqueryable.subquery-1967"><span class="linenos">1967</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="Subqueryable.subquery-1968"><a href="#Subqueryable.subquery-1968"><span class="linenos">1968</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable.subquery-1969"><a href="#Subqueryable.subquery-1969"><span class="linenos">1969</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-1970"><a href="#Subqueryable.subquery-1970"><span class="linenos">1970</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
-</span><span id="Subqueryable.subquery-1971"><a href="#Subqueryable.subquery-1971"><span class="linenos">1971</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Subqueryable.subquery-1972"><a href="#Subqueryable.subquery-1972"><span class="linenos">1972</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.subquery-1973"><a href="#Subqueryable.subquery-1973"><span class="linenos">1973</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-2124"><a href="#Subqueryable.subquery-2124"><span class="linenos">2124</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-2125"><a href="#Subqueryable.subquery-2125"><span class="linenos">2125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable.subquery-2126"><a href="#Subqueryable.subquery-2126"><span class="linenos">2126</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-2127"><a href="#Subqueryable.subquery-2127"><span class="linenos">2127</span></a>
+</span><span id="Subqueryable.subquery-2128"><a href="#Subqueryable.subquery-2128"><span class="linenos">2128</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable.subquery-2129"><a href="#Subqueryable.subquery-2129"><span class="linenos">2129</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-2130"><a href="#Subqueryable.subquery-2130"><span class="linenos">2130</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="Subqueryable.subquery-2131"><a href="#Subqueryable.subquery-2131"><span class="linenos">2131</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="Subqueryable.subquery-2132"><a href="#Subqueryable.subquery-2132"><span class="linenos">2132</span></a>
+</span><span id="Subqueryable.subquery-2133"><a href="#Subqueryable.subquery-2133"><span class="linenos">2133</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable.subquery-2134"><a href="#Subqueryable.subquery-2134"><span class="linenos">2134</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="Subqueryable.subquery-2135"><a href="#Subqueryable.subquery-2135"><span class="linenos">2135</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable.subquery-2136"><a href="#Subqueryable.subquery-2136"><span class="linenos">2136</span></a>
+</span><span id="Subqueryable.subquery-2137"><a href="#Subqueryable.subquery-2137"><span class="linenos">2137</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable.subquery-2138"><a href="#Subqueryable.subquery-2138"><span class="linenos">2138</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="Subqueryable.subquery-2139"><a href="#Subqueryable.subquery-2139"><span class="linenos">2139</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable.subquery-2140"><a href="#Subqueryable.subquery-2140"><span class="linenos">2140</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-2141"><a href="#Subqueryable.subquery-2141"><span class="linenos">2141</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-2142"><a href="#Subqueryable.subquery-2142"><span class="linenos">2142</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-2143"><a href="#Subqueryable.subquery-2143"><span class="linenos">2143</span></a>
+</span><span id="Subqueryable.subquery-2144"><a href="#Subqueryable.subquery-2144"><span class="linenos">2144</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>
@@ -21512,14 +22688,16 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Subqueryable.limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable.limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-1975"><a href="#Subqueryable.limit-1975"><span class="linenos">1975</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Subqueryable.limit-1976"><a href="#Subqueryable.limit-1976"><span class="linenos">1976</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-2146"><a href="#Subqueryable.limit-2146"><span class="linenos">2146</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Subqueryable.limit-2147"><a href="#Subqueryable.limit-2147"><span class="linenos">2147</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-2148"><a href="#Subqueryable.limit-2148"><span class="linenos">2148</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-2149"><a href="#Subqueryable.limit-2149"><span class="linenos">2149</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
</span></pre></div>
@@ -21531,68 +22709,47 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">with_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span>,</span><span class="param"> <span class="n">as_</span>,</span><span class="param"> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">with_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">as_</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">recursive</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="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Subqueryable">sqlglot.expressions.Subqueryable</a></span>:</span></span>
<label class="view-source-button" for="Subqueryable.with_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable.with_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-1993"><a href="#Subqueryable.with_-1993"><span class="linenos">1993</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-1994"><a href="#Subqueryable.with_-1994"><span class="linenos">1994</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1995"><a href="#Subqueryable.with_-1995"><span class="linenos">1995</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1996"><a href="#Subqueryable.with_-1996"><span class="linenos">1996</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1997"><a href="#Subqueryable.with_-1997"><span class="linenos">1997</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1998"><a href="#Subqueryable.with_-1998"><span class="linenos">1998</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1999"><a href="#Subqueryable.with_-1999"><span class="linenos">1999</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2000"><a href="#Subqueryable.with_-2000"><span class="linenos">2000</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2001"><a href="#Subqueryable.with_-2001"><span class="linenos">2001</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2002"><a href="#Subqueryable.with_-2002"><span class="linenos">2002</span></a> <span class="p">):</span>
-</span><span id="Subqueryable.with_-2003"><a href="#Subqueryable.with_-2003"><span class="linenos">2003</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable.with_-2004"><a href="#Subqueryable.with_-2004"><span class="linenos">2004</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Subqueryable.with_-2005"><a href="#Subqueryable.with_-2005"><span class="linenos">2005</span></a>
-</span><span id="Subqueryable.with_-2006"><a href="#Subqueryable.with_-2006"><span class="linenos">2006</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable.with_-2007"><a href="#Subqueryable.with_-2007"><span class="linenos">2007</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_-2008"><a href="#Subqueryable.with_-2008"><span class="linenos">2008</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="Subqueryable.with_-2009"><a href="#Subqueryable.with_-2009"><span class="linenos">2009</span></a>
-</span><span id="Subqueryable.with_-2010"><a href="#Subqueryable.with_-2010"><span class="linenos">2010</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable.with_-2011"><a href="#Subqueryable.with_-2011"><span class="linenos">2011</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Subqueryable.with_-2012"><a href="#Subqueryable.with_-2012"><span class="linenos">2012</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Subqueryable.with_-2013"><a href="#Subqueryable.with_-2013"><span class="linenos">2013</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
-</span><span id="Subqueryable.with_-2014"><a href="#Subqueryable.with_-2014"><span class="linenos">2014</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Subqueryable.with_-2015"><a href="#Subqueryable.with_-2015"><span class="linenos">2015</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Subqueryable.with_-2016"><a href="#Subqueryable.with_-2016"><span class="linenos">2016</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Subqueryable.with_-2017"><a href="#Subqueryable.with_-2017"><span class="linenos">2017</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Subqueryable.with_-2018"><a href="#Subqueryable.with_-2018"><span class="linenos">2018</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Subqueryable.with_-2019"><a href="#Subqueryable.with_-2019"><span class="linenos">2019</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable.with_-2020"><a href="#Subqueryable.with_-2020"><span class="linenos">2020</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Subqueryable.with_-2021"><a href="#Subqueryable.with_-2021"><span class="linenos">2021</span></a>
-</span><span id="Subqueryable.with_-2022"><a href="#Subqueryable.with_-2022"><span class="linenos">2022</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable.with_-2023"><a href="#Subqueryable.with_-2023"><span class="linenos">2023</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Subqueryable.with_-2024"><a href="#Subqueryable.with_-2024"><span class="linenos">2024</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable.with_-2025"><a href="#Subqueryable.with_-2025"><span class="linenos">2025</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-2026"><a href="#Subqueryable.with_-2026"><span class="linenos">2026</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2027"><a href="#Subqueryable.with_-2027"><span class="linenos">2027</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2028"><a href="#Subqueryable.with_-2028"><span class="linenos">2028</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2029"><a href="#Subqueryable.with_-2029"><span class="linenos">2029</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2030"><a href="#Subqueryable.with_-2030"><span class="linenos">2030</span></a> <span class="p">)</span>
-</span><span id="Subqueryable.with_-2031"><a href="#Subqueryable.with_-2031"><span class="linenos">2031</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-2032"><a href="#Subqueryable.with_-2032"><span class="linenos">2032</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2033"><a href="#Subqueryable.with_-2033"><span class="linenos">2033</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2034"><a href="#Subqueryable.with_-2034"><span class="linenos">2034</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2035"><a href="#Subqueryable.with_-2035"><span class="linenos">2035</span></a> <span class="p">)</span>
-</span><span id="Subqueryable.with_-2036"><a href="#Subqueryable.with_-2036"><span class="linenos">2036</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-2037"><a href="#Subqueryable.with_-2037"><span class="linenos">2037</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2038"><a href="#Subqueryable.with_-2038"><span class="linenos">2038</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2039"><a href="#Subqueryable.with_-2039"><span class="linenos">2039</span></a> <span class="p">)</span>
-</span><span id="Subqueryable.with_-2040"><a href="#Subqueryable.with_-2040"><span class="linenos">2040</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-2041"><a href="#Subqueryable.with_-2041"><span class="linenos">2041</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2042"><a href="#Subqueryable.with_-2042"><span class="linenos">2042</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2043"><a href="#Subqueryable.with_-2043"><span class="linenos">2043</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2044"><a href="#Subqueryable.with_-2044"><span class="linenos">2044</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2045"><a href="#Subqueryable.with_-2045"><span class="linenos">2045</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2046"><a href="#Subqueryable.with_-2046"><span class="linenos">2046</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2047"><a href="#Subqueryable.with_-2047"><span class="linenos">2047</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
-</span><span id="Subqueryable.with_-2048"><a href="#Subqueryable.with_-2048"><span class="linenos">2048</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-2166"><a href="#Subqueryable.with_-2166"><span class="linenos">2166</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-2167"><a href="#Subqueryable.with_-2167"><span class="linenos">2167</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2168"><a href="#Subqueryable.with_-2168"><span class="linenos">2168</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_-2169"><a href="#Subqueryable.with_-2169"><span class="linenos">2169</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_-2170"><a href="#Subqueryable.with_-2170"><span class="linenos">2170</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_-2171"><a href="#Subqueryable.with_-2171"><span class="linenos">2171</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_-2172"><a href="#Subqueryable.with_-2172"><span class="linenos">2172</span></a> <span class="n">dialect</span><span 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_-2173"><a href="#Subqueryable.with_-2173"><span class="linenos">2173</span></a> <span class="n">copy</span><span 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_-2174"><a href="#Subqueryable.with_-2174"><span class="linenos">2174</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2175"><a href="#Subqueryable.with_-2175"><span class="linenos">2175</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_-2176"><a href="#Subqueryable.with_-2176"><span class="linenos">2176</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable.with_-2177"><a href="#Subqueryable.with_-2177"><span class="linenos">2177</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Subqueryable.with_-2178"><a href="#Subqueryable.with_-2178"><span class="linenos">2178</span></a>
+</span><span id="Subqueryable.with_-2179"><a href="#Subqueryable.with_-2179"><span class="linenos">2179</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable.with_-2180"><a href="#Subqueryable.with_-2180"><span class="linenos">2180</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_-2181"><a href="#Subqueryable.with_-2181"><span class="linenos">2181</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="Subqueryable.with_-2182"><a href="#Subqueryable.with_-2182"><span class="linenos">2182</span></a>
+</span><span id="Subqueryable.with_-2183"><a href="#Subqueryable.with_-2183"><span class="linenos">2183</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable.with_-2184"><a href="#Subqueryable.with_-2184"><span class="linenos">2184</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Subqueryable.with_-2185"><a href="#Subqueryable.with_-2185"><span class="linenos">2185</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Subqueryable.with_-2186"><a href="#Subqueryable.with_-2186"><span class="linenos">2186</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Subqueryable.with_-2187"><a href="#Subqueryable.with_-2187"><span class="linenos">2187</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Subqueryable.with_-2188"><a href="#Subqueryable.with_-2188"><span class="linenos">2188</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Subqueryable.with_-2189"><a href="#Subqueryable.with_-2189"><span class="linenos">2189</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Subqueryable.with_-2190"><a href="#Subqueryable.with_-2190"><span class="linenos">2190</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Subqueryable.with_-2191"><a href="#Subqueryable.with_-2191"><span class="linenos">2191</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Subqueryable.with_-2192"><a href="#Subqueryable.with_-2192"><span class="linenos">2192</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable.with_-2193"><a href="#Subqueryable.with_-2193"><span class="linenos">2193</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Subqueryable.with_-2194"><a href="#Subqueryable.with_-2194"><span class="linenos">2194</span></a>
+</span><span id="Subqueryable.with_-2195"><a href="#Subqueryable.with_-2195"><span class="linenos">2195</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable.with_-2196"><a href="#Subqueryable.with_-2196"><span class="linenos">2196</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Subqueryable.with_-2197"><a href="#Subqueryable.with_-2197"><span class="linenos">2197</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable.with_-2198"><a href="#Subqueryable.with_-2198"><span class="linenos">2198</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-2199"><a href="#Subqueryable.with_-2199"><span class="linenos">2199</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_-2200"><a href="#Subqueryable.with_-2200"><span class="linenos">2200</span></a> <span class="p">)</span>
</span></pre></div>
@@ -21611,22 +22768,22 @@ Otherwise, this resets the expression.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>alias (str | Expression):</strong> the SQL code string to parse as the table name.
+<li><strong>alias:</strong> the SQL code string to parse as the table name.
If an <code><a href="#Expression">Expression</a></code> instance is passed, this is used as-is.</li>
-<li><strong>as_ (str | Expression):</strong> the SQL code string to parse as the table expression.
+<li><strong>as_:</strong> the SQL code string to parse as the table expression.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>recursive (bool):</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>recursive:</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified expression.</p>
</blockquote>
</div>
@@ -21648,6 +22805,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Subqueryable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Subqueryable.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Subqueryable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Subqueryable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Subqueryable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21695,31 +22853,53 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table-2072"><a href="#Table-2072"><span class="linenos">2072</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-2073"><a href="#Table-2073"><span class="linenos">2073</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Table-2074"><a href="#Table-2074"><span class="linenos">2074</span></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-2075"><a href="#Table-2075"><span class="linenos">2075</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-2076"><a href="#Table-2076"><span class="linenos">2076</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-2077"><a href="#Table-2077"><span class="linenos">2077</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-2078"><a href="#Table-2078"><span class="linenos">2078</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-2079"><a href="#Table-2079"><span class="linenos">2079</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-2080"><a href="#Table-2080"><span class="linenos">2080</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-2081"><a href="#Table-2081"><span class="linenos">2081</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-2082"><a href="#Table-2082"><span class="linenos">2082</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-2083"><a href="#Table-2083"><span class="linenos">2083</span></a> <span class="p">}</span>
-</span><span id="Table-2084"><a href="#Table-2084"><span class="linenos">2084</span></a>
-</span><span id="Table-2085"><a href="#Table-2085"><span class="linenos">2085</span></a> <span class="nd">@property</span>
-</span><span id="Table-2086"><a href="#Table-2086"><span class="linenos">2086</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-2087"><a href="#Table-2087"><span class="linenos">2087</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-2088"><a href="#Table-2088"><span class="linenos">2088</span></a>
-</span><span id="Table-2089"><a href="#Table-2089"><span class="linenos">2089</span></a> <span class="nd">@property</span>
-</span><span id="Table-2090"><a href="#Table-2090"><span class="linenos">2090</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-2091"><a href="#Table-2091"><span class="linenos">2091</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 class="pdoc-code codehilite"><pre><span></span><span id="Table-2226"><a href="#Table-2226"><span class="linenos">2226</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-2227"><a href="#Table-2227"><span class="linenos">2227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Table-2228"><a href="#Table-2228"><span class="linenos">2228</span></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-2229"><a href="#Table-2229"><span class="linenos">2229</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-2230"><a href="#Table-2230"><span class="linenos">2230</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-2231"><a href="#Table-2231"><span class="linenos">2231</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-2232"><a href="#Table-2232"><span class="linenos">2232</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-2233"><a href="#Table-2233"><span class="linenos">2233</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-2234"><a href="#Table-2234"><span class="linenos">2234</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-2235"><a href="#Table-2235"><span class="linenos">2235</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-2236"><a href="#Table-2236"><span class="linenos">2236</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-2237"><a href="#Table-2237"><span class="linenos">2237</span></a> <span class="p">}</span>
+</span><span id="Table-2238"><a href="#Table-2238"><span class="linenos">2238</span></a>
+</span><span id="Table-2239"><a href="#Table-2239"><span class="linenos">2239</span></a> <span class="nd">@property</span>
+</span><span id="Table-2240"><a href="#Table-2240"><span class="linenos">2240</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-2241"><a href="#Table-2241"><span class="linenos">2241</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-2242"><a href="#Table-2242"><span class="linenos">2242</span></a>
+</span><span id="Table-2243"><a href="#Table-2243"><span class="linenos">2243</span></a> <span class="nd">@property</span>
+</span><span id="Table-2244"><a href="#Table-2244"><span class="linenos">2244</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-2245"><a href="#Table-2245"><span class="linenos">2245</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-2246"><a href="#Table-2246"><span class="linenos">2246</span></a>
+</span><span id="Table-2247"><a href="#Table-2247"><span class="linenos">2247</span></a> <span class="nd">@property</span>
+</span><span id="Table-2248"><a href="#Table-2248"><span class="linenos">2248</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="Table-2249"><a href="#Table-2249"><span class="linenos">2249</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-2250"><a href="#Table-2250"><span class="linenos">2250</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="Table-2251"><a href="#Table-2251"><span class="linenos">2251</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="Table-2252"><a href="#Table-2252"><span class="linenos">2252</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;this&quot;</span><span class="p">)</span>
+</span><span id="Table-2253"><a href="#Table-2253"><span class="linenos">2253</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="Table-2254"><a href="#Table-2254"><span class="linenos">2254</span></a> <span class="p">]</span>
+</span></pre></div>
+
+
+
+
+ <div id="Table.parts" class="classattr">
+ <div class="attr variable">
+ <span class="name">parts</span><span class="annotation">: List[<a href="#Identifier">sqlglot.expressions.Identifier</a>]</span>
+
+ </div>
+ <a class="headerlink" href="#Table.parts"></a>
+ <div class="docstring"><p>Return the parts of a table in order catalog, db, table.</p>
+</div>
+
+ </div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
@@ -21736,6 +22916,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Table.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Table.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Table.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Table.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Table.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21777,12 +22958,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#SystemTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-2095"><a href="#SystemTime-2095"><span class="linenos">2095</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SystemTime-2096"><a href="#SystemTime-2096"><span class="linenos">2096</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="SystemTime-2097"><a href="#SystemTime-2097"><span class="linenos">2097</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="SystemTime-2098"><a href="#SystemTime-2098"><span class="linenos">2098</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="SystemTime-2099"><a href="#SystemTime-2099"><span class="linenos">2099</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="SystemTime-2100"><a href="#SystemTime-2100"><span class="linenos">2100</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-2258"><a href="#SystemTime-2258"><span class="linenos">2258</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SystemTime-2259"><a href="#SystemTime-2259"><span class="linenos">2259</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="SystemTime-2260"><a href="#SystemTime-2260"><span class="linenos">2260</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="SystemTime-2261"><a href="#SystemTime-2261"><span class="linenos">2261</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="SystemTime-2262"><a href="#SystemTime-2262"><span class="linenos">2262</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="SystemTime-2263"><a href="#SystemTime-2263"><span class="linenos">2263</span></a> <span class="p">}</span>
</span></pre></div>
@@ -21804,6 +22985,7 @@ Otherwise, this resets the expressions.</li>
<dd id="SystemTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SystemTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SystemTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SystemTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SystemTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SystemTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SystemTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -21845,94 +23027,96 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union-2103"><a href="#Union-2103"><span class="linenos">2103</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-2104"><a href="#Union-2104"><span class="linenos">2104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Union-2105"><a href="#Union-2105"><span class="linenos">2105</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-2106"><a href="#Union-2106"><span class="linenos">2106</span></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-2107"><a href="#Union-2107"><span class="linenos">2107</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-2108"><a href="#Union-2108"><span class="linenos">2108</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-2109"><a href="#Union-2109"><span class="linenos">2109</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Union-2110"><a href="#Union-2110"><span class="linenos">2110</span></a> <span class="p">}</span>
-</span><span id="Union-2111"><a href="#Union-2111"><span class="linenos">2111</span></a>
-</span><span id="Union-2112"><a href="#Union-2112"><span class="linenos">2112</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Union-2113"><a href="#Union-2113"><span class="linenos">2113</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Union-2114"><a href="#Union-2114"><span class="linenos">2114</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Union-2115"><a href="#Union-2115"><span class="linenos">2115</span></a>
-</span><span id="Union-2116"><a href="#Union-2116"><span class="linenos">2116</span></a><span class="sd"> Example:</span>
-</span><span id="Union-2117"><a href="#Union-2117"><span class="linenos">2117</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-2118"><a href="#Union-2118"><span class="linenos">2118</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
-</span><span id="Union-2119"><a href="#Union-2119"><span class="linenos">2119</span></a>
-</span><span id="Union-2120"><a href="#Union-2120"><span class="linenos">2120</span></a><span class="sd"> Args:</span>
-</span><span id="Union-2121"><a href="#Union-2121"><span class="linenos">2121</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Union-2122"><a href="#Union-2122"><span class="linenos">2122</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Union-2123"><a href="#Union-2123"><span class="linenos">2123</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Union-2124"><a href="#Union-2124"><span class="linenos">2124</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Union-2125"><a href="#Union-2125"><span class="linenos">2125</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Union-2126"><a href="#Union-2126"><span class="linenos">2126</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Union-2127"><a href="#Union-2127"><span class="linenos">2127</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Union-2128"><a href="#Union-2128"><span class="linenos">2128</span></a>
-</span><span id="Union-2129"><a href="#Union-2129"><span class="linenos">2129</span></a><span class="sd"> Returns:</span>
-</span><span id="Union-2130"><a href="#Union-2130"><span class="linenos">2130</span></a><span class="sd"> Select: The limited subqueryable.</span>
-</span><span id="Union-2131"><a href="#Union-2131"><span class="linenos">2131</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union-2132"><a href="#Union-2132"><span class="linenos">2132</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="Union-2133"><a href="#Union-2133"><span class="linenos">2133</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-2134"><a href="#Union-2134"><span class="linenos">2134</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-2135"><a href="#Union-2135"><span class="linenos">2135</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-2136"><a href="#Union-2136"><span class="linenos">2136</span></a> <span class="p">)</span>
-</span><span id="Union-2137"><a href="#Union-2137"><span class="linenos">2137</span></a>
-</span><span id="Union-2138"><a href="#Union-2138"><span class="linenos">2138</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union-2139"><a href="#Union-2139"><span class="linenos">2139</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union-2140"><a href="#Union-2140"><span class="linenos">2140</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Union-2141"><a href="#Union-2141"><span class="linenos">2141</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-2142"><a href="#Union-2142"><span class="linenos">2142</span></a> <span class="n">dialect</span><span 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-2143"><a href="#Union-2143"><span class="linenos">2143</span></a> <span class="n">copy</span><span 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-2144"><a href="#Union-2144"><span class="linenos">2144</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union-2145"><a href="#Union-2145"><span class="linenos">2145</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="Union-2146"><a href="#Union-2146"><span class="linenos">2146</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-2147"><a href="#Union-2147"><span class="linenos">2147</span></a>
-</span><span id="Union-2148"><a href="#Union-2148"><span class="linenos">2148</span></a><span class="sd"> Example:</span>
-</span><span id="Union-2149"><a href="#Union-2149"><span class="linenos">2149</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Union-2150"><a href="#Union-2150"><span class="linenos">2150</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-2151"><a href="#Union-2151"><span class="linenos">2151</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-2152"><a href="#Union-2152"><span class="linenos">2152</span></a>
-</span><span id="Union-2153"><a href="#Union-2153"><span class="linenos">2153</span></a><span class="sd"> Args:</span>
-</span><span id="Union-2154"><a href="#Union-2154"><span class="linenos">2154</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Union-2155"><a href="#Union-2155"><span class="linenos">2155</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Union-2156"><a href="#Union-2156"><span class="linenos">2156</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Union-2157"><a href="#Union-2157"><span class="linenos">2157</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Union-2158"><a href="#Union-2158"><span class="linenos">2158</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Union-2159"><a href="#Union-2159"><span class="linenos">2159</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union-2160"><a href="#Union-2160"><span class="linenos">2160</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union-2161"><a href="#Union-2161"><span class="linenos">2161</span></a>
-</span><span id="Union-2162"><a href="#Union-2162"><span class="linenos">2162</span></a><span class="sd"> Returns:</span>
-</span><span id="Union-2163"><a href="#Union-2163"><span class="linenos">2163</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="Union-2164"><a href="#Union-2164"><span class="linenos">2164</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union-2165"><a href="#Union-2165"><span class="linenos">2165</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-2166"><a href="#Union-2166"><span class="linenos">2166</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-2167"><a href="#Union-2167"><span class="linenos">2167</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-2168"><a href="#Union-2168"><span class="linenos">2168</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-2169"><a href="#Union-2169"><span class="linenos">2169</span></a> <span class="p">)</span>
-</span><span id="Union-2170"><a href="#Union-2170"><span class="linenos">2170</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="Union-2171"><a href="#Union-2171"><span class="linenos">2171</span></a>
-</span><span id="Union-2172"><a href="#Union-2172"><span class="linenos">2172</span></a> <span class="nd">@property</span>
-</span><span id="Union-2173"><a href="#Union-2173"><span class="linenos">2173</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Union-2174"><a href="#Union-2174"><span class="linenos">2174</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-2175"><a href="#Union-2175"><span class="linenos">2175</span></a>
-</span><span id="Union-2176"><a href="#Union-2176"><span class="linenos">2176</span></a> <span class="nd">@property</span>
-</span><span id="Union-2177"><a href="#Union-2177"><span class="linenos">2177</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-2178"><a href="#Union-2178"><span class="linenos">2178</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-2179"><a href="#Union-2179"><span class="linenos">2179</span></a>
-</span><span id="Union-2180"><a href="#Union-2180"><span class="linenos">2180</span></a> <span class="nd">@property</span>
-</span><span id="Union-2181"><a href="#Union-2181"><span class="linenos">2181</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Union-2182"><a href="#Union-2182"><span class="linenos">2182</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-2183"><a href="#Union-2183"><span class="linenos">2183</span></a>
-</span><span id="Union-2184"><a href="#Union-2184"><span class="linenos">2184</span></a> <span class="nd">@property</span>
-</span><span id="Union-2185"><a href="#Union-2185"><span class="linenos">2185</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Union-2186"><a href="#Union-2186"><span class="linenos">2186</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-2187"><a href="#Union-2187"><span class="linenos">2187</span></a>
-</span><span id="Union-2188"><a href="#Union-2188"><span class="linenos">2188</span></a> <span class="nd">@property</span>
-</span><span id="Union-2189"><a href="#Union-2189"><span class="linenos">2189</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Union-2190"><a href="#Union-2190"><span class="linenos">2190</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union-2266"><a href="#Union-2266"><span class="linenos">2266</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-2267"><a href="#Union-2267"><span class="linenos">2267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Union-2268"><a href="#Union-2268"><span class="linenos">2268</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-2269"><a href="#Union-2269"><span class="linenos">2269</span></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-2270"><a href="#Union-2270"><span class="linenos">2270</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-2271"><a href="#Union-2271"><span class="linenos">2271</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-2272"><a href="#Union-2272"><span class="linenos">2272</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Union-2273"><a href="#Union-2273"><span class="linenos">2273</span></a> <span class="p">}</span>
+</span><span id="Union-2274"><a href="#Union-2274"><span class="linenos">2274</span></a>
+</span><span id="Union-2275"><a href="#Union-2275"><span class="linenos">2275</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Union-2276"><a href="#Union-2276"><span class="linenos">2276</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-2277"><a href="#Union-2277"><span class="linenos">2277</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Union-2278"><a href="#Union-2278"><span class="linenos">2278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Union-2279"><a href="#Union-2279"><span class="linenos">2279</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Union-2280"><a href="#Union-2280"><span class="linenos">2280</span></a>
+</span><span id="Union-2281"><a href="#Union-2281"><span class="linenos">2281</span></a><span class="sd"> Example:</span>
+</span><span id="Union-2282"><a href="#Union-2282"><span class="linenos">2282</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-2283"><a href="#Union-2283"><span class="linenos">2283</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="Union-2284"><a href="#Union-2284"><span class="linenos">2284</span></a>
+</span><span id="Union-2285"><a href="#Union-2285"><span class="linenos">2285</span></a><span class="sd"> Args:</span>
+</span><span id="Union-2286"><a href="#Union-2286"><span class="linenos">2286</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Union-2287"><a href="#Union-2287"><span class="linenos">2287</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Union-2288"><a href="#Union-2288"><span class="linenos">2288</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Union-2289"><a href="#Union-2289"><span class="linenos">2289</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Union-2290"><a href="#Union-2290"><span class="linenos">2290</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Union-2291"><a href="#Union-2291"><span class="linenos">2291</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union-2292"><a href="#Union-2292"><span class="linenos">2292</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union-2293"><a href="#Union-2293"><span class="linenos">2293</span></a>
+</span><span id="Union-2294"><a href="#Union-2294"><span class="linenos">2294</span></a><span class="sd"> Returns:</span>
+</span><span id="Union-2295"><a href="#Union-2295"><span class="linenos">2295</span></a><span class="sd"> The limited subqueryable.</span>
+</span><span id="Union-2296"><a href="#Union-2296"><span class="linenos">2296</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union-2297"><a href="#Union-2297"><span class="linenos">2297</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="Union-2298"><a href="#Union-2298"><span class="linenos">2298</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-2299"><a href="#Union-2299"><span class="linenos">2299</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-2300"><a href="#Union-2300"><span class="linenos">2300</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-2301"><a href="#Union-2301"><span class="linenos">2301</span></a> <span class="p">)</span>
+</span><span id="Union-2302"><a href="#Union-2302"><span class="linenos">2302</span></a>
+</span><span id="Union-2303"><a href="#Union-2303"><span class="linenos">2303</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union-2304"><a href="#Union-2304"><span class="linenos">2304</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union-2305"><a href="#Union-2305"><span class="linenos">2305</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-2306"><a href="#Union-2306"><span class="linenos">2306</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-2307"><a href="#Union-2307"><span class="linenos">2307</span></a> <span class="n">dialect</span><span 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-2308"><a href="#Union-2308"><span class="linenos">2308</span></a> <span class="n">copy</span><span 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-2309"><a href="#Union-2309"><span class="linenos">2309</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union-2310"><a href="#Union-2310"><span class="linenos">2310</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="Union-2311"><a href="#Union-2311"><span class="linenos">2311</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-2312"><a href="#Union-2312"><span class="linenos">2312</span></a>
+</span><span id="Union-2313"><a href="#Union-2313"><span class="linenos">2313</span></a><span class="sd"> Example:</span>
+</span><span id="Union-2314"><a href="#Union-2314"><span class="linenos">2314</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Union-2315"><a href="#Union-2315"><span class="linenos">2315</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-2316"><a href="#Union-2316"><span class="linenos">2316</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-2317"><a href="#Union-2317"><span class="linenos">2317</span></a>
+</span><span id="Union-2318"><a href="#Union-2318"><span class="linenos">2318</span></a><span class="sd"> Args:</span>
+</span><span id="Union-2319"><a href="#Union-2319"><span class="linenos">2319</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Union-2320"><a href="#Union-2320"><span class="linenos">2320</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Union-2321"><a href="#Union-2321"><span class="linenos">2321</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Union-2322"><a href="#Union-2322"><span class="linenos">2322</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Union-2323"><a href="#Union-2323"><span class="linenos">2323</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Union-2324"><a href="#Union-2324"><span class="linenos">2324</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union-2325"><a href="#Union-2325"><span class="linenos">2325</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union-2326"><a href="#Union-2326"><span class="linenos">2326</span></a>
+</span><span id="Union-2327"><a href="#Union-2327"><span class="linenos">2327</span></a><span class="sd"> Returns:</span>
+</span><span id="Union-2328"><a href="#Union-2328"><span class="linenos">2328</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="Union-2329"><a href="#Union-2329"><span class="linenos">2329</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union-2330"><a href="#Union-2330"><span class="linenos">2330</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-2331"><a href="#Union-2331"><span class="linenos">2331</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-2332"><a href="#Union-2332"><span class="linenos">2332</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-2333"><a href="#Union-2333"><span class="linenos">2333</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-2334"><a href="#Union-2334"><span class="linenos">2334</span></a> <span class="p">)</span>
+</span><span id="Union-2335"><a href="#Union-2335"><span class="linenos">2335</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="Union-2336"><a href="#Union-2336"><span class="linenos">2336</span></a>
+</span><span id="Union-2337"><a href="#Union-2337"><span class="linenos">2337</span></a> <span class="nd">@property</span>
+</span><span id="Union-2338"><a href="#Union-2338"><span class="linenos">2338</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Union-2339"><a href="#Union-2339"><span class="linenos">2339</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-2340"><a href="#Union-2340"><span class="linenos">2340</span></a>
+</span><span id="Union-2341"><a href="#Union-2341"><span class="linenos">2341</span></a> <span class="nd">@property</span>
+</span><span id="Union-2342"><a href="#Union-2342"><span class="linenos">2342</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-2343"><a href="#Union-2343"><span class="linenos">2343</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-2344"><a href="#Union-2344"><span class="linenos">2344</span></a>
+</span><span id="Union-2345"><a href="#Union-2345"><span class="linenos">2345</span></a> <span class="nd">@property</span>
+</span><span id="Union-2346"><a href="#Union-2346"><span class="linenos">2346</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Union-2347"><a href="#Union-2347"><span class="linenos">2347</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-2348"><a href="#Union-2348"><span class="linenos">2348</span></a>
+</span><span id="Union-2349"><a href="#Union-2349"><span class="linenos">2349</span></a> <span class="nd">@property</span>
+</span><span id="Union-2350"><a href="#Union-2350"><span class="linenos">2350</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Union-2351"><a href="#Union-2351"><span class="linenos">2351</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-2352"><a href="#Union-2352"><span class="linenos">2352</span></a>
+</span><span id="Union-2353"><a href="#Union-2353"><span class="linenos">2353</span></a> <span class="nd">@property</span>
+</span><span id="Union-2354"><a href="#Union-2354"><span class="linenos">2354</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Union-2355"><a href="#Union-2355"><span class="linenos">2355</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -21943,37 +23127,39 @@ Otherwise, this resets the expressions.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Union.limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Union.limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-2112"><a href="#Union.limit-2112"><span class="linenos">2112</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Union.limit-2113"><a href="#Union.limit-2113"><span class="linenos">2113</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Union.limit-2114"><a href="#Union.limit-2114"><span class="linenos">2114</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Union.limit-2115"><a href="#Union.limit-2115"><span class="linenos">2115</span></a>
-</span><span id="Union.limit-2116"><a href="#Union.limit-2116"><span class="linenos">2116</span></a><span class="sd"> Example:</span>
-</span><span id="Union.limit-2117"><a href="#Union.limit-2117"><span class="linenos">2117</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-2118"><a href="#Union.limit-2118"><span class="linenos">2118</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-2119"><a href="#Union.limit-2119"><span class="linenos">2119</span></a>
-</span><span id="Union.limit-2120"><a href="#Union.limit-2120"><span class="linenos">2120</span></a><span class="sd"> Args:</span>
-</span><span id="Union.limit-2121"><a href="#Union.limit-2121"><span class="linenos">2121</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Union.limit-2122"><a href="#Union.limit-2122"><span class="linenos">2122</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Union.limit-2123"><a href="#Union.limit-2123"><span class="linenos">2123</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Union.limit-2124"><a href="#Union.limit-2124"><span class="linenos">2124</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Union.limit-2125"><a href="#Union.limit-2125"><span class="linenos">2125</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Union.limit-2126"><a href="#Union.limit-2126"><span class="linenos">2126</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Union.limit-2127"><a href="#Union.limit-2127"><span class="linenos">2127</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Union.limit-2128"><a href="#Union.limit-2128"><span class="linenos">2128</span></a>
-</span><span id="Union.limit-2129"><a href="#Union.limit-2129"><span class="linenos">2129</span></a><span class="sd"> Returns:</span>
-</span><span id="Union.limit-2130"><a href="#Union.limit-2130"><span class="linenos">2130</span></a><span class="sd"> Select: The limited subqueryable.</span>
-</span><span id="Union.limit-2131"><a href="#Union.limit-2131"><span class="linenos">2131</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union.limit-2132"><a href="#Union.limit-2132"><span class="linenos">2132</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="Union.limit-2133"><a href="#Union.limit-2133"><span class="linenos">2133</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-2134"><a href="#Union.limit-2134"><span class="linenos">2134</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-2135"><a href="#Union.limit-2135"><span class="linenos">2135</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-2136"><a href="#Union.limit-2136"><span class="linenos">2136</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-2275"><a href="#Union.limit-2275"><span class="linenos">2275</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Union.limit-2276"><a href="#Union.limit-2276"><span class="linenos">2276</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-2277"><a href="#Union.limit-2277"><span class="linenos">2277</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-2278"><a href="#Union.limit-2278"><span class="linenos">2278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Union.limit-2279"><a href="#Union.limit-2279"><span class="linenos">2279</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Union.limit-2280"><a href="#Union.limit-2280"><span class="linenos">2280</span></a>
+</span><span id="Union.limit-2281"><a href="#Union.limit-2281"><span class="linenos">2281</span></a><span class="sd"> Example:</span>
+</span><span id="Union.limit-2282"><a href="#Union.limit-2282"><span class="linenos">2282</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-2283"><a href="#Union.limit-2283"><span class="linenos">2283</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-2284"><a href="#Union.limit-2284"><span class="linenos">2284</span></a>
+</span><span id="Union.limit-2285"><a href="#Union.limit-2285"><span class="linenos">2285</span></a><span class="sd"> Args:</span>
+</span><span id="Union.limit-2286"><a href="#Union.limit-2286"><span class="linenos">2286</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Union.limit-2287"><a href="#Union.limit-2287"><span class="linenos">2287</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Union.limit-2288"><a href="#Union.limit-2288"><span class="linenos">2288</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Union.limit-2289"><a href="#Union.limit-2289"><span class="linenos">2289</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Union.limit-2290"><a href="#Union.limit-2290"><span class="linenos">2290</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Union.limit-2291"><a href="#Union.limit-2291"><span class="linenos">2291</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union.limit-2292"><a href="#Union.limit-2292"><span class="linenos">2292</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union.limit-2293"><a href="#Union.limit-2293"><span class="linenos">2293</span></a>
+</span><span id="Union.limit-2294"><a href="#Union.limit-2294"><span class="linenos">2294</span></a><span class="sd"> Returns:</span>
+</span><span id="Union.limit-2295"><a href="#Union.limit-2295"><span class="linenos">2295</span></a><span class="sd"> The limited subqueryable.</span>
+</span><span id="Union.limit-2296"><a href="#Union.limit-2296"><span class="linenos">2296</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union.limit-2297"><a href="#Union.limit-2297"><span class="linenos">2297</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="Union.limit-2298"><a href="#Union.limit-2298"><span class="linenos">2298</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-2299"><a href="#Union.limit-2299"><span class="linenos">2299</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-2300"><a href="#Union.limit-2300"><span class="linenos">2300</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-2301"><a href="#Union.limit-2301"><span class="linenos">2301</span></a> <span class="p">)</span>
</span></pre></div>
@@ -21992,19 +23178,19 @@ Otherwise, this resets the expressions.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.
+<li><strong>expression:</strong> the SQL code string to parse.
This can also be an integer.
If a <code><a href="#Limit">Limit</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Limit">Limit</a></code>.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: The limited subqueryable.</p>
+ <p>The limited subqueryable.</p>
</blockquote>
</div>
@@ -22015,45 +23201,45 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<div class="attr function">
<span class="def">def</span>
- <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span>
+ <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span>
<label class="view-source-button" for="Union.select-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Union.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-2138"><a href="#Union.select-2138"><span class="linenos">2138</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union.select-2139"><a href="#Union.select-2139"><span class="linenos">2139</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union.select-2140"><a href="#Union.select-2140"><span class="linenos">2140</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Union.select-2141"><a href="#Union.select-2141"><span class="linenos">2141</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-2142"><a href="#Union.select-2142"><span class="linenos">2142</span></a> <span class="n">dialect</span><span 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-2143"><a href="#Union.select-2143"><span class="linenos">2143</span></a> <span class="n">copy</span><span 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-2144"><a href="#Union.select-2144"><span class="linenos">2144</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union.select-2145"><a href="#Union.select-2145"><span class="linenos">2145</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-2146"><a href="#Union.select-2146"><span class="linenos">2146</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-2147"><a href="#Union.select-2147"><span class="linenos">2147</span></a>
-</span><span id="Union.select-2148"><a href="#Union.select-2148"><span class="linenos">2148</span></a><span class="sd"> Example:</span>
-</span><span id="Union.select-2149"><a href="#Union.select-2149"><span class="linenos">2149</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Union.select-2150"><a href="#Union.select-2150"><span class="linenos">2150</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-2151"><a href="#Union.select-2151"><span class="linenos">2151</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-2152"><a href="#Union.select-2152"><span class="linenos">2152</span></a>
-</span><span id="Union.select-2153"><a href="#Union.select-2153"><span class="linenos">2153</span></a><span class="sd"> Args:</span>
-</span><span id="Union.select-2154"><a href="#Union.select-2154"><span class="linenos">2154</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Union.select-2155"><a href="#Union.select-2155"><span class="linenos">2155</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Union.select-2156"><a href="#Union.select-2156"><span class="linenos">2156</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Union.select-2157"><a href="#Union.select-2157"><span class="linenos">2157</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Union.select-2158"><a href="#Union.select-2158"><span class="linenos">2158</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Union.select-2159"><a href="#Union.select-2159"><span class="linenos">2159</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union.select-2160"><a href="#Union.select-2160"><span class="linenos">2160</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union.select-2161"><a href="#Union.select-2161"><span class="linenos">2161</span></a>
-</span><span id="Union.select-2162"><a href="#Union.select-2162"><span class="linenos">2162</span></a><span class="sd"> Returns:</span>
-</span><span id="Union.select-2163"><a href="#Union.select-2163"><span class="linenos">2163</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="Union.select-2164"><a href="#Union.select-2164"><span class="linenos">2164</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union.select-2165"><a href="#Union.select-2165"><span class="linenos">2165</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-2166"><a href="#Union.select-2166"><span class="linenos">2166</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-2167"><a href="#Union.select-2167"><span class="linenos">2167</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-2168"><a href="#Union.select-2168"><span class="linenos">2168</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-2169"><a href="#Union.select-2169"><span class="linenos">2169</span></a> <span class="p">)</span>
-</span><span id="Union.select-2170"><a href="#Union.select-2170"><span class="linenos">2170</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-2303"><a href="#Union.select-2303"><span class="linenos">2303</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union.select-2304"><a href="#Union.select-2304"><span class="linenos">2304</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union.select-2305"><a href="#Union.select-2305"><span class="linenos">2305</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-2306"><a href="#Union.select-2306"><span class="linenos">2306</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-2307"><a href="#Union.select-2307"><span class="linenos">2307</span></a> <span class="n">dialect</span><span 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-2308"><a href="#Union.select-2308"><span class="linenos">2308</span></a> <span class="n">copy</span><span 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-2309"><a href="#Union.select-2309"><span class="linenos">2309</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union.select-2310"><a href="#Union.select-2310"><span class="linenos">2310</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-2311"><a href="#Union.select-2311"><span class="linenos">2311</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-2312"><a href="#Union.select-2312"><span class="linenos">2312</span></a>
+</span><span id="Union.select-2313"><a href="#Union.select-2313"><span class="linenos">2313</span></a><span class="sd"> Example:</span>
+</span><span id="Union.select-2314"><a href="#Union.select-2314"><span class="linenos">2314</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Union.select-2315"><a href="#Union.select-2315"><span class="linenos">2315</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-2316"><a href="#Union.select-2316"><span class="linenos">2316</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-2317"><a href="#Union.select-2317"><span class="linenos">2317</span></a>
+</span><span id="Union.select-2318"><a href="#Union.select-2318"><span class="linenos">2318</span></a><span class="sd"> Args:</span>
+</span><span id="Union.select-2319"><a href="#Union.select-2319"><span class="linenos">2319</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Union.select-2320"><a href="#Union.select-2320"><span class="linenos">2320</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Union.select-2321"><a href="#Union.select-2321"><span class="linenos">2321</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Union.select-2322"><a href="#Union.select-2322"><span class="linenos">2322</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Union.select-2323"><a href="#Union.select-2323"><span class="linenos">2323</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Union.select-2324"><a href="#Union.select-2324"><span class="linenos">2324</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union.select-2325"><a href="#Union.select-2325"><span class="linenos">2325</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union.select-2326"><a href="#Union.select-2326"><span class="linenos">2326</span></a>
+</span><span id="Union.select-2327"><a href="#Union.select-2327"><span class="linenos">2327</span></a><span class="sd"> Returns:</span>
+</span><span id="Union.select-2328"><a href="#Union.select-2328"><span class="linenos">2328</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="Union.select-2329"><a href="#Union.select-2329"><span class="linenos">2329</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union.select-2330"><a href="#Union.select-2330"><span class="linenos">2330</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-2331"><a href="#Union.select-2331"><span class="linenos">2331</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-2332"><a href="#Union.select-2332"><span class="linenos">2332</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-2333"><a href="#Union.select-2333"><span class="linenos">2333</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-2334"><a href="#Union.select-2334"><span class="linenos">2334</span></a> <span class="p">)</span>
+</span><span id="Union.select-2335"><a href="#Union.select-2335"><span class="linenos">2335</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -22119,6 +23305,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Union.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Union.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Union.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Union.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Union.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22171,8 +23358,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-2193"><a href="#Except-2193"><span class="linenos">2193</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-2194"><a href="#Except-2194"><span class="linenos">2194</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Except-2358"><a href="#Except-2358"><span class="linenos">2358</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-2359"><a href="#Except-2359"><span class="linenos">2359</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22193,6 +23380,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Except.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Except.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Except.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Except.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Except.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22251,8 +23439,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-2197"><a href="#Intersect-2197"><span class="linenos">2197</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-2198"><a href="#Intersect-2198"><span class="linenos">2198</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-2362"><a href="#Intersect-2362"><span class="linenos">2362</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-2363"><a href="#Intersect-2363"><span class="linenos">2363</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22273,6 +23461,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Intersect.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Intersect.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Intersect.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Intersect.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Intersect.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22331,13 +23520,13 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2201"><a href="#Unnest-2201"><span class="linenos">2201</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-2202"><a href="#Unnest-2202"><span class="linenos">2202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Unnest-2203"><a href="#Unnest-2203"><span class="linenos">2203</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-2204"><a href="#Unnest-2204"><span class="linenos">2204</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Unnest-2205"><a href="#Unnest-2205"><span class="linenos">2205</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-2206"><a href="#Unnest-2206"><span class="linenos">2206</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-2207"><a href="#Unnest-2207"><span class="linenos">2207</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2366"><a href="#Unnest-2366"><span class="linenos">2366</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-2367"><a href="#Unnest-2367"><span class="linenos">2367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Unnest-2368"><a href="#Unnest-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Unnest-2369"><a href="#Unnest-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Unnest-2370"><a href="#Unnest-2370"><span class="linenos">2370</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-2371"><a href="#Unnest-2371"><span class="linenos">2371</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-2372"><a href="#Unnest-2372"><span class="linenos">2372</span></a> <span class="p">}</span>
</span></pre></div>
@@ -22359,6 +23548,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Unnest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unnest.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Unnest.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unnest.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unnest.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22406,15 +23596,15 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Update"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2210"><a href="#Update-2210"><span class="linenos">2210</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-2211"><a href="#Update-2211"><span class="linenos">2211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Update-2212"><a href="#Update-2212"><span class="linenos">2212</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-2213"><a href="#Update-2213"><span class="linenos">2213</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-2214"><a href="#Update-2214"><span class="linenos">2214</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-2215"><a href="#Update-2215"><span class="linenos">2215</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-2216"><a href="#Update-2216"><span class="linenos">2216</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-2217"><a href="#Update-2217"><span class="linenos">2217</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-2218"><a href="#Update-2218"><span class="linenos">2218</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2375"><a href="#Update-2375"><span class="linenos">2375</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-2376"><a href="#Update-2376"><span class="linenos">2376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Update-2377"><a href="#Update-2377"><span class="linenos">2377</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-2378"><a href="#Update-2378"><span class="linenos">2378</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-2379"><a href="#Update-2379"><span class="linenos">2379</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-2380"><a href="#Update-2380"><span class="linenos">2380</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-2381"><a href="#Update-2381"><span class="linenos">2381</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-2382"><a href="#Update-2382"><span class="linenos">2382</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-2383"><a href="#Update-2383"><span class="linenos">2383</span></a> <span class="p">}</span>
</span></pre></div>
@@ -22436,6 +23626,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Update.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Update.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Update.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Update.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Update.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22477,12 +23668,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2221"><a href="#Values-2221"><span class="linenos">2221</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-2222"><a href="#Values-2222"><span class="linenos">2222</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Values-2223"><a href="#Values-2223"><span class="linenos">2223</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Values-2224"><a href="#Values-2224"><span class="linenos">2224</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Values-2225"><a href="#Values-2225"><span class="linenos">2225</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Values-2226"><a href="#Values-2226"><span class="linenos">2226</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2386"><a href="#Values-2386"><span class="linenos">2386</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-2387"><a href="#Values-2387"><span class="linenos">2387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Values-2388"><a href="#Values-2388"><span class="linenos">2388</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Values-2389"><a href="#Values-2389"><span class="linenos">2389</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Values-2390"><a href="#Values-2390"><span class="linenos">2390</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Values-2391"><a href="#Values-2391"><span class="linenos">2391</span></a> <span class="p">}</span>
</span></pre></div>
@@ -22504,6 +23695,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Values.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Values.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Values.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Values.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Values.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22551,8 +23743,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-2229"><a href="#Var-2229"><span class="linenos">2229</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-2230"><a href="#Var-2230"><span class="linenos">2230</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Var-2394"><a href="#Var-2394"><span class="linenos">2394</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-2395"><a href="#Var-2395"><span class="linenos">2395</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22574,6 +23766,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Var.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Var.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Var.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Var.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Var.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22615,8 +23808,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Schema"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Schema-2233"><a href="#Schema-2233"><span class="linenos">2233</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-2234"><a href="#Schema-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">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-2398"><a href="#Schema-2398"><span class="linenos">2398</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-2399"><a href="#Schema-2399"><span class="linenos">2399</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -22638,6 +23831,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Schema.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Schema.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Schema.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Schema.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Schema.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22679,8 +23873,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2239"><a href="#Lock-2239"><span class="linenos">2239</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-2240"><a href="#Lock-2240"><span class="linenos">2240</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2404"><a href="#Lock-2404"><span class="linenos">2404</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-2405"><a href="#Lock-2405"><span class="linenos">2405</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -22702,6 +23896,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Lock.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lock.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Lock.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lock.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lock.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -22743,593 +23938,673 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2243"><a href="#Select-2243"><span class="linenos">2243</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-2244"><a href="#Select-2244"><span class="linenos">2244</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Select-2245"><a href="#Select-2245"><span class="linenos">2245</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-2246"><a href="#Select-2246"><span class="linenos">2246</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-2247"><a href="#Select-2247"><span class="linenos">2247</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-2248"><a href="#Select-2248"><span class="linenos">2248</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-2249"><a href="#Select-2249"><span class="linenos">2249</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-2250"><a href="#Select-2250"><span class="linenos">2250</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-2251"><a href="#Select-2251"><span class="linenos">2251</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-2252"><a href="#Select-2252"><span class="linenos">2252</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Select-2253"><a href="#Select-2253"><span class="linenos">2253</span></a> <span class="p">}</span>
-</span><span id="Select-2254"><a href="#Select-2254"><span class="linenos">2254</span></a>
-</span><span id="Select-2255"><a href="#Select-2255"><span class="linenos">2255</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2256"><a href="#Select-2256"><span class="linenos">2256</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2257"><a href="#Select-2257"><span class="linenos">2257</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select-2258"><a href="#Select-2258"><span class="linenos">2258</span></a>
-</span><span id="Select-2259"><a href="#Select-2259"><span class="linenos">2259</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2260"><a href="#Select-2260"><span class="linenos">2260</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select-2261"><a href="#Select-2261"><span class="linenos">2261</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select-2262"><a href="#Select-2262"><span class="linenos">2262</span></a>
-</span><span id="Select-2263"><a href="#Select-2263"><span class="linenos">2263</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2264"><a href="#Select-2264"><span class="linenos">2264</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2265"><a href="#Select-2265"><span class="linenos">2265</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select-2266"><a href="#Select-2266"><span class="linenos">2266</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select-2267"><a href="#Select-2267"><span class="linenos">2267</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2268"><a href="#Select-2268"><span class="linenos">2268</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
-</span><span id="Select-2269"><a href="#Select-2269"><span class="linenos">2269</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2270"><a href="#Select-2270"><span class="linenos">2270</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2271"><a href="#Select-2271"><span class="linenos">2271</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2272"><a href="#Select-2272"><span class="linenos">2272</span></a>
-</span><span id="Select-2273"><a href="#Select-2273"><span class="linenos">2273</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2274"><a href="#Select-2274"><span class="linenos">2274</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2275"><a href="#Select-2275"><span class="linenos">2275</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2276"><a href="#Select-2276"><span class="linenos">2276</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2277"><a href="#Select-2277"><span class="linenos">2277</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2278"><a href="#Select-2278"><span class="linenos">2278</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2279"><a href="#Select-2279"><span class="linenos">2279</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-2280"><a href="#Select-2280"><span class="linenos">2280</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2281"><a href="#Select-2281"><span class="linenos">2281</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2282"><a href="#Select-2282"><span class="linenos">2282</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-2283"><a href="#Select-2283"><span class="linenos">2283</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="Select-2284"><a href="#Select-2284"><span class="linenos">2284</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2285"><a href="#Select-2285"><span class="linenos">2285</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2286"><a href="#Select-2286"><span class="linenos">2286</span></a> <span class="p">)</span>
-</span><span id="Select-2287"><a href="#Select-2287"><span class="linenos">2287</span></a>
-</span><span id="Select-2288"><a href="#Select-2288"><span class="linenos">2288</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2289"><a href="#Select-2289"><span class="linenos">2289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2290"><a href="#Select-2290"><span class="linenos">2290</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select-2291"><a href="#Select-2291"><span class="linenos">2291</span></a>
-</span><span id="Select-2292"><a href="#Select-2292"><span class="linenos">2292</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2293"><a href="#Select-2293"><span class="linenos">2293</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-2294"><a href="#Select-2294"><span class="linenos">2294</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select-2295"><a href="#Select-2295"><span class="linenos">2295</span></a>
-</span><span id="Select-2296"><a href="#Select-2296"><span class="linenos">2296</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2297"><a href="#Select-2297"><span class="linenos">2297</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2298"><a href="#Select-2298"><span class="linenos">2298</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2299"><a href="#Select-2299"><span class="linenos">2299</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="Select-2300"><a href="#Select-2300"><span class="linenos">2300</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-2301"><a href="#Select-2301"><span class="linenos">2301</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2302"><a href="#Select-2302"><span class="linenos">2302</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select-2303"><a href="#Select-2303"><span class="linenos">2303</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2304"><a href="#Select-2304"><span class="linenos">2304</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2305"><a href="#Select-2305"><span class="linenos">2305</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2306"><a href="#Select-2306"><span class="linenos">2306</span></a>
-</span><span id="Select-2307"><a href="#Select-2307"><span class="linenos">2307</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2308"><a href="#Select-2308"><span class="linenos">2308</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2309"><a href="#Select-2309"><span class="linenos">2309</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2310"><a href="#Select-2310"><span class="linenos">2310</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-2311"><a href="#Select-2311"><span class="linenos">2311</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-2312"><a href="#Select-2312"><span class="linenos">2312</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2313"><a href="#Select-2313"><span class="linenos">2313</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2314"><a href="#Select-2314"><span class="linenos">2314</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2315"><a href="#Select-2315"><span class="linenos">2315</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-2316"><a href="#Select-2316"><span class="linenos">2316</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2317"><a href="#Select-2317"><span class="linenos">2317</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2318"><a href="#Select-2318"><span class="linenos">2318</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-2319"><a href="#Select-2319"><span class="linenos">2319</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="Select-2320"><a href="#Select-2320"><span class="linenos">2320</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2321"><a href="#Select-2321"><span class="linenos">2321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2322"><a href="#Select-2322"><span class="linenos">2322</span></a> <span class="p">)</span>
-</span><span id="Select-2323"><a href="#Select-2323"><span class="linenos">2323</span></a>
-</span><span id="Select-2324"><a href="#Select-2324"><span class="linenos">2324</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2325"><a href="#Select-2325"><span class="linenos">2325</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2326"><a href="#Select-2326"><span class="linenos">2326</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="Select-2327"><a href="#Select-2327"><span class="linenos">2327</span></a>
-</span><span id="Select-2328"><a href="#Select-2328"><span class="linenos">2328</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2329"><a href="#Select-2329"><span class="linenos">2329</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-2330"><a href="#Select-2330"><span class="linenos">2330</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
-</span><span id="Select-2331"><a href="#Select-2331"><span class="linenos">2331</span></a>
-</span><span id="Select-2332"><a href="#Select-2332"><span class="linenos">2332</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2333"><a href="#Select-2333"><span class="linenos">2333</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2334"><a href="#Select-2334"><span class="linenos">2334</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2335"><a href="#Select-2335"><span class="linenos">2335</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="Select-2336"><a href="#Select-2336"><span class="linenos">2336</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2337"><a href="#Select-2337"><span class="linenos">2337</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2338"><a href="#Select-2338"><span class="linenos">2338</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2339"><a href="#Select-2339"><span class="linenos">2339</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2340"><a href="#Select-2340"><span class="linenos">2340</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2341"><a href="#Select-2341"><span class="linenos">2341</span></a>
-</span><span id="Select-2342"><a href="#Select-2342"><span class="linenos">2342</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2343"><a href="#Select-2343"><span class="linenos">2343</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2344"><a href="#Select-2344"><span class="linenos">2344</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2345"><a href="#Select-2345"><span class="linenos">2345</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2346"><a href="#Select-2346"><span class="linenos">2346</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2347"><a href="#Select-2347"><span class="linenos">2347</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2348"><a href="#Select-2348"><span class="linenos">2348</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-2349"><a href="#Select-2349"><span class="linenos">2349</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2350"><a href="#Select-2350"><span class="linenos">2350</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2351"><a href="#Select-2351"><span class="linenos">2351</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-2352"><a href="#Select-2352"><span class="linenos">2352</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="Select-2353"><a href="#Select-2353"><span class="linenos">2353</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2354"><a href="#Select-2354"><span class="linenos">2354</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2355"><a href="#Select-2355"><span class="linenos">2355</span></a> <span class="p">)</span>
-</span><span id="Select-2356"><a href="#Select-2356"><span class="linenos">2356</span></a>
-</span><span id="Select-2357"><a href="#Select-2357"><span class="linenos">2357</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2358"><a href="#Select-2358"><span class="linenos">2358</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2359"><a href="#Select-2359"><span class="linenos">2359</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select-2360"><a href="#Select-2360"><span class="linenos">2360</span></a>
-</span><span id="Select-2361"><a href="#Select-2361"><span class="linenos">2361</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2362"><a href="#Select-2362"><span class="linenos">2362</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select-2363"><a href="#Select-2363"><span class="linenos">2363</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select-2364"><a href="#Select-2364"><span class="linenos">2364</span></a>
-</span><span id="Select-2365"><a href="#Select-2365"><span class="linenos">2365</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2366"><a href="#Select-2366"><span class="linenos">2366</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2367"><a href="#Select-2367"><span class="linenos">2367</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2368"><a href="#Select-2368"><span class="linenos">2368</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="Select-2369"><a href="#Select-2369"><span class="linenos">2369</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2370"><a href="#Select-2370"><span class="linenos">2370</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2371"><a href="#Select-2371"><span class="linenos">2371</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2372"><a href="#Select-2372"><span class="linenos">2372</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2373"><a href="#Select-2373"><span class="linenos">2373</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2374"><a href="#Select-2374"><span class="linenos">2374</span></a>
-</span><span id="Select-2375"><a href="#Select-2375"><span class="linenos">2375</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2376"><a href="#Select-2376"><span class="linenos">2376</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2377"><a href="#Select-2377"><span class="linenos">2377</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2378"><a href="#Select-2378"><span class="linenos">2378</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2379"><a href="#Select-2379"><span class="linenos">2379</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2380"><a href="#Select-2380"><span class="linenos">2380</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2381"><a href="#Select-2381"><span class="linenos">2381</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-2382"><a href="#Select-2382"><span class="linenos">2382</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2383"><a href="#Select-2383"><span class="linenos">2383</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2384"><a href="#Select-2384"><span class="linenos">2384</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-2385"><a href="#Select-2385"><span class="linenos">2385</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="Select-2386"><a href="#Select-2386"><span class="linenos">2386</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2387"><a href="#Select-2387"><span class="linenos">2387</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2388"><a href="#Select-2388"><span class="linenos">2388</span></a> <span class="p">)</span>
-</span><span id="Select-2389"><a href="#Select-2389"><span class="linenos">2389</span></a>
-</span><span id="Select-2390"><a href="#Select-2390"><span class="linenos">2390</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2391"><a href="#Select-2391"><span class="linenos">2391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2392"><a href="#Select-2392"><span class="linenos">2392</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select-2393"><a href="#Select-2393"><span class="linenos">2393</span></a>
-</span><span id="Select-2394"><a href="#Select-2394"><span class="linenos">2394</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2395"><a href="#Select-2395"><span class="linenos">2395</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select-2396"><a href="#Select-2396"><span class="linenos">2396</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select-2397"><a href="#Select-2397"><span class="linenos">2397</span></a>
-</span><span id="Select-2398"><a href="#Select-2398"><span class="linenos">2398</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2399"><a href="#Select-2399"><span class="linenos">2399</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2400"><a href="#Select-2400"><span class="linenos">2400</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2401"><a href="#Select-2401"><span class="linenos">2401</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="Select-2402"><a href="#Select-2402"><span class="linenos">2402</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2403"><a href="#Select-2403"><span class="linenos">2403</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2404"><a href="#Select-2404"><span class="linenos">2404</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2405"><a href="#Select-2405"><span class="linenos">2405</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2406"><a href="#Select-2406"><span class="linenos">2406</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2407"><a href="#Select-2407"><span class="linenos">2407</span></a>
-</span><span id="Select-2408"><a href="#Select-2408"><span class="linenos">2408</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2409"><a href="#Select-2409"><span class="linenos">2409</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2411"><a href="#Select-2411"><span class="linenos">2411</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2412"><a href="#Select-2412"><span class="linenos">2412</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2413"><a href="#Select-2413"><span class="linenos">2413</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2414"><a href="#Select-2414"><span class="linenos">2414</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-2415"><a href="#Select-2415"><span class="linenos">2415</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2416"><a href="#Select-2416"><span class="linenos">2416</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</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-2418"><a href="#Select-2418"><span class="linenos">2418</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="Select-2419"><a href="#Select-2419"><span class="linenos">2419</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a> <span class="p">)</span>
-</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</span></a>
-</span><span id="Select-2423"><a href="#Select-2423"><span class="linenos">2423</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2424"><a href="#Select-2424"><span class="linenos">2424</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Select-2426"><a href="#Select-2426"><span class="linenos">2426</span></a>
-</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</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-2429"><a href="#Select-2429"><span class="linenos">2429</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a>
-</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Select-2436"><a href="#Select-2436"><span class="linenos">2436</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2408"><a href="#Select-2408"><span class="linenos">2408</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-2409"><a href="#Select-2409"><span class="linenos">2409</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</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-2411"><a href="#Select-2411"><span class="linenos">2411</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-2412"><a href="#Select-2412"><span class="linenos">2412</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-2413"><a href="#Select-2413"><span class="linenos">2413</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-2414"><a href="#Select-2414"><span class="linenos">2414</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-2415"><a href="#Select-2415"><span class="linenos">2415</span></a> <span class="s2">&quot;struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table</span>
+</span><span id="Select-2416"><a href="#Select-2416"><span class="linenos">2416</span></a> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</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-2418"><a href="#Select-2418"><span class="linenos">2418</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-2419"><a href="#Select-2419"><span class="linenos">2419</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a> <span class="p">}</span>
+</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a>
+</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="Select-2423"><a href="#Select-2423"><span class="linenos">2423</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-2424"><a href="#Select-2424"><span class="linenos">2424</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2426"><a href="#Select-2426"><span class="linenos">2426</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a>
+</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2429"><a href="#Select-2429"><span class="linenos">2429</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a>
+</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select-2436"><a href="#Select-2436"><span class="linenos">2436</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2439"><a href="#Select-2439"><span class="linenos">2439</span></a>
</span><span id="Select-2440"><a href="#Select-2440"><span class="linenos">2440</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2441"><a href="#Select-2441"><span class="linenos">2441</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2441"><a href="#Select-2441"><span class="linenos">2441</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2442"><a href="#Select-2442"><span class="linenos">2442</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2443"><a href="#Select-2443"><span class="linenos">2443</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select-2444"><a href="#Select-2444"><span class="linenos">2444</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select-2445"><a href="#Select-2445"><span class="linenos">2445</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2446"><a href="#Select-2446"><span class="linenos">2446</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-2447"><a href="#Select-2447"><span class="linenos">2447</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="Select-2448"><a href="#Select-2448"><span class="linenos">2448</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-2446"><a href="#Select-2446"><span class="linenos">2446</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-2447"><a href="#Select-2447"><span class="linenos">2447</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="Select-2448"><a href="#Select-2448"><span class="linenos">2448</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-2449"><a href="#Select-2449"><span class="linenos">2449</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2450"><a href="#Select-2450"><span class="linenos">2450</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2451"><a href="#Select-2451"><span class="linenos">2451</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2452"><a href="#Select-2452"><span class="linenos">2452</span></a> <span class="p">)</span>
</span><span id="Select-2453"><a href="#Select-2453"><span class="linenos">2453</span></a>
-</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2456"><a href="#Select-2456"><span class="linenos">2456</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select-2457"><a href="#Select-2457"><span class="linenos">2457</span></a>
-</span><span id="Select-2458"><a href="#Select-2458"><span class="linenos">2458</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2459"><a href="#Select-2459"><span class="linenos">2459</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-2460"><a href="#Select-2460"><span class="linenos">2460</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a>
-</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select-2464"><a href="#Select-2464"><span class="linenos">2464</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="Select-2467"><a href="#Select-2467"><span class="linenos">2467</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2470"><a href="#Select-2470"><span class="linenos">2470</span></a>
-</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2474"><a href="#Select-2474"><span class="linenos">2474</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2476"><a href="#Select-2476"><span class="linenos">2476</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2477"><a href="#Select-2477"><span class="linenos">2477</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-2478"><a href="#Select-2478"><span class="linenos">2478</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="Select-2479"><a href="#Select-2479"><span class="linenos">2479</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-2480"><a href="#Select-2480"><span class="linenos">2480</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2481"><a href="#Select-2481"><span class="linenos">2481</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2483"><a href="#Select-2483"><span class="linenos">2483</span></a> <span class="p">)</span>
-</span><span id="Select-2484"><a href="#Select-2484"><span class="linenos">2484</span></a>
-</span><span id="Select-2485"><a href="#Select-2485"><span class="linenos">2485</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select-2486"><a href="#Select-2486"><span class="linenos">2486</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2487"><a href="#Select-2487"><span class="linenos">2487</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</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-2489"><a href="#Select-2489"><span class="linenos">2489</span></a> <span class="n">dialect</span><span 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-2490"><a href="#Select-2490"><span class="linenos">2490</span></a> <span class="n">copy</span><span 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-2491"><a href="#Select-2491"><span class="linenos">2491</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2492"><a href="#Select-2492"><span class="linenos">2492</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2493"><a href="#Select-2493"><span class="linenos">2493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2494"><a href="#Select-2494"><span class="linenos">2494</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a>
-</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="Select-2498"><a href="#Select-2498"><span class="linenos">2498</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</span></a>
-</span><span id="Select-2500"><a href="#Select-2500"><span class="linenos">2500</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2501"><a href="#Select-2501"><span class="linenos">2501</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-2502"><a href="#Select-2502"><span class="linenos">2502</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2503"><a href="#Select-2503"><span class="linenos">2503</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-2504"><a href="#Select-2504"><span class="linenos">2504</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2507"><a href="#Select-2507"><span class="linenos">2507</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2456"><a href="#Select-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="Select-2457"><a href="#Select-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="Select-2458"><a href="#Select-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="Select-2459"><a href="#Select-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="Select-2460"><a href="#Select-2460"><span class="linenos">2460</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select-2464"><a href="#Select-2464"><span class="linenos">2464</span></a>
+</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</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-2467"><a href="#Select-2467"><span class="linenos">2467</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a>
+</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2470"><a href="#Select-2470"><span class="linenos">2470</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</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-2474"><a href="#Select-2474"><span class="linenos">2474</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select-2476"><a href="#Select-2476"><span class="linenos">2476</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2477"><a href="#Select-2477"><span class="linenos">2477</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2478"><a href="#Select-2478"><span class="linenos">2478</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2479"><a href="#Select-2479"><span class="linenos">2479</span></a>
+</span><span id="Select-2480"><a href="#Select-2480"><span class="linenos">2480</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2481"><a href="#Select-2481"><span class="linenos">2481</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2483"><a href="#Select-2483"><span class="linenos">2483</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-2484"><a href="#Select-2484"><span class="linenos">2484</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-2485"><a href="#Select-2485"><span class="linenos">2485</span></a>
+</span><span id="Select-2486"><a href="#Select-2486"><span class="linenos">2486</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2487"><a href="#Select-2487"><span class="linenos">2487</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2489"><a href="#Select-2489"><span class="linenos">2489</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-2490"><a href="#Select-2490"><span class="linenos">2490</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2491"><a href="#Select-2491"><span class="linenos">2491</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2492"><a href="#Select-2492"><span class="linenos">2492</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-2493"><a href="#Select-2493"><span class="linenos">2493</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="Select-2494"><a href="#Select-2494"><span class="linenos">2494</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a> <span class="p">)</span>
+</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</span></a>
+</span><span id="Select-2498"><a href="#Select-2498"><span class="linenos">2498</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
+</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2500"><a href="#Select-2500"><span class="linenos">2500</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-2501"><a href="#Select-2501"><span class="linenos">2501</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-2502"><a href="#Select-2502"><span class="linenos">2502</span></a> <span class="n">dialect</span><span 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-2503"><a href="#Select-2503"><span class="linenos">2503</span></a> <span class="n">copy</span><span 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-2504"><a href="#Select-2504"><span class="linenos">2504</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2507"><a href="#Select-2507"><span class="linenos">2507</span></a><span class="sd"> Set the ORDER BY expression.</span>
</span><span id="Select-2508"><a href="#Select-2508"><span class="linenos">2508</span></a>
-</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2510"><a href="#Select-2510"><span class="linenos">2510</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2511"><a href="#Select-2511"><span class="linenos">2511</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2515"><a href="#Select-2515"><span class="linenos">2515</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-2516"><a href="#Select-2516"><span class="linenos">2516</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2517"><a href="#Select-2517"><span class="linenos">2517</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2518"><a href="#Select-2518"><span class="linenos">2518</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2519"><a href="#Select-2519"><span class="linenos">2519</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2520"><a href="#Select-2520"><span class="linenos">2520</span></a> <span class="p">)</span>
-</span><span id="Select-2521"><a href="#Select-2521"><span class="linenos">2521</span></a>
-</span><span id="Select-2522"><a href="#Select-2522"><span class="linenos">2522</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2523"><a href="#Select-2523"><span class="linenos">2523</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2524"><a href="#Select-2524"><span class="linenos">2524</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select-2525"><a href="#Select-2525"><span class="linenos">2525</span></a>
-</span><span id="Select-2526"><a href="#Select-2526"><span class="linenos">2526</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2527"><a href="#Select-2527"><span class="linenos">2527</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-2528"><a href="#Select-2528"><span class="linenos">2528</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="Select-2529"><a href="#Select-2529"><span class="linenos">2529</span></a>
-</span><span id="Select-2530"><a href="#Select-2530"><span class="linenos">2530</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2531"><a href="#Select-2531"><span class="linenos">2531</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2532"><a href="#Select-2532"><span class="linenos">2532</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2533"><a href="#Select-2533"><span class="linenos">2533</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2534"><a href="#Select-2534"><span class="linenos">2534</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-2535"><a href="#Select-2535"><span class="linenos">2535</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2536"><a href="#Select-2536"><span class="linenos">2536</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2537"><a href="#Select-2537"><span class="linenos">2537</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2538"><a href="#Select-2538"><span class="linenos">2538</span></a>
-</span><span id="Select-2539"><a href="#Select-2539"><span class="linenos">2539</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2540"><a href="#Select-2540"><span class="linenos">2540</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2541"><a href="#Select-2541"><span class="linenos">2541</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2542"><a href="#Select-2542"><span class="linenos">2542</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2543"><a href="#Select-2543"><span class="linenos">2543</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2544"><a href="#Select-2544"><span class="linenos">2544</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2545"><a href="#Select-2545"><span class="linenos">2545</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-2546"><a href="#Select-2546"><span class="linenos">2546</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2547"><a href="#Select-2547"><span class="linenos">2547</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="Select-2548"><a href="#Select-2548"><span class="linenos">2548</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-2549"><a href="#Select-2549"><span class="linenos">2549</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2550"><a href="#Select-2550"><span class="linenos">2550</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2551"><a href="#Select-2551"><span class="linenos">2551</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2552"><a href="#Select-2552"><span class="linenos">2552</span></a> <span class="p">)</span>
-</span><span id="Select-2553"><a href="#Select-2553"><span class="linenos">2553</span></a>
-</span><span id="Select-2554"><a href="#Select-2554"><span class="linenos">2554</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select-2555"><a href="#Select-2555"><span class="linenos">2555</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2556"><a href="#Select-2556"><span class="linenos">2556</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2557"><a href="#Select-2557"><span class="linenos">2557</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2558"><a href="#Select-2558"><span class="linenos">2558</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2559"><a href="#Select-2559"><span class="linenos">2559</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-2560"><a href="#Select-2560"><span class="linenos">2560</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2561"><a href="#Select-2561"><span class="linenos">2561</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2562"><a href="#Select-2562"><span class="linenos">2562</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2563"><a href="#Select-2563"><span class="linenos">2563</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-2564"><a href="#Select-2564"><span class="linenos">2564</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2565"><a href="#Select-2565"><span class="linenos">2565</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2566"><a href="#Select-2566"><span class="linenos">2566</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2567"><a href="#Select-2567"><span class="linenos">2567</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select-2568"><a href="#Select-2568"><span class="linenos">2568</span></a>
-</span><span id="Select-2569"><a href="#Select-2569"><span class="linenos">2569</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2570"><a href="#Select-2570"><span class="linenos">2570</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-2571"><a href="#Select-2571"><span class="linenos">2571</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-2572"><a href="#Select-2572"><span class="linenos">2572</span></a>
-</span><span id="Select-2573"><a href="#Select-2573"><span class="linenos">2573</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-2574"><a href="#Select-2574"><span class="linenos">2574</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select-2575"><a href="#Select-2575"><span class="linenos">2575</span></a>
-</span><span id="Select-2576"><a href="#Select-2576"><span class="linenos">2576</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2510"><a href="#Select-2510"><span class="linenos">2510</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-2511"><a href="#Select-2511"><span class="linenos">2511</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a>
+</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2515"><a href="#Select-2515"><span class="linenos">2515</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2516"><a href="#Select-2516"><span class="linenos">2516</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="Select-2517"><a href="#Select-2517"><span class="linenos">2517</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2518"><a href="#Select-2518"><span class="linenos">2518</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2519"><a href="#Select-2519"><span class="linenos">2519</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2520"><a href="#Select-2520"><span class="linenos">2520</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2521"><a href="#Select-2521"><span class="linenos">2521</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2522"><a href="#Select-2522"><span class="linenos">2522</span></a>
+</span><span id="Select-2523"><a href="#Select-2523"><span class="linenos">2523</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2524"><a href="#Select-2524"><span class="linenos">2524</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2525"><a href="#Select-2525"><span class="linenos">2525</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2526"><a href="#Select-2526"><span class="linenos">2526</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2527"><a href="#Select-2527"><span class="linenos">2527</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2528"><a href="#Select-2528"><span class="linenos">2528</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2529"><a href="#Select-2529"><span class="linenos">2529</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-2530"><a href="#Select-2530"><span class="linenos">2530</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2531"><a href="#Select-2531"><span class="linenos">2531</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2532"><a href="#Select-2532"><span class="linenos">2532</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-2533"><a href="#Select-2533"><span class="linenos">2533</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="Select-2534"><a href="#Select-2534"><span class="linenos">2534</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2535"><a href="#Select-2535"><span class="linenos">2535</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2536"><a href="#Select-2536"><span class="linenos">2536</span></a> <span class="p">)</span>
+</span><span id="Select-2537"><a href="#Select-2537"><span class="linenos">2537</span></a>
+</span><span id="Select-2538"><a href="#Select-2538"><span class="linenos">2538</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="Select-2539"><a href="#Select-2539"><span class="linenos">2539</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2540"><a href="#Select-2540"><span class="linenos">2540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</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-2541"><a href="#Select-2541"><span class="linenos">2541</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-2542"><a href="#Select-2542"><span class="linenos">2542</span></a> <span class="n">dialect</span><span 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-2543"><a href="#Select-2543"><span class="linenos">2543</span></a> <span class="n">copy</span><span 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-2544"><a href="#Select-2544"><span class="linenos">2544</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2545"><a href="#Select-2545"><span class="linenos">2545</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2546"><a href="#Select-2546"><span class="linenos">2546</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2547"><a href="#Select-2547"><span class="linenos">2547</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select-2548"><a href="#Select-2548"><span class="linenos">2548</span></a>
+</span><span id="Select-2549"><a href="#Select-2549"><span class="linenos">2549</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2550"><a href="#Select-2550"><span class="linenos">2550</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-2551"><a href="#Select-2551"><span class="linenos">2551</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select-2552"><a href="#Select-2552"><span class="linenos">2552</span></a>
+</span><span id="Select-2553"><a href="#Select-2553"><span class="linenos">2553</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2554"><a href="#Select-2554"><span class="linenos">2554</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2555"><a href="#Select-2555"><span class="linenos">2555</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2556"><a href="#Select-2556"><span class="linenos">2556</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="Select-2557"><a href="#Select-2557"><span class="linenos">2557</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2558"><a href="#Select-2558"><span class="linenos">2558</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2559"><a href="#Select-2559"><span class="linenos">2559</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2560"><a href="#Select-2560"><span class="linenos">2560</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2561"><a href="#Select-2561"><span class="linenos">2561</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2562"><a href="#Select-2562"><span class="linenos">2562</span></a>
+</span><span id="Select-2563"><a href="#Select-2563"><span class="linenos">2563</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2564"><a href="#Select-2564"><span class="linenos">2564</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2565"><a href="#Select-2565"><span class="linenos">2565</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2566"><a href="#Select-2566"><span class="linenos">2566</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2567"><a href="#Select-2567"><span class="linenos">2567</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2568"><a href="#Select-2568"><span class="linenos">2568</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2569"><a href="#Select-2569"><span class="linenos">2569</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-2570"><a href="#Select-2570"><span class="linenos">2570</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2571"><a href="#Select-2571"><span class="linenos">2571</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2572"><a href="#Select-2572"><span class="linenos">2572</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-2573"><a href="#Select-2573"><span class="linenos">2573</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="Select-2574"><a href="#Select-2574"><span class="linenos">2574</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2575"><a href="#Select-2575"><span class="linenos">2575</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2576"><a href="#Select-2576"><span class="linenos">2576</span></a> <span class="p">)</span>
</span><span id="Select-2577"><a href="#Select-2577"><span class="linenos">2577</span></a>
-</span><span id="Select-2578"><a href="#Select-2578"><span class="linenos">2578</span></a><span class="sd"> &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-2579"><a href="#Select-2579"><span class="linenos">2579</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-2580"><a href="#Select-2580"><span class="linenos">2580</span></a>
-</span><span id="Select-2581"><a href="#Select-2581"><span class="linenos">2581</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2582"><a href="#Select-2582"><span class="linenos">2582</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="Select-2583"><a href="#Select-2583"><span class="linenos">2583</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2584"><a href="#Select-2584"><span class="linenos">2584</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select-2585"><a href="#Select-2585"><span class="linenos">2585</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2586"><a href="#Select-2586"><span class="linenos">2586</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select-2587"><a href="#Select-2587"><span class="linenos">2587</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2588"><a href="#Select-2588"><span class="linenos">2588</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2589"><a href="#Select-2589"><span class="linenos">2589</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-2590"><a href="#Select-2590"><span class="linenos">2590</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
-</span><span id="Select-2591"><a href="#Select-2591"><span class="linenos">2591</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2592"><a href="#Select-2592"><span class="linenos">2592</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2593"><a href="#Select-2593"><span class="linenos">2593</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2594"><a href="#Select-2594"><span class="linenos">2594</span></a>
-</span><span id="Select-2595"><a href="#Select-2595"><span class="linenos">2595</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2596"><a href="#Select-2596"><span class="linenos">2596</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2597"><a href="#Select-2597"><span class="linenos">2597</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2598"><a href="#Select-2598"><span class="linenos">2598</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
-</span><span id="Select-2599"><a href="#Select-2599"><span class="linenos">2599</span></a>
-</span><span id="Select-2600"><a href="#Select-2600"><span class="linenos">2600</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select-2601"><a href="#Select-2601"><span class="linenos">2601</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-2602"><a href="#Select-2602"><span class="linenos">2602</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select-2603"><a href="#Select-2603"><span class="linenos">2603</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-2604"><a href="#Select-2604"><span class="linenos">2604</span></a>
-</span><span id="Select-2605"><a href="#Select-2605"><span class="linenos">2605</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-2606"><a href="#Select-2606"><span class="linenos">2606</span></a>
-</span><span id="Select-2607"><a href="#Select-2607"><span class="linenos">2607</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-2608"><a href="#Select-2608"><span class="linenos">2608</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-2609"><a href="#Select-2609"><span class="linenos">2609</span></a>
-</span><span id="Select-2610"><a href="#Select-2610"><span class="linenos">2610</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select-2611"><a href="#Select-2611"><span class="linenos">2611</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
-</span><span id="Select-2612"><a href="#Select-2612"><span class="linenos">2612</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-2613"><a href="#Select-2613"><span class="linenos">2613</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-2614"><a href="#Select-2614"><span class="linenos">2614</span></a>
-</span><span id="Select-2615"><a href="#Select-2615"><span class="linenos">2615</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Select-2616"><a href="#Select-2616"><span class="linenos">2616</span></a>
-</span><span id="Select-2617"><a href="#Select-2617"><span class="linenos">2617</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
-</span><span id="Select-2618"><a href="#Select-2618"><span class="linenos">2618</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="Select-2619"><a href="#Select-2619"><span class="linenos">2619</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select-2620"><a href="#Select-2620"><span class="linenos">2620</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-2621"><a href="#Select-2621"><span class="linenos">2621</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select-2622"><a href="#Select-2622"><span class="linenos">2622</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-2578"><a href="#Select-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="Select-2579"><a href="#Select-2579"><span class="linenos">2579</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2580"><a href="#Select-2580"><span class="linenos">2580</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</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-2581"><a href="#Select-2581"><span class="linenos">2581</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-2582"><a href="#Select-2582"><span class="linenos">2582</span></a> <span class="n">dialect</span><span 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-2583"><a href="#Select-2583"><span class="linenos">2583</span></a> <span class="n">copy</span><span 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-2584"><a href="#Select-2584"><span class="linenos">2584</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2585"><a href="#Select-2585"><span class="linenos">2585</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2586"><a href="#Select-2586"><span class="linenos">2586</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2587"><a href="#Select-2587"><span class="linenos">2587</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select-2588"><a href="#Select-2588"><span class="linenos">2588</span></a>
+</span><span id="Select-2589"><a href="#Select-2589"><span class="linenos">2589</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2590"><a href="#Select-2590"><span class="linenos">2590</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-2591"><a href="#Select-2591"><span class="linenos">2591</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select-2592"><a href="#Select-2592"><span class="linenos">2592</span></a>
+</span><span id="Select-2593"><a href="#Select-2593"><span class="linenos">2593</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2594"><a href="#Select-2594"><span class="linenos">2594</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2595"><a href="#Select-2595"><span class="linenos">2595</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2596"><a href="#Select-2596"><span class="linenos">2596</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="Select-2597"><a href="#Select-2597"><span class="linenos">2597</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2598"><a href="#Select-2598"><span class="linenos">2598</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2599"><a href="#Select-2599"><span class="linenos">2599</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2600"><a href="#Select-2600"><span class="linenos">2600</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2601"><a href="#Select-2601"><span class="linenos">2601</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2602"><a href="#Select-2602"><span class="linenos">2602</span></a>
+</span><span id="Select-2603"><a href="#Select-2603"><span class="linenos">2603</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2604"><a href="#Select-2604"><span class="linenos">2604</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2605"><a href="#Select-2605"><span class="linenos">2605</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2606"><a href="#Select-2606"><span class="linenos">2606</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2607"><a href="#Select-2607"><span class="linenos">2607</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2608"><a href="#Select-2608"><span class="linenos">2608</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2609"><a href="#Select-2609"><span class="linenos">2609</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-2610"><a href="#Select-2610"><span class="linenos">2610</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2611"><a href="#Select-2611"><span class="linenos">2611</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2612"><a href="#Select-2612"><span class="linenos">2612</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-2613"><a href="#Select-2613"><span class="linenos">2613</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="Select-2614"><a href="#Select-2614"><span class="linenos">2614</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2615"><a href="#Select-2615"><span class="linenos">2615</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2616"><a href="#Select-2616"><span class="linenos">2616</span></a> <span class="p">)</span>
+</span><span id="Select-2617"><a href="#Select-2617"><span class="linenos">2617</span></a>
+</span><span id="Select-2618"><a href="#Select-2618"><span class="linenos">2618</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Select-2619"><a href="#Select-2619"><span class="linenos">2619</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-2620"><a href="#Select-2620"><span class="linenos">2620</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2621"><a href="#Select-2621"><span class="linenos">2621</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2622"><a href="#Select-2622"><span class="linenos">2622</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="Select-2623"><a href="#Select-2623"><span class="linenos">2623</span></a>
-</span><span id="Select-2624"><a href="#Select-2624"><span class="linenos">2624</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select-2625"><a href="#Select-2625"><span class="linenos">2625</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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-2626"><a href="#Select-2626"><span class="linenos">2626</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-2624"><a href="#Select-2624"><span class="linenos">2624</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2625"><a href="#Select-2625"><span class="linenos">2625</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-2626"><a href="#Select-2626"><span class="linenos">2626</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="Select-2627"><a href="#Select-2627"><span class="linenos">2627</span></a>
-</span><span id="Select-2628"><a href="#Select-2628"><span class="linenos">2628</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select-2629"><a href="#Select-2629"><span class="linenos">2629</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-2630"><a href="#Select-2630"><span class="linenos">2630</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select-2631"><a href="#Select-2631"><span class="linenos">2631</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="Select-2632"><a href="#Select-2632"><span class="linenos">2632</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-2633"><a href="#Select-2633"><span class="linenos">2633</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2634"><a href="#Select-2634"><span class="linenos">2634</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2635"><a href="#Select-2635"><span class="linenos">2635</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2636"><a href="#Select-2636"><span class="linenos">2636</span></a> <span class="p">)</span>
-</span><span id="Select-2637"><a href="#Select-2637"><span class="linenos">2637</span></a>
-</span><span id="Select-2638"><a href="#Select-2638"><span class="linenos">2638</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select-2639"><a href="#Select-2639"><span class="linenos">2639</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-2640"><a href="#Select-2640"><span class="linenos">2640</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2641"><a href="#Select-2641"><span class="linenos">2641</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select-2628"><a href="#Select-2628"><span class="linenos">2628</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2629"><a href="#Select-2629"><span class="linenos">2629</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-2630"><a href="#Select-2630"><span class="linenos">2630</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select-2631"><a href="#Select-2631"><span class="linenos">2631</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Select-2632"><a href="#Select-2632"><span class="linenos">2632</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Select-2633"><a href="#Select-2633"><span class="linenos">2633</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2634"><a href="#Select-2634"><span class="linenos">2634</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2635"><a href="#Select-2635"><span class="linenos">2635</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2636"><a href="#Select-2636"><span class="linenos">2636</span></a>
+</span><span id="Select-2637"><a href="#Select-2637"><span class="linenos">2637</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2638"><a href="#Select-2638"><span class="linenos">2638</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2639"><a href="#Select-2639"><span class="linenos">2639</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2640"><a href="#Select-2640"><span class="linenos">2640</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-2641"><a href="#Select-2641"><span class="linenos">2641</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select-2642"><a href="#Select-2642"><span class="linenos">2642</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2643"><a href="#Select-2643"><span class="linenos">2643</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-2644"><a href="#Select-2644"><span class="linenos">2644</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2645"><a href="#Select-2645"><span class="linenos">2645</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2646"><a href="#Select-2646"><span class="linenos">2646</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2647"><a href="#Select-2647"><span class="linenos">2647</span></a> <span class="p">)</span>
-</span><span id="Select-2648"><a href="#Select-2648"><span class="linenos">2648</span></a>
-</span><span id="Select-2649"><a href="#Select-2649"><span class="linenos">2649</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2650"><a href="#Select-2650"><span class="linenos">2650</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2651"><a href="#Select-2651"><span class="linenos">2651</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select-2652"><a href="#Select-2652"><span class="linenos">2652</span></a>
-</span><span id="Select-2653"><a href="#Select-2653"><span class="linenos">2653</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2654"><a href="#Select-2654"><span class="linenos">2654</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-2655"><a href="#Select-2655"><span class="linenos">2655</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-2643"><a href="#Select-2643"><span class="linenos">2643</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-2644"><a href="#Select-2644"><span class="linenos">2644</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="Select-2645"><a href="#Select-2645"><span class="linenos">2645</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-2646"><a href="#Select-2646"><span class="linenos">2646</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2647"><a href="#Select-2647"><span class="linenos">2647</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2648"><a href="#Select-2648"><span class="linenos">2648</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2649"><a href="#Select-2649"><span class="linenos">2649</span></a> <span class="p">)</span>
+</span><span id="Select-2650"><a href="#Select-2650"><span class="linenos">2650</span></a>
+</span><span id="Select-2651"><a href="#Select-2651"><span class="linenos">2651</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
+</span><span id="Select-2652"><a href="#Select-2652"><span class="linenos">2652</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-2653"><a href="#Select-2653"><span class="linenos">2653</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2654"><a href="#Select-2654"><span class="linenos">2654</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2655"><a href="#Select-2655"><span class="linenos">2655</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="Select-2656"><a href="#Select-2656"><span class="linenos">2656</span></a>
-</span><span id="Select-2657"><a href="#Select-2657"><span class="linenos">2657</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2658"><a href="#Select-2658"><span class="linenos">2658</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2659"><a href="#Select-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="Select-2660"><a href="#Select-2660"><span class="linenos">2660</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-2661"><a href="#Select-2661"><span class="linenos">2661</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-2662"><a href="#Select-2662"><span class="linenos">2662</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-2663"><a href="#Select-2663"><span class="linenos">2663</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2664"><a href="#Select-2664"><span class="linenos">2664</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2665"><a href="#Select-2665"><span class="linenos">2665</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2666"><a href="#Select-2666"><span class="linenos">2666</span></a>
-</span><span id="Select-2667"><a href="#Select-2667"><span class="linenos">2667</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2668"><a href="#Select-2668"><span class="linenos">2668</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2669"><a href="#Select-2669"><span class="linenos">2669</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2670"><a href="#Select-2670"><span class="linenos">2670</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-2671"><a href="#Select-2671"><span class="linenos">2671</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2672"><a href="#Select-2672"><span class="linenos">2672</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2673"><a href="#Select-2673"><span class="linenos">2673</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-2674"><a href="#Select-2674"><span class="linenos">2674</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2675"><a href="#Select-2675"><span class="linenos">2675</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Select-2676"><a href="#Select-2676"><span class="linenos">2676</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2677"><a href="#Select-2677"><span class="linenos">2677</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2678"><a href="#Select-2678"><span class="linenos">2678</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2679"><a href="#Select-2679"><span class="linenos">2679</span></a> <span class="p">)</span>
-</span><span id="Select-2680"><a href="#Select-2680"><span class="linenos">2680</span></a>
-</span><span id="Select-2681"><a href="#Select-2681"><span class="linenos">2681</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2682"><a href="#Select-2682"><span class="linenos">2682</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2683"><a href="#Select-2683"><span class="linenos">2683</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select-2684"><a href="#Select-2684"><span class="linenos">2684</span></a>
-</span><span id="Select-2685"><a href="#Select-2685"><span class="linenos">2685</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2686"><a href="#Select-2686"><span class="linenos">2686</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-2687"><a href="#Select-2687"><span class="linenos">2687</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-2688"><a href="#Select-2688"><span class="linenos">2688</span></a>
-</span><span id="Select-2689"><a href="#Select-2689"><span class="linenos">2689</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2690"><a href="#Select-2690"><span class="linenos">2690</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2691"><a href="#Select-2691"><span class="linenos">2691</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2692"><a href="#Select-2692"><span class="linenos">2692</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-2693"><a href="#Select-2693"><span class="linenos">2693</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-2694"><a href="#Select-2694"><span class="linenos">2694</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-2695"><a href="#Select-2695"><span class="linenos">2695</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2696"><a href="#Select-2696"><span class="linenos">2696</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2697"><a href="#Select-2697"><span class="linenos">2697</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2657"><a href="#Select-2657"><span class="linenos">2657</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2658"><a href="#Select-2658"><span class="linenos">2658</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-2659"><a href="#Select-2659"><span class="linenos">2659</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
+</span><span id="Select-2660"><a href="#Select-2660"><span class="linenos">2660</span></a>
+</span><span id="Select-2661"><a href="#Select-2661"><span class="linenos">2661</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2662"><a href="#Select-2662"><span class="linenos">2662</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-2663"><a href="#Select-2663"><span class="linenos">2663</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select-2664"><a href="#Select-2664"><span class="linenos">2664</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="Select-2665"><a href="#Select-2665"><span class="linenos">2665</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="Select-2666"><a href="#Select-2666"><span class="linenos">2666</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2667"><a href="#Select-2667"><span class="linenos">2667</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2668"><a href="#Select-2668"><span class="linenos">2668</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2669"><a href="#Select-2669"><span class="linenos">2669</span></a>
+</span><span id="Select-2670"><a href="#Select-2670"><span class="linenos">2670</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2671"><a href="#Select-2671"><span class="linenos">2671</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2672"><a href="#Select-2672"><span class="linenos">2672</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2673"><a href="#Select-2673"><span class="linenos">2673</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-2674"><a href="#Select-2674"><span class="linenos">2674</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-2675"><a href="#Select-2675"><span class="linenos">2675</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2676"><a href="#Select-2676"><span class="linenos">2676</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-2677"><a href="#Select-2677"><span class="linenos">2677</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="Select-2678"><a href="#Select-2678"><span class="linenos">2678</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-2679"><a href="#Select-2679"><span class="linenos">2679</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2680"><a href="#Select-2680"><span class="linenos">2680</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2681"><a href="#Select-2681"><span class="linenos">2681</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2682"><a href="#Select-2682"><span class="linenos">2682</span></a> <span class="p">)</span>
+</span><span id="Select-2683"><a href="#Select-2683"><span class="linenos">2683</span></a>
+</span><span id="Select-2684"><a href="#Select-2684"><span class="linenos">2684</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select-2685"><a href="#Select-2685"><span class="linenos">2685</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2686"><a href="#Select-2686"><span class="linenos">2686</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-2687"><a href="#Select-2687"><span class="linenos">2687</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-2688"><a href="#Select-2688"><span class="linenos">2688</span></a> <span class="n">dialect</span><span 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-2689"><a href="#Select-2689"><span class="linenos">2689</span></a> <span class="n">copy</span><span 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-2690"><a href="#Select-2690"><span class="linenos">2690</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2691"><a href="#Select-2691"><span class="linenos">2691</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2692"><a href="#Select-2692"><span class="linenos">2692</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2693"><a href="#Select-2693"><span class="linenos">2693</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="Select-2694"><a href="#Select-2694"><span class="linenos">2694</span></a>
+</span><span id="Select-2695"><a href="#Select-2695"><span class="linenos">2695</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2696"><a href="#Select-2696"><span class="linenos">2696</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="Select-2697"><a href="#Select-2697"><span class="linenos">2697</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
</span><span id="Select-2698"><a href="#Select-2698"><span class="linenos">2698</span></a>
-</span><span id="Select-2699"><a href="#Select-2699"><span class="linenos">2699</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2700"><a href="#Select-2700"><span class="linenos">2700</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2701"><a href="#Select-2701"><span class="linenos">2701</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2702"><a href="#Select-2702"><span class="linenos">2702</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-2703"><a href="#Select-2703"><span class="linenos">2703</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2704"><a href="#Select-2704"><span class="linenos">2704</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2705"><a href="#Select-2705"><span class="linenos">2705</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-2706"><a href="#Select-2706"><span class="linenos">2706</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2707"><a href="#Select-2707"><span class="linenos">2707</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="Select-2708"><a href="#Select-2708"><span class="linenos">2708</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2709"><a href="#Select-2709"><span class="linenos">2709</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2710"><a href="#Select-2710"><span class="linenos">2710</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2711"><a href="#Select-2711"><span class="linenos">2711</span></a> <span class="p">)</span>
-</span><span id="Select-2712"><a href="#Select-2712"><span class="linenos">2712</span></a>
-</span><span id="Select-2713"><a href="#Select-2713"><span class="linenos">2713</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2714"><a href="#Select-2714"><span class="linenos">2714</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2715"><a href="#Select-2715"><span class="linenos">2715</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2716"><a href="#Select-2716"><span class="linenos">2716</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2717"><a href="#Select-2717"><span class="linenos">2717</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-2718"><a href="#Select-2718"><span class="linenos">2718</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2719"><a href="#Select-2719"><span class="linenos">2719</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="Select-2720"><a href="#Select-2720"><span class="linenos">2720</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2721"><a href="#Select-2721"><span class="linenos">2721</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2722"><a href="#Select-2722"><span class="linenos">2722</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2723"><a href="#Select-2723"><span class="linenos">2723</span></a> <span class="p">)</span>
-</span><span id="Select-2724"><a href="#Select-2724"><span class="linenos">2724</span></a>
-</span><span id="Select-2725"><a href="#Select-2725"><span class="linenos">2725</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2726"><a href="#Select-2726"><span class="linenos">2726</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-2727"><a href="#Select-2727"><span class="linenos">2727</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2728"><a href="#Select-2728"><span class="linenos">2728</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2729"><a href="#Select-2729"><span class="linenos">2729</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-2730"><a href="#Select-2730"><span class="linenos">2730</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2731"><a href="#Select-2731"><span class="linenos">2731</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="Select-2732"><a href="#Select-2732"><span class="linenos">2732</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2733"><a href="#Select-2733"><span class="linenos">2733</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2734"><a href="#Select-2734"><span class="linenos">2734</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2735"><a href="#Select-2735"><span class="linenos">2735</span></a> <span class="p">)</span>
-</span><span id="Select-2736"><a href="#Select-2736"><span class="linenos">2736</span></a>
-</span><span id="Select-2737"><a href="#Select-2737"><span class="linenos">2737</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</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 class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2738"><a href="#Select-2738"><span class="linenos">2738</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2739"><a href="#Select-2739"><span class="linenos">2739</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select-2740"><a href="#Select-2740"><span class="linenos">2740</span></a>
-</span><span id="Select-2741"><a href="#Select-2741"><span class="linenos">2741</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2742"><a href="#Select-2742"><span class="linenos">2742</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="Select-2743"><a href="#Select-2743"><span class="linenos">2743</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select-2699"><a href="#Select-2699"><span class="linenos">2699</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2700"><a href="#Select-2700"><span class="linenos">2700</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2701"><a href="#Select-2701"><span class="linenos">2701</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2702"><a href="#Select-2702"><span class="linenos">2702</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2703"><a href="#Select-2703"><span class="linenos">2703</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-2704"><a href="#Select-2704"><span class="linenos">2704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-2705"><a href="#Select-2705"><span class="linenos">2705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2706"><a href="#Select-2706"><span class="linenos">2706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2707"><a href="#Select-2707"><span class="linenos">2707</span></a>
+</span><span id="Select-2708"><a href="#Select-2708"><span class="linenos">2708</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2709"><a href="#Select-2709"><span class="linenos">2709</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2710"><a href="#Select-2710"><span class="linenos">2710</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2711"><a href="#Select-2711"><span class="linenos">2711</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2712"><a href="#Select-2712"><span class="linenos">2712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2713"><a href="#Select-2713"><span class="linenos">2713</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2714"><a href="#Select-2714"><span class="linenos">2714</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-2715"><a href="#Select-2715"><span class="linenos">2715</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2716"><a href="#Select-2716"><span class="linenos">2716</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2717"><a href="#Select-2717"><span class="linenos">2717</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2718"><a href="#Select-2718"><span class="linenos">2718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2719"><a href="#Select-2719"><span class="linenos">2719</span></a> <span class="p">)</span>
+</span><span id="Select-2720"><a href="#Select-2720"><span class="linenos">2720</span></a>
+</span><span id="Select-2721"><a href="#Select-2721"><span class="linenos">2721</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="Select-2722"><a href="#Select-2722"><span class="linenos">2722</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2723"><a href="#Select-2723"><span class="linenos">2723</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-2724"><a href="#Select-2724"><span class="linenos">2724</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-2725"><a href="#Select-2725"><span class="linenos">2725</span></a> <span class="n">dialect</span><span 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-2726"><a href="#Select-2726"><span class="linenos">2726</span></a> <span class="n">copy</span><span 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-2727"><a href="#Select-2727"><span class="linenos">2727</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2728"><a href="#Select-2728"><span class="linenos">2728</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2729"><a href="#Select-2729"><span class="linenos">2729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2730"><a href="#Select-2730"><span class="linenos">2730</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select-2731"><a href="#Select-2731"><span class="linenos">2731</span></a>
+</span><span id="Select-2732"><a href="#Select-2732"><span class="linenos">2732</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2733"><a href="#Select-2733"><span class="linenos">2733</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-2734"><a href="#Select-2734"><span class="linenos">2734</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
+</span><span id="Select-2735"><a href="#Select-2735"><span class="linenos">2735</span></a>
+</span><span id="Select-2736"><a href="#Select-2736"><span class="linenos">2736</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2737"><a href="#Select-2737"><span class="linenos">2737</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2738"><a href="#Select-2738"><span class="linenos">2738</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2739"><a href="#Select-2739"><span class="linenos">2739</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2740"><a href="#Select-2740"><span class="linenos">2740</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-2741"><a href="#Select-2741"><span class="linenos">2741</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-2742"><a href="#Select-2742"><span class="linenos">2742</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2743"><a href="#Select-2743"><span class="linenos">2743</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2744"><a href="#Select-2744"><span class="linenos">2744</span></a>
-</span><span id="Select-2745"><a href="#Select-2745"><span class="linenos">2745</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2746"><a href="#Select-2746"><span class="linenos">2746</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="Select-2747"><a href="#Select-2747"><span class="linenos">2747</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="Select-2748"><a href="#Select-2748"><span class="linenos">2748</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2749"><a href="#Select-2749"><span class="linenos">2749</span></a>
-</span><span id="Select-2750"><a href="#Select-2750"><span class="linenos">2750</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2751"><a href="#Select-2751"><span class="linenos">2751</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2752"><a href="#Select-2752"><span class="linenos">2752</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2753"><a href="#Select-2753"><span class="linenos">2753</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-2754"><a href="#Select-2754"><span class="linenos">2754</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="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-2755"><a href="#Select-2755"><span class="linenos">2755</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-2756"><a href="#Select-2756"><span class="linenos">2756</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Select-2757"><a href="#Select-2757"><span class="linenos">2757</span></a>
-</span><span id="Select-2758"><a href="#Select-2758"><span class="linenos">2758</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="Select-2759"><a href="#Select-2759"><span class="linenos">2759</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2760"><a href="#Select-2760"><span class="linenos">2760</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select-2761"><a href="#Select-2761"><span class="linenos">2761</span></a>
-</span><span id="Select-2762"><a href="#Select-2762"><span class="linenos">2762</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2763"><a href="#Select-2763"><span class="linenos">2763</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-2764"><a href="#Select-2764"><span class="linenos">2764</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select-2765"><a href="#Select-2765"><span class="linenos">2765</span></a>
-</span><span id="Select-2766"><a href="#Select-2766"><span class="linenos">2766</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2767"><a href="#Select-2767"><span class="linenos">2767</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Select-2768"><a href="#Select-2768"><span class="linenos">2768</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2769"><a href="#Select-2769"><span class="linenos">2769</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
-</span><span id="Select-2770"><a href="#Select-2770"><span class="linenos">2770</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
-</span><span id="Select-2771"><a href="#Select-2771"><span class="linenos">2771</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2772"><a href="#Select-2772"><span class="linenos">2772</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
-</span><span id="Select-2773"><a href="#Select-2773"><span class="linenos">2773</span></a>
-</span><span id="Select-2774"><a href="#Select-2774"><span class="linenos">2774</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2775"><a href="#Select-2775"><span class="linenos">2775</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
-</span><span id="Select-2776"><a href="#Select-2776"><span class="linenos">2776</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2777"><a href="#Select-2777"><span class="linenos">2777</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-2778"><a href="#Select-2778"><span class="linenos">2778</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-2779"><a href="#Select-2779"><span class="linenos">2779</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="Select-2780"><a href="#Select-2780"><span class="linenos">2780</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Select-2781"><a href="#Select-2781"><span class="linenos">2781</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2782"><a href="#Select-2782"><span class="linenos">2782</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2783"><a href="#Select-2783"><span class="linenos">2783</span></a> <span class="p">)</span>
-</span><span id="Select-2784"><a href="#Select-2784"><span class="linenos">2784</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select-2785"><a href="#Select-2785"><span class="linenos">2785</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select-2786"><a href="#Select-2786"><span class="linenos">2786</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-2787"><a href="#Select-2787"><span class="linenos">2787</span></a>
-</span><span id="Select-2788"><a href="#Select-2788"><span class="linenos">2788</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select-2789"><a href="#Select-2789"><span class="linenos">2789</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-2790"><a href="#Select-2790"><span class="linenos">2790</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-2791"><a href="#Select-2791"><span class="linenos">2791</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Select-2792"><a href="#Select-2792"><span class="linenos">2792</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-2793"><a href="#Select-2793"><span class="linenos">2793</span></a> <span class="p">)</span>
-</span><span id="Select-2794"><a href="#Select-2794"><span class="linenos">2794</span></a>
-</span><span id="Select-2795"><a href="#Select-2795"><span class="linenos">2795</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-2796"><a href="#Select-2796"><span class="linenos">2796</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2797"><a href="#Select-2797"><span class="linenos">2797</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select-2798"><a href="#Select-2798"><span class="linenos">2798</span></a>
-</span><span id="Select-2799"><a href="#Select-2799"><span class="linenos">2799</span></a><span class="sd"> Examples:</span>
-</span><span id="Select-2800"><a href="#Select-2800"><span class="linenos">2800</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-2801"><a href="#Select-2801"><span class="linenos">2801</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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="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-2804"><a href="#Select-2804"><span class="linenos">2804</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select-2805"><a href="#Select-2805"><span class="linenos">2805</span></a>
-</span><span id="Select-2806"><a href="#Select-2806"><span class="linenos">2806</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2807"><a href="#Select-2807"><span class="linenos">2807</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-2808"><a href="#Select-2808"><span class="linenos">2808</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2809"><a href="#Select-2809"><span class="linenos">2809</span></a>
-</span><span id="Select-2810"><a href="#Select-2810"><span class="linenos">2810</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2811"><a href="#Select-2811"><span class="linenos">2811</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select-2812"><a href="#Select-2812"><span class="linenos">2812</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2745"><a href="#Select-2745"><span class="linenos">2745</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2746"><a href="#Select-2746"><span class="linenos">2746</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2747"><a href="#Select-2747"><span class="linenos">2747</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2748"><a href="#Select-2748"><span class="linenos">2748</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2749"><a href="#Select-2749"><span class="linenos">2749</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2750"><a href="#Select-2750"><span class="linenos">2750</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2751"><a href="#Select-2751"><span class="linenos">2751</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-2752"><a href="#Select-2752"><span class="linenos">2752</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2753"><a href="#Select-2753"><span class="linenos">2753</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="Select-2754"><a href="#Select-2754"><span class="linenos">2754</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-2755"><a href="#Select-2755"><span class="linenos">2755</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2756"><a href="#Select-2756"><span class="linenos">2756</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2757"><a href="#Select-2757"><span class="linenos">2757</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2758"><a href="#Select-2758"><span class="linenos">2758</span></a> <span class="p">)</span>
+</span><span id="Select-2759"><a href="#Select-2759"><span class="linenos">2759</span></a>
+</span><span id="Select-2760"><a href="#Select-2760"><span class="linenos">2760</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select-2761"><a href="#Select-2761"><span class="linenos">2761</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2762"><a href="#Select-2762"><span class="linenos">2762</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select-2763"><a href="#Select-2763"><span class="linenos">2763</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-2764"><a href="#Select-2764"><span class="linenos">2764</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">List</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-2765"><a href="#Select-2765"><span class="linenos">2765</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-2766"><a href="#Select-2766"><span class="linenos">2766</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-2767"><a href="#Select-2767"><span class="linenos">2767</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-2768"><a href="#Select-2768"><span class="linenos">2768</span></a> <span class="n">dialect</span><span 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-2769"><a href="#Select-2769"><span class="linenos">2769</span></a> <span class="n">copy</span><span 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-2770"><a href="#Select-2770"><span class="linenos">2770</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2771"><a href="#Select-2771"><span class="linenos">2771</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2772"><a href="#Select-2772"><span class="linenos">2772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2773"><a href="#Select-2773"><span class="linenos">2773</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select-2774"><a href="#Select-2774"><span class="linenos">2774</span></a>
+</span><span id="Select-2775"><a href="#Select-2775"><span class="linenos">2775</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2776"><a href="#Select-2776"><span class="linenos">2776</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-2777"><a href="#Select-2777"><span class="linenos">2777</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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="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-2780"><a href="#Select-2780"><span class="linenos">2780</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="Select-2781"><a href="#Select-2781"><span class="linenos">2781</span></a>
+</span><span id="Select-2782"><a href="#Select-2782"><span class="linenos">2782</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select-2783"><a href="#Select-2783"><span class="linenos">2783</span></a>
+</span><span id="Select-2784"><a href="#Select-2784"><span class="linenos">2784</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-2785"><a href="#Select-2785"><span class="linenos">2785</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select-2786"><a href="#Select-2786"><span class="linenos">2786</span></a>
+</span><span id="Select-2787"><a href="#Select-2787"><span class="linenos">2787</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2788"><a href="#Select-2788"><span class="linenos">2788</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-2789"><a href="#Select-2789"><span class="linenos">2789</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2790"><a href="#Select-2790"><span class="linenos">2790</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select-2791"><a href="#Select-2791"><span class="linenos">2791</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2792"><a href="#Select-2792"><span class="linenos">2792</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select-2793"><a href="#Select-2793"><span class="linenos">2793</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2794"><a href="#Select-2794"><span class="linenos">2794</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2795"><a href="#Select-2795"><span class="linenos">2795</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-2796"><a href="#Select-2796"><span class="linenos">2796</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="Select-2797"><a href="#Select-2797"><span class="linenos">2797</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="Select-2798"><a href="#Select-2798"><span class="linenos">2798</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-2799"><a href="#Select-2799"><span class="linenos">2799</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2800"><a href="#Select-2800"><span class="linenos">2800</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2801"><a href="#Select-2801"><span class="linenos">2801</span></a>
+</span><span id="Select-2802"><a href="#Select-2802"><span class="linenos">2802</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2803"><a href="#Select-2803"><span class="linenos">2803</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2804"><a href="#Select-2804"><span class="linenos">2804</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2805"><a href="#Select-2805"><span class="linenos">2805</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
+</span><span id="Select-2806"><a href="#Select-2806"><span class="linenos">2806</span></a>
+</span><span id="Select-2807"><a href="#Select-2807"><span class="linenos">2807</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select-2808"><a href="#Select-2808"><span class="linenos">2808</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 class="c1"># type: ignore</span>
+</span><span id="Select-2809"><a href="#Select-2809"><span class="linenos">2809</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select-2810"><a href="#Select-2810"><span class="linenos">2810</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 class="c1"># type: ignore</span>
+</span><span id="Select-2811"><a href="#Select-2811"><span class="linenos">2811</span></a>
+</span><span id="Select-2812"><a href="#Select-2812"><span class="linenos">2812</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-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="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-2815"><a href="#Select-2815"><span class="linenos">2815</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span>
+</span><span id="Select-2814"><a href="#Select-2814"><span class="linenos">2814</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-2815"><a href="#Select-2815"><span class="linenos">2815</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-2816"><a href="#Select-2816"><span class="linenos">2816</span></a>
-</span><span id="Select-2817"><a href="#Select-2817"><span class="linenos">2817</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="Select-2818"><a href="#Select-2818"><span class="linenos">2818</span></a>
-</span><span id="Select-2819"><a href="#Select-2819"><span class="linenos">2819</span></a> <span class="nd">@property</span>
-</span><span id="Select-2820"><a href="#Select-2820"><span class="linenos">2820</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-2821"><a href="#Select-2821"><span class="linenos">2821</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-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="nd">@property</span>
-</span><span id="Select-2824"><a href="#Select-2824"><span class="linenos">2824</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-2825"><a href="#Select-2825"><span class="linenos">2825</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-2826"><a href="#Select-2826"><span class="linenos">2826</span></a>
-</span><span id="Select-2827"><a href="#Select-2827"><span class="linenos">2827</span></a> <span class="nd">@property</span>
-</span><span id="Select-2828"><a href="#Select-2828"><span class="linenos">2828</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-2829"><a href="#Select-2829"><span class="linenos">2829</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-2817"><a href="#Select-2817"><span class="linenos">2817</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select-2818"><a href="#Select-2818"><span class="linenos">2818</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
+</span><span id="Select-2819"><a href="#Select-2819"><span class="linenos">2819</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-2820"><a href="#Select-2820"><span class="linenos">2820</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-2821"><a href="#Select-2821"><span class="linenos">2821</span></a>
+</span><span id="Select-2822"><a href="#Select-2822"><span class="linenos">2822</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Select-2823"><a href="#Select-2823"><span class="linenos">2823</span></a>
+</span><span id="Select-2824"><a href="#Select-2824"><span class="linenos">2824</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
+</span><span id="Select-2825"><a href="#Select-2825"><span class="linenos">2825</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="Select-2826"><a href="#Select-2826"><span class="linenos">2826</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select-2827"><a href="#Select-2827"><span class="linenos">2827</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-2828"><a href="#Select-2828"><span class="linenos">2828</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select-2829"><a href="#Select-2829"><span class="linenos">2829</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-2830"><a href="#Select-2830"><span class="linenos">2830</span></a>
+</span><span id="Select-2831"><a href="#Select-2831"><span class="linenos">2831</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select-2832"><a href="#Select-2832"><span class="linenos">2832</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-2833"><a href="#Select-2833"><span class="linenos">2833</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-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">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select-2836"><a href="#Select-2836"><span class="linenos">2836</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-2837"><a href="#Select-2837"><span class="linenos">2837</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-2838"><a href="#Select-2838"><span class="linenos">2838</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="Select-2839"><a href="#Select-2839"><span class="linenos">2839</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-2840"><a href="#Select-2840"><span class="linenos">2840</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2841"><a href="#Select-2841"><span class="linenos">2841</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2842"><a href="#Select-2842"><span class="linenos">2842</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2843"><a href="#Select-2843"><span class="linenos">2843</span></a> <span class="p">)</span>
+</span><span id="Select-2844"><a href="#Select-2844"><span class="linenos">2844</span></a>
+</span><span id="Select-2845"><a href="#Select-2845"><span class="linenos">2845</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select-2846"><a href="#Select-2846"><span class="linenos">2846</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-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="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2849"><a href="#Select-2849"><span class="linenos">2849</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select-2850"><a href="#Select-2850"><span class="linenos">2850</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2851"><a href="#Select-2851"><span class="linenos">2851</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-2852"><a href="#Select-2852"><span class="linenos">2852</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2853"><a href="#Select-2853"><span class="linenos">2853</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2854"><a href="#Select-2854"><span class="linenos">2854</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2855"><a href="#Select-2855"><span class="linenos">2855</span></a> <span class="p">)</span>
+</span><span id="Select-2856"><a href="#Select-2856"><span class="linenos">2856</span></a>
+</span><span id="Select-2857"><a href="#Select-2857"><span class="linenos">2857</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Select-2858"><a href="#Select-2858"><span class="linenos">2858</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2859"><a href="#Select-2859"><span class="linenos">2859</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-2860"><a href="#Select-2860"><span class="linenos">2860</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-2861"><a href="#Select-2861"><span class="linenos">2861</span></a> <span class="n">dialect</span><span 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-2862"><a href="#Select-2862"><span class="linenos">2862</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-2863"><a href="#Select-2863"><span class="linenos">2863</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2864"><a href="#Select-2864"><span class="linenos">2864</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2865"><a href="#Select-2865"><span class="linenos">2865</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2866"><a href="#Select-2866"><span class="linenos">2866</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select-2867"><a href="#Select-2867"><span class="linenos">2867</span></a>
+</span><span id="Select-2868"><a href="#Select-2868"><span class="linenos">2868</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2869"><a href="#Select-2869"><span class="linenos">2869</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-2870"><a href="#Select-2870"><span class="linenos">2870</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-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"> Args:</span>
+</span><span id="Select-2873"><a href="#Select-2873"><span class="linenos">2873</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2874"><a href="#Select-2874"><span class="linenos">2874</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2875"><a href="#Select-2875"><span class="linenos">2875</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-2876"><a href="#Select-2876"><span class="linenos">2876</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-2877"><a href="#Select-2877"><span class="linenos">2877</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-2878"><a href="#Select-2878"><span class="linenos">2878</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-2879"><a href="#Select-2879"><span class="linenos">2879</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2880"><a href="#Select-2880"><span class="linenos">2880</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2881"><a href="#Select-2881"><span class="linenos">2881</span></a>
+</span><span id="Select-2882"><a href="#Select-2882"><span class="linenos">2882</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2883"><a href="#Select-2883"><span class="linenos">2883</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2884"><a href="#Select-2884"><span class="linenos">2884</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2885"><a href="#Select-2885"><span class="linenos">2885</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-2886"><a href="#Select-2886"><span class="linenos">2886</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2887"><a href="#Select-2887"><span class="linenos">2887</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2888"><a href="#Select-2888"><span class="linenos">2888</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-2889"><a href="#Select-2889"><span class="linenos">2889</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2890"><a href="#Select-2890"><span class="linenos">2890</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</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="o">=</span><span class="n">dialect</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="o">=</span><span class="n">copy</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><span id="Select-2895"><a href="#Select-2895"><span class="linenos">2895</span></a>
+</span><span id="Select-2896"><a href="#Select-2896"><span class="linenos">2896</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="Select-2897"><a href="#Select-2897"><span class="linenos">2897</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2898"><a href="#Select-2898"><span class="linenos">2898</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-2899"><a href="#Select-2899"><span class="linenos">2899</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-2900"><a href="#Select-2900"><span class="linenos">2900</span></a> <span class="n">dialect</span><span 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-2901"><a href="#Select-2901"><span class="linenos">2901</span></a> <span class="n">copy</span><span 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-2902"><a href="#Select-2902"><span class="linenos">2902</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2903"><a href="#Select-2903"><span class="linenos">2903</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2904"><a href="#Select-2904"><span class="linenos">2904</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2905"><a href="#Select-2905"><span class="linenos">2905</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select-2906"><a href="#Select-2906"><span class="linenos">2906</span></a>
+</span><span id="Select-2907"><a href="#Select-2907"><span class="linenos">2907</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2908"><a href="#Select-2908"><span class="linenos">2908</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-2909"><a href="#Select-2909"><span class="linenos">2909</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-2910"><a href="#Select-2910"><span class="linenos">2910</span></a>
+</span><span id="Select-2911"><a href="#Select-2911"><span class="linenos">2911</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2912"><a href="#Select-2912"><span class="linenos">2912</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2913"><a href="#Select-2913"><span class="linenos">2913</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2914"><a href="#Select-2914"><span class="linenos">2914</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-2915"><a href="#Select-2915"><span class="linenos">2915</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-2916"><a href="#Select-2916"><span class="linenos">2916</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-2917"><a href="#Select-2917"><span class="linenos">2917</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-2918"><a href="#Select-2918"><span class="linenos">2918</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2919"><a href="#Select-2919"><span class="linenos">2919</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2920"><a href="#Select-2920"><span class="linenos">2920</span></a>
+</span><span id="Select-2921"><a href="#Select-2921"><span class="linenos">2921</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2922"><a href="#Select-2922"><span class="linenos">2922</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2923"><a href="#Select-2923"><span class="linenos">2923</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2924"><a href="#Select-2924"><span class="linenos">2924</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-2925"><a href="#Select-2925"><span class="linenos">2925</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2926"><a href="#Select-2926"><span class="linenos">2926</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2927"><a href="#Select-2927"><span class="linenos">2927</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-2928"><a href="#Select-2928"><span class="linenos">2928</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2929"><a href="#Select-2929"><span class="linenos">2929</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="Select-2930"><a href="#Select-2930"><span class="linenos">2930</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2931"><a href="#Select-2931"><span class="linenos">2931</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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">opts</span><span class="p">,</span>
+</span><span id="Select-2933"><a href="#Select-2933"><span class="linenos">2933</span></a> <span class="p">)</span>
+</span><span id="Select-2934"><a href="#Select-2934"><span class="linenos">2934</span></a>
+</span><span id="Select-2935"><a href="#Select-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="Select-2936"><a href="#Select-2936"><span class="linenos">2936</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2937"><a href="#Select-2937"><span class="linenos">2937</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-2938"><a href="#Select-2938"><span class="linenos">2938</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-2939"><a href="#Select-2939"><span class="linenos">2939</span></a> <span class="n">dialect</span><span 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-2940"><a href="#Select-2940"><span class="linenos">2940</span></a> <span class="n">copy</span><span 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-2941"><a href="#Select-2941"><span class="linenos">2941</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2942"><a href="#Select-2942"><span class="linenos">2942</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2943"><a href="#Select-2943"><span class="linenos">2943</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2944"><a href="#Select-2944"><span class="linenos">2944</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2945"><a href="#Select-2945"><span class="linenos">2945</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2946"><a href="#Select-2946"><span class="linenos">2946</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-2947"><a href="#Select-2947"><span class="linenos">2947</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2948"><a href="#Select-2948"><span class="linenos">2948</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="Select-2949"><a href="#Select-2949"><span class="linenos">2949</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2950"><a href="#Select-2950"><span class="linenos">2950</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2951"><a href="#Select-2951"><span class="linenos">2951</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2952"><a href="#Select-2952"><span class="linenos">2952</span></a> <span class="p">)</span>
+</span><span id="Select-2953"><a href="#Select-2953"><span class="linenos">2953</span></a>
+</span><span id="Select-2954"><a href="#Select-2954"><span class="linenos">2954</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="Select-2955"><a href="#Select-2955"><span class="linenos">2955</span></a> <span class="bp">self</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 class="n">t</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-2957"><a href="#Select-2957"><span class="linenos">2957</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-2958"><a href="#Select-2958"><span class="linenos">2958</span></a> <span class="n">dialect</span><span 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-2959"><a href="#Select-2959"><span class="linenos">2959</span></a> <span class="n">copy</span><span 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-2960"><a href="#Select-2960"><span class="linenos">2960</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2961"><a href="#Select-2961"><span class="linenos">2961</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2962"><a href="#Select-2962"><span class="linenos">2962</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-2963"><a href="#Select-2963"><span class="linenos">2963</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2964"><a href="#Select-2964"><span class="linenos">2964</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2965"><a href="#Select-2965"><span class="linenos">2965</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-2966"><a href="#Select-2966"><span class="linenos">2966</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2967"><a href="#Select-2967"><span class="linenos">2967</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="Select-2968"><a href="#Select-2968"><span class="linenos">2968</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2969"><a href="#Select-2969"><span class="linenos">2969</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2970"><a href="#Select-2970"><span class="linenos">2970</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2971"><a href="#Select-2971"><span class="linenos">2971</span></a> <span class="p">)</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="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="Select-2974"><a href="#Select-2974"><span class="linenos">2974</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-2975"><a href="#Select-2975"><span class="linenos">2975</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2976"><a href="#Select-2976"><span class="linenos">2976</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2977"><a href="#Select-2977"><span class="linenos">2977</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-2978"><a href="#Select-2978"><span class="linenos">2978</span></a>
+</span><span id="Select-2979"><a href="#Select-2979"><span class="linenos">2979</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2980"><a href="#Select-2980"><span class="linenos">2980</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="Select-2981"><a href="#Select-2981"><span class="linenos">2981</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</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"> Args:</span>
+</span><span id="Select-2984"><a href="#Select-2984"><span class="linenos">2984</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="Select-2985"><a href="#Select-2985"><span class="linenos">2985</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="Select-2986"><a href="#Select-2986"><span class="linenos">2986</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2987"><a href="#Select-2987"><span class="linenos">2987</span></a>
+</span><span id="Select-2988"><a href="#Select-2988"><span class="linenos">2988</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2989"><a href="#Select-2989"><span class="linenos">2989</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2990"><a href="#Select-2990"><span class="linenos">2990</span></a><span class="sd"> &quot;&quot;&quot;</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="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-2992"><a href="#Select-2992"><span class="linenos">2992</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-2993"><a href="#Select-2993"><span class="linenos">2993</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-2994"><a href="#Select-2994"><span class="linenos">2994</span></a> <span class="k">return</span> <span class="n">instance</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="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="Select-2997"><a href="#Select-2997"><span class="linenos">2997</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2998"><a href="#Select-2998"><span class="linenos">2998</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select-2999"><a href="#Select-2999"><span class="linenos">2999</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-3000"><a href="#Select-3000"><span class="linenos">3000</span></a> <span class="n">dialect</span><span 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-3001"><a href="#Select-3001"><span class="linenos">3001</span></a> <span class="n">copy</span><span 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-3002"><a href="#Select-3002"><span class="linenos">3002</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</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">Create</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"> Convert this expression to a CREATE TABLE AS statement.</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().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="Select-3009"><a href="#Select-3009"><span class="linenos">3009</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#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="sd"> Args:</span>
+</span><span id="Select-3012"><a href="#Select-3012"><span class="linenos">3012</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="Select-3013"><a href="#Select-3013"><span class="linenos">3013</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3014"><a href="#Select-3014"><span class="linenos">3014</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="Select-3015"><a href="#Select-3015"><span class="linenos">3015</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="Select-3016"><a href="#Select-3016"><span class="linenos">3016</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3017"><a href="#Select-3017"><span class="linenos">3017</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="Select-3018"><a href="#Select-3018"><span class="linenos">3018</span></a>
+</span><span id="Select-3019"><a href="#Select-3019"><span class="linenos">3019</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3020"><a href="#Select-3020"><span class="linenos">3020</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="Select-3021"><a href="#Select-3021"><span class="linenos">3021</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3022"><a href="#Select-3022"><span class="linenos">3022</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-3023"><a href="#Select-3023"><span class="linenos">3023</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-3024"><a href="#Select-3024"><span class="linenos">3024</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="Select-3025"><a href="#Select-3025"><span class="linenos">3025</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Select-3026"><a href="#Select-3026"><span class="linenos">3026</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3027"><a href="#Select-3027"><span class="linenos">3027</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3028"><a href="#Select-3028"><span class="linenos">3028</span></a> <span class="p">)</span>
+</span><span id="Select-3029"><a href="#Select-3029"><span class="linenos">3029</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select-3030"><a href="#Select-3030"><span class="linenos">3030</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select-3031"><a href="#Select-3031"><span class="linenos">3031</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-3032"><a href="#Select-3032"><span class="linenos">3032</span></a>
+</span><span id="Select-3033"><a href="#Select-3033"><span class="linenos">3033</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select-3034"><a href="#Select-3034"><span class="linenos">3034</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-3035"><a href="#Select-3035"><span class="linenos">3035</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-3036"><a href="#Select-3036"><span class="linenos">3036</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Select-3037"><a href="#Select-3037"><span class="linenos">3037</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-3038"><a href="#Select-3038"><span class="linenos">3038</span></a> <span class="p">)</span>
+</span><span id="Select-3039"><a href="#Select-3039"><span class="linenos">3039</span></a>
+</span><span id="Select-3040"><a href="#Select-3040"><span class="linenos">3040</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-3041"><a href="#Select-3041"><span class="linenos">3041</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3042"><a href="#Select-3042"><span class="linenos">3042</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select-3043"><a href="#Select-3043"><span class="linenos">3043</span></a>
+</span><span id="Select-3044"><a href="#Select-3044"><span class="linenos">3044</span></a><span class="sd"> Examples:</span>
+</span><span id="Select-3045"><a href="#Select-3045"><span class="linenos">3045</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-3046"><a href="#Select-3046"><span class="linenos">3046</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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="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-3049"><a href="#Select-3049"><span class="linenos">3049</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select-3050"><a href="#Select-3050"><span class="linenos">3050</span></a>
+</span><span id="Select-3051"><a href="#Select-3051"><span class="linenos">3051</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3052"><a href="#Select-3052"><span class="linenos">3052</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-3053"><a href="#Select-3053"><span class="linenos">3053</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3054"><a href="#Select-3054"><span class="linenos">3054</span></a>
+</span><span id="Select-3055"><a href="#Select-3055"><span class="linenos">3055</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3056"><a href="#Select-3056"><span class="linenos">3056</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select-3057"><a href="#Select-3057"><span class="linenos">3057</span></a><span class="sd"> &quot;&quot;&quot;</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="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-3060"><a href="#Select-3060"><span class="linenos">3060</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-3061"><a href="#Select-3061"><span class="linenos">3061</span></a>
+</span><span id="Select-3062"><a href="#Select-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="Select-3063"><a href="#Select-3063"><span class="linenos">3063</span></a>
+</span><span id="Select-3064"><a href="#Select-3064"><span class="linenos">3064</span></a> <span class="nd">@property</span>
+</span><span id="Select-3065"><a href="#Select-3065"><span class="linenos">3065</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-3066"><a href="#Select-3066"><span class="linenos">3066</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-3067"><a href="#Select-3067"><span class="linenos">3067</span></a>
+</span><span id="Select-3068"><a href="#Select-3068"><span class="linenos">3068</span></a> <span class="nd">@property</span>
+</span><span id="Select-3069"><a href="#Select-3069"><span class="linenos">3069</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-3070"><a href="#Select-3070"><span class="linenos">3070</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-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="nd">@property</span>
+</span><span id="Select-3073"><a href="#Select-3073"><span class="linenos">3073</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-3074"><a href="#Select-3074"><span class="linenos">3074</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -23340,44 +24615,43 @@ Otherwise, this resets the expressions.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">from_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">from_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.from_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.from_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2255"><a href="#Select.from_-2255"><span class="linenos">2255</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.from_-2256"><a href="#Select.from_-2256"><span class="linenos">2256</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.from_-2257"><a href="#Select.from_-2257"><span class="linenos">2257</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select.from_-2258"><a href="#Select.from_-2258"><span class="linenos">2258</span></a>
-</span><span id="Select.from_-2259"><a href="#Select.from_-2259"><span class="linenos">2259</span></a><span class="sd"> Example:</span>
-</span><span id="Select.from_-2260"><a href="#Select.from_-2260"><span class="linenos">2260</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select.from_-2261"><a href="#Select.from_-2261"><span class="linenos">2261</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select.from_-2262"><a href="#Select.from_-2262"><span class="linenos">2262</span></a>
-</span><span id="Select.from_-2263"><a href="#Select.from_-2263"><span class="linenos">2263</span></a><span class="sd"> Args:</span>
-</span><span id="Select.from_-2264"><a href="#Select.from_-2264"><span class="linenos">2264</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.from_-2265"><a href="#Select.from_-2265"><span class="linenos">2265</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select.from_-2266"><a href="#Select.from_-2266"><span class="linenos">2266</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select.from_-2267"><a href="#Select.from_-2267"><span class="linenos">2267</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.from_-2268"><a href="#Select.from_-2268"><span class="linenos">2268</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
-</span><span id="Select.from_-2269"><a href="#Select.from_-2269"><span class="linenos">2269</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.from_-2270"><a href="#Select.from_-2270"><span class="linenos">2270</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.from_-2271"><a href="#Select.from_-2271"><span class="linenos">2271</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.from_-2272"><a href="#Select.from_-2272"><span class="linenos">2272</span></a>
-</span><span id="Select.from_-2273"><a href="#Select.from_-2273"><span class="linenos">2273</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.from_-2274"><a href="#Select.from_-2274"><span class="linenos">2274</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.from_-2275"><a href="#Select.from_-2275"><span class="linenos">2275</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.from_-2276"><a href="#Select.from_-2276"><span class="linenos">2276</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select.from_-2277"><a href="#Select.from_-2277"><span class="linenos">2277</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.from_-2278"><a href="#Select.from_-2278"><span class="linenos">2278</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_-2279"><a href="#Select.from_-2279"><span class="linenos">2279</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_-2280"><a href="#Select.from_-2280"><span class="linenos">2280</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.from_-2281"><a href="#Select.from_-2281"><span class="linenos">2281</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_-2282"><a href="#Select.from_-2282"><span class="linenos">2282</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_-2283"><a href="#Select.from_-2283"><span class="linenos">2283</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_-2284"><a href="#Select.from_-2284"><span class="linenos">2284</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_-2285"><a href="#Select.from_-2285"><span class="linenos">2285</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.from_-2286"><a href="#Select.from_-2286"><span class="linenos">2286</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2422"><a href="#Select.from_-2422"><span class="linenos">2422</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="Select.from_-2423"><a href="#Select.from_-2423"><span class="linenos">2423</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_-2424"><a href="#Select.from_-2424"><span class="linenos">2424</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_-2425"><a href="#Select.from_-2425"><span class="linenos">2425</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.from_-2426"><a href="#Select.from_-2426"><span class="linenos">2426</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select.from_-2427"><a href="#Select.from_-2427"><span class="linenos">2427</span></a>
+</span><span id="Select.from_-2428"><a href="#Select.from_-2428"><span class="linenos">2428</span></a><span class="sd"> Example:</span>
+</span><span id="Select.from_-2429"><a href="#Select.from_-2429"><span class="linenos">2429</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select.from_-2430"><a href="#Select.from_-2430"><span class="linenos">2430</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select.from_-2431"><a href="#Select.from_-2431"><span class="linenos">2431</span></a>
+</span><span id="Select.from_-2432"><a href="#Select.from_-2432"><span class="linenos">2432</span></a><span class="sd"> Args:</span>
+</span><span id="Select.from_-2433"><a href="#Select.from_-2433"><span class="linenos">2433</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="Select.from_-2434"><a href="#Select.from_-2434"><span class="linenos">2434</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select.from_-2435"><a href="#Select.from_-2435"><span class="linenos">2435</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select.from_-2436"><a href="#Select.from_-2436"><span class="linenos">2436</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.from_-2437"><a href="#Select.from_-2437"><span class="linenos">2437</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.from_-2438"><a href="#Select.from_-2438"><span class="linenos">2438</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.from_-2439"><a href="#Select.from_-2439"><span class="linenos">2439</span></a>
+</span><span id="Select.from_-2440"><a href="#Select.from_-2440"><span class="linenos">2440</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.from_-2441"><a href="#Select.from_-2441"><span class="linenos">2441</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.from_-2442"><a href="#Select.from_-2442"><span class="linenos">2442</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.from_-2443"><a href="#Select.from_-2443"><span class="linenos">2443</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.from_-2444"><a href="#Select.from_-2444"><span class="linenos">2444</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_-2445"><a href="#Select.from_-2445"><span class="linenos">2445</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_-2446"><a href="#Select.from_-2446"><span class="linenos">2446</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_-2447"><a href="#Select.from_-2447"><span class="linenos">2447</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_-2448"><a href="#Select.from_-2448"><span class="linenos">2448</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_-2449"><a href="#Select.from_-2449"><span class="linenos">2449</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_-2450"><a href="#Select.from_-2450"><span class="linenos">2450</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_-2451"><a href="#Select.from_-2451"><span class="linenos">2451</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.from_-2452"><a href="#Select.from_-2452"><span class="linenos">2452</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23396,20 +24670,18 @@ Otherwise, this resets the expressions.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>expression :</strong> the SQL code strings to parse.
If a <code><a href="#From">From</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#From">From</a></code>.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
-Otherwise, this flattens all the <code><a href="#From">From</a></code> expression into a single expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23420,47 +24692,55 @@ Otherwise, this flattens all the <code><a href="#From">From</a></code> expressio
<div class="attr function">
<span class="def">def</span>
- <span class="name">group_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">group_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.group_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.group_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2288"><a href="#Select.group_by-2288"><span class="linenos">2288</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.group_by-2289"><a href="#Select.group_by-2289"><span class="linenos">2289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.group_by-2290"><a href="#Select.group_by-2290"><span class="linenos">2290</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select.group_by-2291"><a href="#Select.group_by-2291"><span class="linenos">2291</span></a>
-</span><span id="Select.group_by-2292"><a href="#Select.group_by-2292"><span class="linenos">2292</span></a><span class="sd"> Example:</span>
-</span><span id="Select.group_by-2293"><a href="#Select.group_by-2293"><span class="linenos">2293</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-2294"><a href="#Select.group_by-2294"><span class="linenos">2294</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select.group_by-2295"><a href="#Select.group_by-2295"><span class="linenos">2295</span></a>
-</span><span id="Select.group_by-2296"><a href="#Select.group_by-2296"><span class="linenos">2296</span></a><span class="sd"> Args:</span>
-</span><span id="Select.group_by-2297"><a href="#Select.group_by-2297"><span class="linenos">2297</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.group_by-2298"><a href="#Select.group_by-2298"><span class="linenos">2298</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.group_by-2299"><a href="#Select.group_by-2299"><span class="linenos">2299</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-2300"><a href="#Select.group_by-2300"><span class="linenos">2300</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-2301"><a href="#Select.group_by-2301"><span class="linenos">2301</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.group_by-2302"><a href="#Select.group_by-2302"><span class="linenos">2302</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select.group_by-2303"><a href="#Select.group_by-2303"><span class="linenos">2303</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.group_by-2304"><a href="#Select.group_by-2304"><span class="linenos">2304</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.group_by-2305"><a href="#Select.group_by-2305"><span class="linenos">2305</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.group_by-2306"><a href="#Select.group_by-2306"><span class="linenos">2306</span></a>
-</span><span id="Select.group_by-2307"><a href="#Select.group_by-2307"><span class="linenos">2307</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.group_by-2308"><a href="#Select.group_by-2308"><span class="linenos">2308</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.group_by-2309"><a href="#Select.group_by-2309"><span class="linenos">2309</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.group_by-2310"><a href="#Select.group_by-2310"><span class="linenos">2310</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-2311"><a href="#Select.group_by-2311"><span class="linenos">2311</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-2312"><a href="#Select.group_by-2312"><span class="linenos">2312</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-2313"><a href="#Select.group_by-2313"><span class="linenos">2313</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.group_by-2314"><a href="#Select.group_by-2314"><span class="linenos">2314</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-2315"><a href="#Select.group_by-2315"><span class="linenos">2315</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-2316"><a href="#Select.group_by-2316"><span class="linenos">2316</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-2317"><a href="#Select.group_by-2317"><span class="linenos">2317</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.group_by-2318"><a href="#Select.group_by-2318"><span class="linenos">2318</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-2319"><a href="#Select.group_by-2319"><span class="linenos">2319</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-2320"><a href="#Select.group_by-2320"><span class="linenos">2320</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-2321"><a href="#Select.group_by-2321"><span class="linenos">2321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.group_by-2322"><a href="#Select.group_by-2322"><span class="linenos">2322</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2454"><a href="#Select.group_by-2454"><span class="linenos">2454</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="Select.group_by-2455"><a href="#Select.group_by-2455"><span class="linenos">2455</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.group_by-2456"><a href="#Select.group_by-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="Select.group_by-2457"><a href="#Select.group_by-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="Select.group_by-2458"><a href="#Select.group_by-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="Select.group_by-2459"><a href="#Select.group_by-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="Select.group_by-2460"><a href="#Select.group_by-2460"><span class="linenos">2460</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-2461"><a href="#Select.group_by-2461"><span class="linenos">2461</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-2462"><a href="#Select.group_by-2462"><span class="linenos">2462</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.group_by-2463"><a href="#Select.group_by-2463"><span class="linenos">2463</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select.group_by-2464"><a href="#Select.group_by-2464"><span class="linenos">2464</span></a>
+</span><span id="Select.group_by-2465"><a href="#Select.group_by-2465"><span class="linenos">2465</span></a><span class="sd"> Example:</span>
+</span><span id="Select.group_by-2466"><a href="#Select.group_by-2466"><span class="linenos">2466</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-2467"><a href="#Select.group_by-2467"><span class="linenos">2467</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select.group_by-2468"><a href="#Select.group_by-2468"><span class="linenos">2468</span></a>
+</span><span id="Select.group_by-2469"><a href="#Select.group_by-2469"><span class="linenos">2469</span></a><span class="sd"> Args:</span>
+</span><span id="Select.group_by-2470"><a href="#Select.group_by-2470"><span class="linenos">2470</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.group_by-2471"><a href="#Select.group_by-2471"><span class="linenos">2471</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.group_by-2472"><a href="#Select.group_by-2472"><span class="linenos">2472</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-2473"><a href="#Select.group_by-2473"><span class="linenos">2473</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-2474"><a href="#Select.group_by-2474"><span class="linenos">2474</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.group_by-2475"><a href="#Select.group_by-2475"><span class="linenos">2475</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select.group_by-2476"><a href="#Select.group_by-2476"><span class="linenos">2476</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.group_by-2477"><a href="#Select.group_by-2477"><span class="linenos">2477</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.group_by-2478"><a href="#Select.group_by-2478"><span class="linenos">2478</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.group_by-2479"><a href="#Select.group_by-2479"><span class="linenos">2479</span></a>
+</span><span id="Select.group_by-2480"><a href="#Select.group_by-2480"><span class="linenos">2480</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.group_by-2481"><a href="#Select.group_by-2481"><span class="linenos">2481</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.group_by-2482"><a href="#Select.group_by-2482"><span class="linenos">2482</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.group_by-2483"><a href="#Select.group_by-2483"><span class="linenos">2483</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-2484"><a href="#Select.group_by-2484"><span class="linenos">2484</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-2485"><a href="#Select.group_by-2485"><span class="linenos">2485</span></a>
+</span><span id="Select.group_by-2486"><a href="#Select.group_by-2486"><span class="linenos">2486</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-2487"><a href="#Select.group_by-2487"><span class="linenos">2487</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.group_by-2488"><a href="#Select.group_by-2488"><span class="linenos">2488</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-2489"><a href="#Select.group_by-2489"><span class="linenos">2489</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-2490"><a href="#Select.group_by-2490"><span class="linenos">2490</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-2491"><a href="#Select.group_by-2491"><span class="linenos">2491</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-2492"><a href="#Select.group_by-2492"><span class="linenos">2492</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-2493"><a href="#Select.group_by-2493"><span class="linenos">2493</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-2494"><a href="#Select.group_by-2494"><span class="linenos">2494</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-2495"><a href="#Select.group_by-2495"><span class="linenos">2495</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-2496"><a href="#Select.group_by-2496"><span class="linenos">2496</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23479,21 +24759,21 @@ Otherwise, this flattens all the <code><a href="#From">From</a></code> expressio
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Group">Group</a></code>.
If nothing is passed in then a group by is not applied to the expression</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Group">Group</a></code> expression into a single expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23504,44 +24784,51 @@ Otherwise, this flattens all the <code><a href="#Group">Group</a></code> express
<div class="attr function">
<span class="def">def</span>
- <span class="name">order_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">order_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.order_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.order_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2324"><a href="#Select.order_by-2324"><span class="linenos">2324</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.order_by-2325"><a href="#Select.order_by-2325"><span class="linenos">2325</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.order_by-2326"><a href="#Select.order_by-2326"><span class="linenos">2326</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="Select.order_by-2327"><a href="#Select.order_by-2327"><span class="linenos">2327</span></a>
-</span><span id="Select.order_by-2328"><a href="#Select.order_by-2328"><span class="linenos">2328</span></a><span class="sd"> Example:</span>
-</span><span id="Select.order_by-2329"><a href="#Select.order_by-2329"><span class="linenos">2329</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-2330"><a href="#Select.order_by-2330"><span class="linenos">2330</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
-</span><span id="Select.order_by-2331"><a href="#Select.order_by-2331"><span class="linenos">2331</span></a>
-</span><span id="Select.order_by-2332"><a href="#Select.order_by-2332"><span class="linenos">2332</span></a><span class="sd"> Args:</span>
-</span><span id="Select.order_by-2333"><a href="#Select.order_by-2333"><span class="linenos">2333</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.order_by-2334"><a href="#Select.order_by-2334"><span class="linenos">2334</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.order_by-2335"><a href="#Select.order_by-2335"><span class="linenos">2335</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-2336"><a href="#Select.order_by-2336"><span class="linenos">2336</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.order_by-2337"><a href="#Select.order_by-2337"><span class="linenos">2337</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.order_by-2338"><a href="#Select.order_by-2338"><span class="linenos">2338</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.order_by-2339"><a href="#Select.order_by-2339"><span class="linenos">2339</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.order_by-2340"><a href="#Select.order_by-2340"><span class="linenos">2340</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.order_by-2341"><a href="#Select.order_by-2341"><span class="linenos">2341</span></a>
-</span><span id="Select.order_by-2342"><a href="#Select.order_by-2342"><span class="linenos">2342</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.order_by-2343"><a href="#Select.order_by-2343"><span class="linenos">2343</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.order_by-2344"><a href="#Select.order_by-2344"><span class="linenos">2344</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.order_by-2345"><a href="#Select.order_by-2345"><span class="linenos">2345</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-2346"><a href="#Select.order_by-2346"><span class="linenos">2346</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.order_by-2347"><a href="#Select.order_by-2347"><span class="linenos">2347</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-2348"><a href="#Select.order_by-2348"><span class="linenos">2348</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-2349"><a href="#Select.order_by-2349"><span class="linenos">2349</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-2350"><a href="#Select.order_by-2350"><span class="linenos">2350</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-2351"><a href="#Select.order_by-2351"><span class="linenos">2351</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-2352"><a href="#Select.order_by-2352"><span class="linenos">2352</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-2353"><a href="#Select.order_by-2353"><span class="linenos">2353</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.order_by-2354"><a href="#Select.order_by-2354"><span class="linenos">2354</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.order_by-2355"><a href="#Select.order_by-2355"><span class="linenos">2355</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2498"><a href="#Select.order_by-2498"><span class="linenos">2498</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
+</span><span id="Select.order_by-2499"><a href="#Select.order_by-2499"><span class="linenos">2499</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.order_by-2500"><a href="#Select.order_by-2500"><span class="linenos">2500</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-2501"><a href="#Select.order_by-2501"><span class="linenos">2501</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-2502"><a href="#Select.order_by-2502"><span class="linenos">2502</span></a> <span class="n">dialect</span><span 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-2503"><a href="#Select.order_by-2503"><span class="linenos">2503</span></a> <span class="n">copy</span><span 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-2504"><a href="#Select.order_by-2504"><span class="linenos">2504</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.order_by-2505"><a href="#Select.order_by-2505"><span class="linenos">2505</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-2506"><a href="#Select.order_by-2506"><span class="linenos">2506</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.order_by-2507"><a href="#Select.order_by-2507"><span class="linenos">2507</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="Select.order_by-2508"><a href="#Select.order_by-2508"><span class="linenos">2508</span></a>
+</span><span id="Select.order_by-2509"><a href="#Select.order_by-2509"><span class="linenos">2509</span></a><span class="sd"> Example:</span>
+</span><span id="Select.order_by-2510"><a href="#Select.order_by-2510"><span class="linenos">2510</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-2511"><a href="#Select.order_by-2511"><span class="linenos">2511</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select.order_by-2512"><a href="#Select.order_by-2512"><span class="linenos">2512</span></a>
+</span><span id="Select.order_by-2513"><a href="#Select.order_by-2513"><span class="linenos">2513</span></a><span class="sd"> Args:</span>
+</span><span id="Select.order_by-2514"><a href="#Select.order_by-2514"><span class="linenos">2514</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.order_by-2515"><a href="#Select.order_by-2515"><span class="linenos">2515</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.order_by-2516"><a href="#Select.order_by-2516"><span class="linenos">2516</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-2517"><a href="#Select.order_by-2517"><span class="linenos">2517</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.order_by-2518"><a href="#Select.order_by-2518"><span class="linenos">2518</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.order_by-2519"><a href="#Select.order_by-2519"><span class="linenos">2519</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.order_by-2520"><a href="#Select.order_by-2520"><span class="linenos">2520</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.order_by-2521"><a href="#Select.order_by-2521"><span class="linenos">2521</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.order_by-2522"><a href="#Select.order_by-2522"><span class="linenos">2522</span></a>
+</span><span id="Select.order_by-2523"><a href="#Select.order_by-2523"><span class="linenos">2523</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.order_by-2524"><a href="#Select.order_by-2524"><span class="linenos">2524</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.order_by-2525"><a href="#Select.order_by-2525"><span class="linenos">2525</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.order_by-2526"><a href="#Select.order_by-2526"><span class="linenos">2526</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-2527"><a href="#Select.order_by-2527"><span class="linenos">2527</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.order_by-2528"><a href="#Select.order_by-2528"><span class="linenos">2528</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-2529"><a href="#Select.order_by-2529"><span class="linenos">2529</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-2530"><a href="#Select.order_by-2530"><span class="linenos">2530</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-2531"><a href="#Select.order_by-2531"><span class="linenos">2531</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-2532"><a href="#Select.order_by-2532"><span class="linenos">2532</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-2533"><a href="#Select.order_by-2533"><span class="linenos">2533</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-2534"><a href="#Select.order_by-2534"><span class="linenos">2534</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-2535"><a href="#Select.order_by-2535"><span class="linenos">2535</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.order_by-2536"><a href="#Select.order_by-2536"><span class="linenos">2536</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23560,20 +24847,20 @@ Otherwise, this flattens all the <code><a href="#Group">Group</a></code> express
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Order">Order</a></code>.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Order">Order</a></code> expression into a single expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23584,44 +24871,51 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<div class="attr function">
<span class="def">def</span>
- <span class="name">sort_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">sort_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.sort_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.sort_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2357"><a href="#Select.sort_by-2357"><span class="linenos">2357</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.sort_by-2358"><a href="#Select.sort_by-2358"><span class="linenos">2358</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-2359"><a href="#Select.sort_by-2359"><span class="linenos">2359</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select.sort_by-2360"><a href="#Select.sort_by-2360"><span class="linenos">2360</span></a>
-</span><span id="Select.sort_by-2361"><a href="#Select.sort_by-2361"><span class="linenos">2361</span></a><span class="sd"> Example:</span>
-</span><span id="Select.sort_by-2362"><a href="#Select.sort_by-2362"><span class="linenos">2362</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select.sort_by-2363"><a href="#Select.sort_by-2363"><span class="linenos">2363</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select.sort_by-2364"><a href="#Select.sort_by-2364"><span class="linenos">2364</span></a>
-</span><span id="Select.sort_by-2365"><a href="#Select.sort_by-2365"><span class="linenos">2365</span></a><span class="sd"> Args:</span>
-</span><span id="Select.sort_by-2366"><a href="#Select.sort_by-2366"><span class="linenos">2366</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.sort_by-2367"><a href="#Select.sort_by-2367"><span class="linenos">2367</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.sort_by-2368"><a href="#Select.sort_by-2368"><span class="linenos">2368</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-2369"><a href="#Select.sort_by-2369"><span class="linenos">2369</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.sort_by-2370"><a href="#Select.sort_by-2370"><span class="linenos">2370</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.sort_by-2371"><a href="#Select.sort_by-2371"><span class="linenos">2371</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.sort_by-2372"><a href="#Select.sort_by-2372"><span class="linenos">2372</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.sort_by-2373"><a href="#Select.sort_by-2373"><span class="linenos">2373</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.sort_by-2374"><a href="#Select.sort_by-2374"><span class="linenos">2374</span></a>
-</span><span id="Select.sort_by-2375"><a href="#Select.sort_by-2375"><span class="linenos">2375</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.sort_by-2376"><a href="#Select.sort_by-2376"><span class="linenos">2376</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.sort_by-2377"><a href="#Select.sort_by-2377"><span class="linenos">2377</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-2378"><a href="#Select.sort_by-2378"><span class="linenos">2378</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-2379"><a href="#Select.sort_by-2379"><span class="linenos">2379</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.sort_by-2380"><a href="#Select.sort_by-2380"><span class="linenos">2380</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.sort_by-2381"><a href="#Select.sort_by-2381"><span class="linenos">2381</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-2382"><a href="#Select.sort_by-2382"><span class="linenos">2382</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.sort_by-2383"><a href="#Select.sort_by-2383"><span class="linenos">2383</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-2384"><a href="#Select.sort_by-2384"><span class="linenos">2384</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-2385"><a href="#Select.sort_by-2385"><span class="linenos">2385</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-2386"><a href="#Select.sort_by-2386"><span class="linenos">2386</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.sort_by-2387"><a href="#Select.sort_by-2387"><span class="linenos">2387</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.sort_by-2388"><a href="#Select.sort_by-2388"><span class="linenos">2388</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2538"><a href="#Select.sort_by-2538"><span class="linenos">2538</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="Select.sort_by-2539"><a href="#Select.sort_by-2539"><span class="linenos">2539</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.sort_by-2540"><a href="#Select.sort_by-2540"><span class="linenos">2540</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-2541"><a href="#Select.sort_by-2541"><span class="linenos">2541</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-2542"><a href="#Select.sort_by-2542"><span class="linenos">2542</span></a> <span class="n">dialect</span><span 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-2543"><a href="#Select.sort_by-2543"><span class="linenos">2543</span></a> <span class="n">copy</span><span 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-2544"><a href="#Select.sort_by-2544"><span class="linenos">2544</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-2545"><a href="#Select.sort_by-2545"><span class="linenos">2545</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-2546"><a href="#Select.sort_by-2546"><span class="linenos">2546</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-2547"><a href="#Select.sort_by-2547"><span class="linenos">2547</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select.sort_by-2548"><a href="#Select.sort_by-2548"><span class="linenos">2548</span></a>
+</span><span id="Select.sort_by-2549"><a href="#Select.sort_by-2549"><span class="linenos">2549</span></a><span class="sd"> Example:</span>
+</span><span id="Select.sort_by-2550"><a href="#Select.sort_by-2550"><span class="linenos">2550</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-2551"><a href="#Select.sort_by-2551"><span class="linenos">2551</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select.sort_by-2552"><a href="#Select.sort_by-2552"><span class="linenos">2552</span></a>
+</span><span id="Select.sort_by-2553"><a href="#Select.sort_by-2553"><span class="linenos">2553</span></a><span class="sd"> Args:</span>
+</span><span id="Select.sort_by-2554"><a href="#Select.sort_by-2554"><span class="linenos">2554</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.sort_by-2555"><a href="#Select.sort_by-2555"><span class="linenos">2555</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.sort_by-2556"><a href="#Select.sort_by-2556"><span class="linenos">2556</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-2557"><a href="#Select.sort_by-2557"><span class="linenos">2557</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.sort_by-2558"><a href="#Select.sort_by-2558"><span class="linenos">2558</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.sort_by-2559"><a href="#Select.sort_by-2559"><span class="linenos">2559</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.sort_by-2560"><a href="#Select.sort_by-2560"><span class="linenos">2560</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.sort_by-2561"><a href="#Select.sort_by-2561"><span class="linenos">2561</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.sort_by-2562"><a href="#Select.sort_by-2562"><span class="linenos">2562</span></a>
+</span><span id="Select.sort_by-2563"><a href="#Select.sort_by-2563"><span class="linenos">2563</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.sort_by-2564"><a href="#Select.sort_by-2564"><span class="linenos">2564</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.sort_by-2565"><a href="#Select.sort_by-2565"><span class="linenos">2565</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-2566"><a href="#Select.sort_by-2566"><span class="linenos">2566</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-2567"><a href="#Select.sort_by-2567"><span class="linenos">2567</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.sort_by-2568"><a href="#Select.sort_by-2568"><span class="linenos">2568</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-2569"><a href="#Select.sort_by-2569"><span class="linenos">2569</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-2570"><a href="#Select.sort_by-2570"><span class="linenos">2570</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-2571"><a href="#Select.sort_by-2571"><span class="linenos">2571</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-2572"><a href="#Select.sort_by-2572"><span class="linenos">2572</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-2573"><a href="#Select.sort_by-2573"><span class="linenos">2573</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-2574"><a href="#Select.sort_by-2574"><span class="linenos">2574</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-2575"><a href="#Select.sort_by-2575"><span class="linenos">2575</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-2576"><a href="#Select.sort_by-2576"><span class="linenos">2576</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23631,7 +24925,7 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<blockquote>
<div class="pdoc-code codehilite">
-<pre><span></span><code><span class="gp">&gt;&gt;&gt; </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="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sort_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </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="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sort_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</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="s2">&quot;hive&quot;</span><span class="p">)</span>
<span class="go">&#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
</code></pre>
</div>
@@ -23640,20 +24934,20 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code>SORT</code>.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Order">Order</a></code> expression into a single expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23664,44 +24958,51 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<div class="attr function">
<span class="def">def</span>
- <span class="name">cluster_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">cluster_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.cluster_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.cluster_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2390"><a href="#Select.cluster_by-2390"><span class="linenos">2390</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.cluster_by-2391"><a href="#Select.cluster_by-2391"><span class="linenos">2391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-2392"><a href="#Select.cluster_by-2392"><span class="linenos">2392</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select.cluster_by-2393"><a href="#Select.cluster_by-2393"><span class="linenos">2393</span></a>
-</span><span id="Select.cluster_by-2394"><a href="#Select.cluster_by-2394"><span class="linenos">2394</span></a><span class="sd"> Example:</span>
-</span><span id="Select.cluster_by-2395"><a href="#Select.cluster_by-2395"><span class="linenos">2395</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select.cluster_by-2396"><a href="#Select.cluster_by-2396"><span class="linenos">2396</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select.cluster_by-2397"><a href="#Select.cluster_by-2397"><span class="linenos">2397</span></a>
-</span><span id="Select.cluster_by-2398"><a href="#Select.cluster_by-2398"><span class="linenos">2398</span></a><span class="sd"> Args:</span>
-</span><span id="Select.cluster_by-2399"><a href="#Select.cluster_by-2399"><span class="linenos">2399</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.cluster_by-2400"><a href="#Select.cluster_by-2400"><span class="linenos">2400</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.cluster_by-2401"><a href="#Select.cluster_by-2401"><span class="linenos">2401</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-2402"><a href="#Select.cluster_by-2402"><span class="linenos">2402</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.cluster_by-2403"><a href="#Select.cluster_by-2403"><span class="linenos">2403</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.cluster_by-2404"><a href="#Select.cluster_by-2404"><span class="linenos">2404</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.cluster_by-2405"><a href="#Select.cluster_by-2405"><span class="linenos">2405</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.cluster_by-2406"><a href="#Select.cluster_by-2406"><span class="linenos">2406</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.cluster_by-2407"><a href="#Select.cluster_by-2407"><span class="linenos">2407</span></a>
-</span><span id="Select.cluster_by-2408"><a href="#Select.cluster_by-2408"><span class="linenos">2408</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.cluster_by-2409"><a href="#Select.cluster_by-2409"><span class="linenos">2409</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.cluster_by-2410"><a href="#Select.cluster_by-2410"><span class="linenos">2410</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-2411"><a href="#Select.cluster_by-2411"><span class="linenos">2411</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-2412"><a href="#Select.cluster_by-2412"><span class="linenos">2412</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2413"><a href="#Select.cluster_by-2413"><span class="linenos">2413</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-2414"><a href="#Select.cluster_by-2414"><span class="linenos">2414</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-2415"><a href="#Select.cluster_by-2415"><span class="linenos">2415</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-2416"><a href="#Select.cluster_by-2416"><span class="linenos">2416</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-2417"><a href="#Select.cluster_by-2417"><span class="linenos">2417</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-2418"><a href="#Select.cluster_by-2418"><span class="linenos">2418</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-2419"><a href="#Select.cluster_by-2419"><span class="linenos">2419</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-2420"><a href="#Select.cluster_by-2420"><span class="linenos">2420</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2421"><a href="#Select.cluster_by-2421"><span class="linenos">2421</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2578"><a href="#Select.cluster_by-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="Select.cluster_by-2579"><a href="#Select.cluster_by-2579"><span class="linenos">2579</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2580"><a href="#Select.cluster_by-2580"><span class="linenos">2580</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-2581"><a href="#Select.cluster_by-2581"><span class="linenos">2581</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-2582"><a href="#Select.cluster_by-2582"><span class="linenos">2582</span></a> <span class="n">dialect</span><span 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-2583"><a href="#Select.cluster_by-2583"><span class="linenos">2583</span></a> <span class="n">copy</span><span 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-2584"><a href="#Select.cluster_by-2584"><span class="linenos">2584</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2585"><a href="#Select.cluster_by-2585"><span class="linenos">2585</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-2586"><a href="#Select.cluster_by-2586"><span class="linenos">2586</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-2587"><a href="#Select.cluster_by-2587"><span class="linenos">2587</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select.cluster_by-2588"><a href="#Select.cluster_by-2588"><span class="linenos">2588</span></a>
+</span><span id="Select.cluster_by-2589"><a href="#Select.cluster_by-2589"><span class="linenos">2589</span></a><span class="sd"> Example:</span>
+</span><span id="Select.cluster_by-2590"><a href="#Select.cluster_by-2590"><span class="linenos">2590</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-2591"><a href="#Select.cluster_by-2591"><span class="linenos">2591</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select.cluster_by-2592"><a href="#Select.cluster_by-2592"><span class="linenos">2592</span></a>
+</span><span id="Select.cluster_by-2593"><a href="#Select.cluster_by-2593"><span class="linenos">2593</span></a><span class="sd"> Args:</span>
+</span><span id="Select.cluster_by-2594"><a href="#Select.cluster_by-2594"><span class="linenos">2594</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.cluster_by-2595"><a href="#Select.cluster_by-2595"><span class="linenos">2595</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.cluster_by-2596"><a href="#Select.cluster_by-2596"><span class="linenos">2596</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-2597"><a href="#Select.cluster_by-2597"><span class="linenos">2597</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.cluster_by-2598"><a href="#Select.cluster_by-2598"><span class="linenos">2598</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.cluster_by-2599"><a href="#Select.cluster_by-2599"><span class="linenos">2599</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.cluster_by-2600"><a href="#Select.cluster_by-2600"><span class="linenos">2600</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.cluster_by-2601"><a href="#Select.cluster_by-2601"><span class="linenos">2601</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.cluster_by-2602"><a href="#Select.cluster_by-2602"><span class="linenos">2602</span></a>
+</span><span id="Select.cluster_by-2603"><a href="#Select.cluster_by-2603"><span class="linenos">2603</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.cluster_by-2604"><a href="#Select.cluster_by-2604"><span class="linenos">2604</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.cluster_by-2605"><a href="#Select.cluster_by-2605"><span class="linenos">2605</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-2606"><a href="#Select.cluster_by-2606"><span class="linenos">2606</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-2607"><a href="#Select.cluster_by-2607"><span class="linenos">2607</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2608"><a href="#Select.cluster_by-2608"><span class="linenos">2608</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-2609"><a href="#Select.cluster_by-2609"><span class="linenos">2609</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-2610"><a href="#Select.cluster_by-2610"><span class="linenos">2610</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-2611"><a href="#Select.cluster_by-2611"><span class="linenos">2611</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-2612"><a href="#Select.cluster_by-2612"><span class="linenos">2612</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-2613"><a href="#Select.cluster_by-2613"><span class="linenos">2613</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-2614"><a href="#Select.cluster_by-2614"><span class="linenos">2614</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-2615"><a href="#Select.cluster_by-2615"><span class="linenos">2615</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2616"><a href="#Select.cluster_by-2616"><span class="linenos">2616</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23711,7 +25012,7 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<blockquote>
<div class="pdoc-code codehilite">
-<pre><span></span><code><span class="gp">&gt;&gt;&gt; </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="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">cluster_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </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="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">cluster_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</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="s2">&quot;hive&quot;</span><span class="p">)</span>
<span class="go">&#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</code></pre>
</div>
@@ -23720,20 +25021,20 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Cluster">Cluster</a></code>.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Order">Order</a></code> expression into a single expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23744,42 +25045,44 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<div class="attr function">
<span class="def">def</span>
- <span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2423"><a href="#Select.limit-2423"><span class="linenos">2423</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.limit-2424"><a href="#Select.limit-2424"><span class="linenos">2424</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.limit-2425"><a href="#Select.limit-2425"><span class="linenos">2425</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Select.limit-2426"><a href="#Select.limit-2426"><span class="linenos">2426</span></a>
-</span><span id="Select.limit-2427"><a href="#Select.limit-2427"><span class="linenos">2427</span></a><span class="sd"> Example:</span>
-</span><span id="Select.limit-2428"><a href="#Select.limit-2428"><span class="linenos">2428</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-2429"><a href="#Select.limit-2429"><span class="linenos">2429</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="Select.limit-2430"><a href="#Select.limit-2430"><span class="linenos">2430</span></a>
-</span><span id="Select.limit-2431"><a href="#Select.limit-2431"><span class="linenos">2431</span></a><span class="sd"> Args:</span>
-</span><span id="Select.limit-2432"><a href="#Select.limit-2432"><span class="linenos">2432</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select.limit-2433"><a href="#Select.limit-2433"><span class="linenos">2433</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select.limit-2434"><a href="#Select.limit-2434"><span class="linenos">2434</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Select.limit-2435"><a href="#Select.limit-2435"><span class="linenos">2435</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Select.limit-2436"><a href="#Select.limit-2436"><span class="linenos">2436</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.limit-2437"><a href="#Select.limit-2437"><span class="linenos">2437</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.limit-2438"><a href="#Select.limit-2438"><span class="linenos">2438</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.limit-2439"><a href="#Select.limit-2439"><span class="linenos">2439</span></a>
-</span><span id="Select.limit-2440"><a href="#Select.limit-2440"><span class="linenos">2440</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.limit-2441"><a href="#Select.limit-2441"><span class="linenos">2441</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.limit-2442"><a href="#Select.limit-2442"><span class="linenos">2442</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.limit-2443"><a href="#Select.limit-2443"><span class="linenos">2443</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.limit-2444"><a href="#Select.limit-2444"><span class="linenos">2444</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-2445"><a href="#Select.limit-2445"><span class="linenos">2445</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-2446"><a href="#Select.limit-2446"><span class="linenos">2446</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-2447"><a href="#Select.limit-2447"><span class="linenos">2447</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-2448"><a href="#Select.limit-2448"><span class="linenos">2448</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-2449"><a href="#Select.limit-2449"><span class="linenos">2449</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-2450"><a href="#Select.limit-2450"><span class="linenos">2450</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-2451"><a href="#Select.limit-2451"><span class="linenos">2451</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.limit-2452"><a href="#Select.limit-2452"><span class="linenos">2452</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2618"><a href="#Select.limit-2618"><span class="linenos">2618</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Select.limit-2619"><a href="#Select.limit-2619"><span class="linenos">2619</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-2620"><a href="#Select.limit-2620"><span class="linenos">2620</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-2621"><a href="#Select.limit-2621"><span class="linenos">2621</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.limit-2622"><a href="#Select.limit-2622"><span class="linenos">2622</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Select.limit-2623"><a href="#Select.limit-2623"><span class="linenos">2623</span></a>
+</span><span id="Select.limit-2624"><a href="#Select.limit-2624"><span class="linenos">2624</span></a><span class="sd"> Example:</span>
+</span><span id="Select.limit-2625"><a href="#Select.limit-2625"><span class="linenos">2625</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-2626"><a href="#Select.limit-2626"><span class="linenos">2626</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
+</span><span id="Select.limit-2627"><a href="#Select.limit-2627"><span class="linenos">2627</span></a>
+</span><span id="Select.limit-2628"><a href="#Select.limit-2628"><span class="linenos">2628</span></a><span class="sd"> Args:</span>
+</span><span id="Select.limit-2629"><a href="#Select.limit-2629"><span class="linenos">2629</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.limit-2630"><a href="#Select.limit-2630"><span class="linenos">2630</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select.limit-2631"><a href="#Select.limit-2631"><span class="linenos">2631</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Select.limit-2632"><a href="#Select.limit-2632"><span class="linenos">2632</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Select.limit-2633"><a href="#Select.limit-2633"><span class="linenos">2633</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.limit-2634"><a href="#Select.limit-2634"><span class="linenos">2634</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.limit-2635"><a href="#Select.limit-2635"><span class="linenos">2635</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.limit-2636"><a href="#Select.limit-2636"><span class="linenos">2636</span></a>
+</span><span id="Select.limit-2637"><a href="#Select.limit-2637"><span class="linenos">2637</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.limit-2638"><a href="#Select.limit-2638"><span class="linenos">2638</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.limit-2639"><a href="#Select.limit-2639"><span class="linenos">2639</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.limit-2640"><a href="#Select.limit-2640"><span class="linenos">2640</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.limit-2641"><a href="#Select.limit-2641"><span class="linenos">2641</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-2642"><a href="#Select.limit-2642"><span class="linenos">2642</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-2643"><a href="#Select.limit-2643"><span class="linenos">2643</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-2644"><a href="#Select.limit-2644"><span class="linenos">2644</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-2645"><a href="#Select.limit-2645"><span class="linenos">2645</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-2646"><a href="#Select.limit-2646"><span class="linenos">2646</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-2647"><a href="#Select.limit-2647"><span class="linenos">2647</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-2648"><a href="#Select.limit-2648"><span class="linenos">2648</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.limit-2649"><a href="#Select.limit-2649"><span class="linenos">2649</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23798,13 +25101,13 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.
+<li><strong>expression:</strong> the SQL code string to parse.
This can also be an integer.
If a <code><a href="#Limit">Limit</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Limit">Limit</a></code>.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -23821,42 +25124,44 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<div class="attr function">
<span class="def">def</span>
- <span class="name">offset</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">offset</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.offset-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.offset"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2454"><a href="#Select.offset-2454"><span class="linenos">2454</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.offset-2455"><a href="#Select.offset-2455"><span class="linenos">2455</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.offset-2456"><a href="#Select.offset-2456"><span class="linenos">2456</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.offset-2457"><a href="#Select.offset-2457"><span class="linenos">2457</span></a>
-</span><span id="Select.offset-2458"><a href="#Select.offset-2458"><span class="linenos">2458</span></a><span class="sd"> Example:</span>
-</span><span id="Select.offset-2459"><a href="#Select.offset-2459"><span class="linenos">2459</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-2460"><a href="#Select.offset-2460"><span class="linenos">2460</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="Select.offset-2461"><a href="#Select.offset-2461"><span class="linenos">2461</span></a>
-</span><span id="Select.offset-2462"><a href="#Select.offset-2462"><span class="linenos">2462</span></a><span class="sd"> Args:</span>
-</span><span id="Select.offset-2463"><a href="#Select.offset-2463"><span class="linenos">2463</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select.offset-2464"><a href="#Select.offset-2464"><span class="linenos">2464</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select.offset-2465"><a href="#Select.offset-2465"><span class="linenos">2465</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="Select.offset-2466"><a href="#Select.offset-2466"><span class="linenos">2466</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="Select.offset-2467"><a href="#Select.offset-2467"><span class="linenos">2467</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.offset-2468"><a href="#Select.offset-2468"><span class="linenos">2468</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.offset-2469"><a href="#Select.offset-2469"><span class="linenos">2469</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.offset-2470"><a href="#Select.offset-2470"><span class="linenos">2470</span></a>
-</span><span id="Select.offset-2471"><a href="#Select.offset-2471"><span class="linenos">2471</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.offset-2472"><a href="#Select.offset-2472"><span class="linenos">2472</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.offset-2473"><a href="#Select.offset-2473"><span class="linenos">2473</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.offset-2474"><a href="#Select.offset-2474"><span class="linenos">2474</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.offset-2475"><a href="#Select.offset-2475"><span class="linenos">2475</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-2476"><a href="#Select.offset-2476"><span class="linenos">2476</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-2477"><a href="#Select.offset-2477"><span class="linenos">2477</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-2478"><a href="#Select.offset-2478"><span class="linenos">2478</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-2479"><a href="#Select.offset-2479"><span class="linenos">2479</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-2480"><a href="#Select.offset-2480"><span class="linenos">2480</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-2481"><a href="#Select.offset-2481"><span class="linenos">2481</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.offset-2482"><a href="#Select.offset-2482"><span class="linenos">2482</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.offset-2483"><a href="#Select.offset-2483"><span class="linenos">2483</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2651"><a href="#Select.offset-2651"><span class="linenos">2651</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
+</span><span id="Select.offset-2652"><a href="#Select.offset-2652"><span class="linenos">2652</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-2653"><a href="#Select.offset-2653"><span class="linenos">2653</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-2654"><a href="#Select.offset-2654"><span class="linenos">2654</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.offset-2655"><a href="#Select.offset-2655"><span class="linenos">2655</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.offset-2656"><a href="#Select.offset-2656"><span class="linenos">2656</span></a>
+</span><span id="Select.offset-2657"><a href="#Select.offset-2657"><span class="linenos">2657</span></a><span class="sd"> Example:</span>
+</span><span id="Select.offset-2658"><a href="#Select.offset-2658"><span class="linenos">2658</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-2659"><a href="#Select.offset-2659"><span class="linenos">2659</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
+</span><span id="Select.offset-2660"><a href="#Select.offset-2660"><span class="linenos">2660</span></a>
+</span><span id="Select.offset-2661"><a href="#Select.offset-2661"><span class="linenos">2661</span></a><span class="sd"> Args:</span>
+</span><span id="Select.offset-2662"><a href="#Select.offset-2662"><span class="linenos">2662</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.offset-2663"><a href="#Select.offset-2663"><span class="linenos">2663</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select.offset-2664"><a href="#Select.offset-2664"><span class="linenos">2664</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="Select.offset-2665"><a href="#Select.offset-2665"><span class="linenos">2665</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="Select.offset-2666"><a href="#Select.offset-2666"><span class="linenos">2666</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.offset-2667"><a href="#Select.offset-2667"><span class="linenos">2667</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.offset-2668"><a href="#Select.offset-2668"><span class="linenos">2668</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.offset-2669"><a href="#Select.offset-2669"><span class="linenos">2669</span></a>
+</span><span id="Select.offset-2670"><a href="#Select.offset-2670"><span class="linenos">2670</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.offset-2671"><a href="#Select.offset-2671"><span class="linenos">2671</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.offset-2672"><a href="#Select.offset-2672"><span class="linenos">2672</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.offset-2673"><a href="#Select.offset-2673"><span class="linenos">2673</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.offset-2674"><a href="#Select.offset-2674"><span class="linenos">2674</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-2675"><a href="#Select.offset-2675"><span class="linenos">2675</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-2676"><a href="#Select.offset-2676"><span class="linenos">2676</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-2677"><a href="#Select.offset-2677"><span class="linenos">2677</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-2678"><a href="#Select.offset-2678"><span class="linenos">2678</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-2679"><a href="#Select.offset-2679"><span class="linenos">2679</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-2680"><a href="#Select.offset-2680"><span class="linenos">2680</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-2681"><a href="#Select.offset-2681"><span class="linenos">2681</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.offset-2682"><a href="#Select.offset-2682"><span class="linenos">2682</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23875,19 +25180,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.
+<li><strong>expression:</strong> the SQL code string to parse.
This can also be an integer.
If a <code><a href="#Offset">Offset</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Offset">Offset</a></code>.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23898,48 +25203,48 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<div class="attr function">
<span class="def">def</span>
- <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.select-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2485"><a href="#Select.select-2485"><span class="linenos">2485</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select.select-2486"><a href="#Select.select-2486"><span class="linenos">2486</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.select-2487"><a href="#Select.select-2487"><span class="linenos">2487</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select.select-2488"><a href="#Select.select-2488"><span class="linenos">2488</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-2489"><a href="#Select.select-2489"><span class="linenos">2489</span></a> <span class="n">dialect</span><span 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-2490"><a href="#Select.select-2490"><span class="linenos">2490</span></a> <span class="n">copy</span><span 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-2491"><a href="#Select.select-2491"><span class="linenos">2491</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-2492"><a href="#Select.select-2492"><span class="linenos">2492</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-2493"><a href="#Select.select-2493"><span class="linenos">2493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.select-2494"><a href="#Select.select-2494"><span class="linenos">2494</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="Select.select-2495"><a href="#Select.select-2495"><span class="linenos">2495</span></a>
-</span><span id="Select.select-2496"><a href="#Select.select-2496"><span class="linenos">2496</span></a><span class="sd"> Example:</span>
-</span><span id="Select.select-2497"><a href="#Select.select-2497"><span class="linenos">2497</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="Select.select-2498"><a href="#Select.select-2498"><span class="linenos">2498</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="Select.select-2499"><a href="#Select.select-2499"><span class="linenos">2499</span></a>
-</span><span id="Select.select-2500"><a href="#Select.select-2500"><span class="linenos">2500</span></a><span class="sd"> Args:</span>
-</span><span id="Select.select-2501"><a href="#Select.select-2501"><span class="linenos">2501</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.select-2502"><a href="#Select.select-2502"><span class="linenos">2502</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.select-2503"><a href="#Select.select-2503"><span class="linenos">2503</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.select-2504"><a href="#Select.select-2504"><span class="linenos">2504</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.select-2505"><a href="#Select.select-2505"><span class="linenos">2505</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.select-2506"><a href="#Select.select-2506"><span class="linenos">2506</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.select-2507"><a href="#Select.select-2507"><span class="linenos">2507</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.select-2508"><a href="#Select.select-2508"><span class="linenos">2508</span></a>
-</span><span id="Select.select-2509"><a href="#Select.select-2509"><span class="linenos">2509</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.select-2510"><a href="#Select.select-2510"><span class="linenos">2510</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.select-2511"><a href="#Select.select-2511"><span class="linenos">2511</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.select-2512"><a href="#Select.select-2512"><span class="linenos">2512</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.select-2513"><a href="#Select.select-2513"><span class="linenos">2513</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.select-2514"><a href="#Select.select-2514"><span class="linenos">2514</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-2515"><a href="#Select.select-2515"><span class="linenos">2515</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-2516"><a href="#Select.select-2516"><span class="linenos">2516</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-2517"><a href="#Select.select-2517"><span class="linenos">2517</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-2518"><a href="#Select.select-2518"><span class="linenos">2518</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-2519"><a href="#Select.select-2519"><span class="linenos">2519</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-2520"><a href="#Select.select-2520"><span class="linenos">2520</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2684"><a href="#Select.select-2684"><span class="linenos">2684</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select.select-2685"><a href="#Select.select-2685"><span class="linenos">2685</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.select-2686"><a href="#Select.select-2686"><span class="linenos">2686</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-2687"><a href="#Select.select-2687"><span class="linenos">2687</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-2688"><a href="#Select.select-2688"><span class="linenos">2688</span></a> <span class="n">dialect</span><span 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-2689"><a href="#Select.select-2689"><span class="linenos">2689</span></a> <span class="n">copy</span><span 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-2690"><a href="#Select.select-2690"><span class="linenos">2690</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-2691"><a href="#Select.select-2691"><span class="linenos">2691</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-2692"><a href="#Select.select-2692"><span class="linenos">2692</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.select-2693"><a href="#Select.select-2693"><span class="linenos">2693</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="Select.select-2694"><a href="#Select.select-2694"><span class="linenos">2694</span></a>
+</span><span id="Select.select-2695"><a href="#Select.select-2695"><span class="linenos">2695</span></a><span class="sd"> Example:</span>
+</span><span id="Select.select-2696"><a href="#Select.select-2696"><span class="linenos">2696</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="Select.select-2697"><a href="#Select.select-2697"><span class="linenos">2697</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</span><span id="Select.select-2698"><a href="#Select.select-2698"><span class="linenos">2698</span></a>
+</span><span id="Select.select-2699"><a href="#Select.select-2699"><span class="linenos">2699</span></a><span class="sd"> Args:</span>
+</span><span id="Select.select-2700"><a href="#Select.select-2700"><span class="linenos">2700</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.select-2701"><a href="#Select.select-2701"><span class="linenos">2701</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.select-2702"><a href="#Select.select-2702"><span class="linenos">2702</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.select-2703"><a href="#Select.select-2703"><span class="linenos">2703</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.select-2704"><a href="#Select.select-2704"><span class="linenos">2704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.select-2705"><a href="#Select.select-2705"><span class="linenos">2705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.select-2706"><a href="#Select.select-2706"><span class="linenos">2706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.select-2707"><a href="#Select.select-2707"><span class="linenos">2707</span></a>
+</span><span id="Select.select-2708"><a href="#Select.select-2708"><span class="linenos">2708</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.select-2709"><a href="#Select.select-2709"><span class="linenos">2709</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.select-2710"><a href="#Select.select-2710"><span class="linenos">2710</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.select-2711"><a href="#Select.select-2711"><span class="linenos">2711</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.select-2712"><a href="#Select.select-2712"><span class="linenos">2712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.select-2713"><a href="#Select.select-2713"><span class="linenos">2713</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-2714"><a href="#Select.select-2714"><span class="linenos">2714</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-2715"><a href="#Select.select-2715"><span class="linenos">2715</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-2716"><a href="#Select.select-2716"><span class="linenos">2716</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-2717"><a href="#Select.select-2717"><span class="linenos">2717</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-2718"><a href="#Select.select-2718"><span class="linenos">2718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-2719"><a href="#Select.select-2719"><span class="linenos">2719</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23970,7 +25275,7 @@ Otherwise, this resets the expressions.</li>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -23981,43 +25286,50 @@ Otherwise, this resets the expressions.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">lateral</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">lateral</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.lateral-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-2522"><a href="#Select.lateral-2522"><span class="linenos">2522</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.lateral-2523"><a href="#Select.lateral-2523"><span class="linenos">2523</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lateral-2524"><a href="#Select.lateral-2524"><span class="linenos">2524</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select.lateral-2525"><a href="#Select.lateral-2525"><span class="linenos">2525</span></a>
-</span><span id="Select.lateral-2526"><a href="#Select.lateral-2526"><span class="linenos">2526</span></a><span class="sd"> Example:</span>
-</span><span id="Select.lateral-2527"><a href="#Select.lateral-2527"><span class="linenos">2527</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-2528"><a href="#Select.lateral-2528"><span class="linenos">2528</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-2529"><a href="#Select.lateral-2529"><span class="linenos">2529</span></a>
-</span><span id="Select.lateral-2530"><a href="#Select.lateral-2530"><span class="linenos">2530</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lateral-2531"><a href="#Select.lateral-2531"><span class="linenos">2531</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.lateral-2532"><a href="#Select.lateral-2532"><span class="linenos">2532</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.lateral-2533"><a href="#Select.lateral-2533"><span class="linenos">2533</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.lateral-2534"><a href="#Select.lateral-2534"><span class="linenos">2534</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.lateral-2535"><a href="#Select.lateral-2535"><span class="linenos">2535</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.lateral-2536"><a href="#Select.lateral-2536"><span class="linenos">2536</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lateral-2537"><a href="#Select.lateral-2537"><span class="linenos">2537</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.lateral-2538"><a href="#Select.lateral-2538"><span class="linenos">2538</span></a>
-</span><span id="Select.lateral-2539"><a href="#Select.lateral-2539"><span class="linenos">2539</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lateral-2540"><a href="#Select.lateral-2540"><span class="linenos">2540</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.lateral-2541"><a href="#Select.lateral-2541"><span class="linenos">2541</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lateral-2542"><a href="#Select.lateral-2542"><span class="linenos">2542</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.lateral-2543"><a href="#Select.lateral-2543"><span class="linenos">2543</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.lateral-2544"><a href="#Select.lateral-2544"><span class="linenos">2544</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-2545"><a href="#Select.lateral-2545"><span class="linenos">2545</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-2546"><a href="#Select.lateral-2546"><span class="linenos">2546</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-2547"><a href="#Select.lateral-2547"><span class="linenos">2547</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-2548"><a href="#Select.lateral-2548"><span class="linenos">2548</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-2549"><a href="#Select.lateral-2549"><span class="linenos">2549</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-2550"><a href="#Select.lateral-2550"><span class="linenos">2550</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-2551"><a href="#Select.lateral-2551"><span class="linenos">2551</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.lateral-2552"><a href="#Select.lateral-2552"><span class="linenos">2552</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-2721"><a href="#Select.lateral-2721"><span class="linenos">2721</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="Select.lateral-2722"><a href="#Select.lateral-2722"><span class="linenos">2722</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.lateral-2723"><a href="#Select.lateral-2723"><span class="linenos">2723</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-2724"><a href="#Select.lateral-2724"><span class="linenos">2724</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-2725"><a href="#Select.lateral-2725"><span class="linenos">2725</span></a> <span class="n">dialect</span><span 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-2726"><a href="#Select.lateral-2726"><span class="linenos">2726</span></a> <span class="n">copy</span><span 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-2727"><a href="#Select.lateral-2727"><span class="linenos">2727</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-2728"><a href="#Select.lateral-2728"><span class="linenos">2728</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-2729"><a href="#Select.lateral-2729"><span class="linenos">2729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lateral-2730"><a href="#Select.lateral-2730"><span class="linenos">2730</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select.lateral-2731"><a href="#Select.lateral-2731"><span class="linenos">2731</span></a>
+</span><span id="Select.lateral-2732"><a href="#Select.lateral-2732"><span class="linenos">2732</span></a><span class="sd"> Example:</span>
+</span><span id="Select.lateral-2733"><a href="#Select.lateral-2733"><span class="linenos">2733</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-2734"><a href="#Select.lateral-2734"><span class="linenos">2734</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-2735"><a href="#Select.lateral-2735"><span class="linenos">2735</span></a>
+</span><span id="Select.lateral-2736"><a href="#Select.lateral-2736"><span class="linenos">2736</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lateral-2737"><a href="#Select.lateral-2737"><span class="linenos">2737</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.lateral-2738"><a href="#Select.lateral-2738"><span class="linenos">2738</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.lateral-2739"><a href="#Select.lateral-2739"><span class="linenos">2739</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.lateral-2740"><a href="#Select.lateral-2740"><span class="linenos">2740</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.lateral-2741"><a href="#Select.lateral-2741"><span class="linenos">2741</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.lateral-2742"><a href="#Select.lateral-2742"><span class="linenos">2742</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lateral-2743"><a href="#Select.lateral-2743"><span class="linenos">2743</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.lateral-2744"><a href="#Select.lateral-2744"><span class="linenos">2744</span></a>
+</span><span id="Select.lateral-2745"><a href="#Select.lateral-2745"><span class="linenos">2745</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lateral-2746"><a href="#Select.lateral-2746"><span class="linenos">2746</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.lateral-2747"><a href="#Select.lateral-2747"><span class="linenos">2747</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lateral-2748"><a href="#Select.lateral-2748"><span class="linenos">2748</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.lateral-2749"><a href="#Select.lateral-2749"><span class="linenos">2749</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.lateral-2750"><a href="#Select.lateral-2750"><span class="linenos">2750</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-2751"><a href="#Select.lateral-2751"><span class="linenos">2751</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-2752"><a href="#Select.lateral-2752"><span class="linenos">2752</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-2753"><a href="#Select.lateral-2753"><span class="linenos">2753</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-2754"><a href="#Select.lateral-2754"><span class="linenos">2754</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-2755"><a href="#Select.lateral-2755"><span class="linenos">2755</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-2756"><a href="#Select.lateral-2756"><span class="linenos">2756</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-2757"><a href="#Select.lateral-2757"><span class="linenos">2757</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-2758"><a href="#Select.lateral-2758"><span class="linenos">2758</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24036,19 +25348,19 @@ Otherwise, this resets the expressions.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -24059,106 +25371,108 @@ Otherwise, this resets the expressions.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">join</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span>,</span><span class="param"> <span class="n">on</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">using</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">join</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">on</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">using</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">join_type</span><span class="p">:</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 class="param"> <span class="n">join_alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.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">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.join-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-2554"><a href="#Select.join-2554"><span class="linenos">2554</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select.join-2555"><a href="#Select.join-2555"><span class="linenos">2555</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.join-2556"><a href="#Select.join-2556"><span class="linenos">2556</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="Select.join-2557"><a href="#Select.join-2557"><span class="linenos">2557</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2558"><a href="#Select.join-2558"><span class="linenos">2558</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2559"><a href="#Select.join-2559"><span class="linenos">2559</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-2560"><a href="#Select.join-2560"><span class="linenos">2560</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2561"><a href="#Select.join-2561"><span class="linenos">2561</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2562"><a href="#Select.join-2562"><span class="linenos">2562</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2563"><a href="#Select.join-2563"><span class="linenos">2563</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-2564"><a href="#Select.join-2564"><span class="linenos">2564</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-2565"><a href="#Select.join-2565"><span class="linenos">2565</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-2566"><a href="#Select.join-2566"><span class="linenos">2566</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.join-2567"><a href="#Select.join-2567"><span class="linenos">2567</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select.join-2568"><a href="#Select.join-2568"><span class="linenos">2568</span></a>
-</span><span id="Select.join-2569"><a href="#Select.join-2569"><span class="linenos">2569</span></a><span class="sd"> Example:</span>
-</span><span id="Select.join-2570"><a href="#Select.join-2570"><span class="linenos">2570</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-2571"><a href="#Select.join-2571"><span class="linenos">2571</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select.join-2572"><a href="#Select.join-2572"><span class="linenos">2572</span></a>
-</span><span id="Select.join-2573"><a href="#Select.join-2573"><span class="linenos">2573</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-2574"><a href="#Select.join-2574"><span class="linenos">2574</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select.join-2575"><a href="#Select.join-2575"><span class="linenos">2575</span></a>
-</span><span id="Select.join-2576"><a href="#Select.join-2576"><span class="linenos">2576</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="Select.join-2577"><a href="#Select.join-2577"><span class="linenos">2577</span></a>
-</span><span id="Select.join-2578"><a href="#Select.join-2578"><span class="linenos">2578</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-2579"><a href="#Select.join-2579"><span class="linenos">2579</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-2580"><a href="#Select.join-2580"><span class="linenos">2580</span></a>
-</span><span id="Select.join-2581"><a href="#Select.join-2581"><span class="linenos">2581</span></a><span class="sd"> Args:</span>
-</span><span id="Select.join-2582"><a href="#Select.join-2582"><span class="linenos">2582</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="Select.join-2583"><a href="#Select.join-2583"><span class="linenos">2583</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-2584"><a href="#Select.join-2584"><span class="linenos">2584</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-2585"><a href="#Select.join-2585"><span class="linenos">2585</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-2586"><a href="#Select.join-2586"><span class="linenos">2586</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-2587"><a href="#Select.join-2587"><span class="linenos">2587</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-2588"><a href="#Select.join-2588"><span class="linenos">2588</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.join-2589"><a href="#Select.join-2589"><span class="linenos">2589</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.join-2590"><a href="#Select.join-2590"><span class="linenos">2590</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
-</span><span id="Select.join-2591"><a href="#Select.join-2591"><span class="linenos">2591</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.join-2592"><a href="#Select.join-2592"><span class="linenos">2592</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.join-2593"><a href="#Select.join-2593"><span class="linenos">2593</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.join-2594"><a href="#Select.join-2594"><span class="linenos">2594</span></a>
-</span><span id="Select.join-2595"><a href="#Select.join-2595"><span class="linenos">2595</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.join-2596"><a href="#Select.join-2596"><span class="linenos">2596</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.join-2597"><a href="#Select.join-2597"><span class="linenos">2597</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.join-2598"><a href="#Select.join-2598"><span class="linenos">2598</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
-</span><span id="Select.join-2599"><a href="#Select.join-2599"><span class="linenos">2599</span></a>
-</span><span id="Select.join-2600"><a href="#Select.join-2600"><span class="linenos">2600</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select.join-2601"><a href="#Select.join-2601"><span class="linenos">2601</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-2602"><a href="#Select.join-2602"><span class="linenos">2602</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select.join-2603"><a href="#Select.join-2603"><span class="linenos">2603</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-2604"><a href="#Select.join-2604"><span class="linenos">2604</span></a>
-</span><span id="Select.join-2605"><a href="#Select.join-2605"><span class="linenos">2605</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-2606"><a href="#Select.join-2606"><span class="linenos">2606</span></a>
-</span><span id="Select.join-2607"><a href="#Select.join-2607"><span class="linenos">2607</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-2608"><a href="#Select.join-2608"><span class="linenos">2608</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-2609"><a href="#Select.join-2609"><span class="linenos">2609</span></a>
-</span><span id="Select.join-2610"><a href="#Select.join-2610"><span class="linenos">2610</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select.join-2611"><a href="#Select.join-2611"><span class="linenos">2611</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
-</span><span id="Select.join-2612"><a href="#Select.join-2612"><span class="linenos">2612</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-2613"><a href="#Select.join-2613"><span class="linenos">2613</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-2614"><a href="#Select.join-2614"><span class="linenos">2614</span></a>
-</span><span id="Select.join-2615"><a href="#Select.join-2615"><span class="linenos">2615</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Select.join-2616"><a href="#Select.join-2616"><span class="linenos">2616</span></a>
-</span><span id="Select.join-2617"><a href="#Select.join-2617"><span class="linenos">2617</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
-</span><span id="Select.join-2618"><a href="#Select.join-2618"><span class="linenos">2618</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="Select.join-2619"><a href="#Select.join-2619"><span class="linenos">2619</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select.join-2620"><a href="#Select.join-2620"><span class="linenos">2620</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-2621"><a href="#Select.join-2621"><span class="linenos">2621</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select.join-2622"><a href="#Select.join-2622"><span class="linenos">2622</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-2623"><a href="#Select.join-2623"><span class="linenos">2623</span></a>
-</span><span id="Select.join-2624"><a href="#Select.join-2624"><span class="linenos">2624</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select.join-2625"><a href="#Select.join-2625"><span class="linenos">2625</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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-2626"><a href="#Select.join-2626"><span class="linenos">2626</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-2627"><a href="#Select.join-2627"><span class="linenos">2627</span></a>
-</span><span id="Select.join-2628"><a href="#Select.join-2628"><span class="linenos">2628</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select.join-2629"><a href="#Select.join-2629"><span class="linenos">2629</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-2630"><a href="#Select.join-2630"><span class="linenos">2630</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select.join-2631"><a href="#Select.join-2631"><span class="linenos">2631</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-2632"><a href="#Select.join-2632"><span class="linenos">2632</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-2633"><a href="#Select.join-2633"><span class="linenos">2633</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-2634"><a href="#Select.join-2634"><span class="linenos">2634</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-2635"><a href="#Select.join-2635"><span class="linenos">2635</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-2636"><a href="#Select.join-2636"><span class="linenos">2636</span></a> <span class="p">)</span>
-</span><span id="Select.join-2637"><a href="#Select.join-2637"><span class="linenos">2637</span></a>
-</span><span id="Select.join-2638"><a href="#Select.join-2638"><span class="linenos">2638</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select.join-2639"><a href="#Select.join-2639"><span class="linenos">2639</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-2640"><a href="#Select.join-2640"><span class="linenos">2640</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.join-2641"><a href="#Select.join-2641"><span class="linenos">2641</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select.join-2642"><a href="#Select.join-2642"><span class="linenos">2642</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-2643"><a href="#Select.join-2643"><span class="linenos">2643</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-2644"><a href="#Select.join-2644"><span class="linenos">2644</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-2645"><a href="#Select.join-2645"><span class="linenos">2645</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-2646"><a href="#Select.join-2646"><span class="linenos">2646</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-2647"><a href="#Select.join-2647"><span class="linenos">2647</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-2760"><a href="#Select.join-2760"><span class="linenos">2760</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select.join-2761"><a href="#Select.join-2761"><span class="linenos">2761</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.join-2762"><a href="#Select.join-2762"><span class="linenos">2762</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-2763"><a href="#Select.join-2763"><span class="linenos">2763</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-2764"><a href="#Select.join-2764"><span class="linenos">2764</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">List</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-2765"><a href="#Select.join-2765"><span class="linenos">2765</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-2766"><a href="#Select.join-2766"><span class="linenos">2766</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-2767"><a href="#Select.join-2767"><span class="linenos">2767</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-2768"><a href="#Select.join-2768"><span class="linenos">2768</span></a> <span class="n">dialect</span><span 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-2769"><a href="#Select.join-2769"><span class="linenos">2769</span></a> <span class="n">copy</span><span 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-2770"><a href="#Select.join-2770"><span class="linenos">2770</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-2771"><a href="#Select.join-2771"><span class="linenos">2771</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-2772"><a href="#Select.join-2772"><span class="linenos">2772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.join-2773"><a href="#Select.join-2773"><span class="linenos">2773</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select.join-2774"><a href="#Select.join-2774"><span class="linenos">2774</span></a>
+</span><span id="Select.join-2775"><a href="#Select.join-2775"><span class="linenos">2775</span></a><span class="sd"> Example:</span>
+</span><span id="Select.join-2776"><a href="#Select.join-2776"><span class="linenos">2776</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-2777"><a href="#Select.join-2777"><span class="linenos">2777</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select.join-2778"><a href="#Select.join-2778"><span class="linenos">2778</span></a>
+</span><span id="Select.join-2779"><a href="#Select.join-2779"><span class="linenos">2779</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-2780"><a href="#Select.join-2780"><span class="linenos">2780</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="Select.join-2781"><a href="#Select.join-2781"><span class="linenos">2781</span></a>
+</span><span id="Select.join-2782"><a href="#Select.join-2782"><span class="linenos">2782</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select.join-2783"><a href="#Select.join-2783"><span class="linenos">2783</span></a>
+</span><span id="Select.join-2784"><a href="#Select.join-2784"><span class="linenos">2784</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-2785"><a href="#Select.join-2785"><span class="linenos">2785</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-2786"><a href="#Select.join-2786"><span class="linenos">2786</span></a>
+</span><span id="Select.join-2787"><a href="#Select.join-2787"><span class="linenos">2787</span></a><span class="sd"> Args:</span>
+</span><span id="Select.join-2788"><a href="#Select.join-2788"><span class="linenos">2788</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.join-2789"><a href="#Select.join-2789"><span class="linenos">2789</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-2790"><a href="#Select.join-2790"><span class="linenos">2790</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-2791"><a href="#Select.join-2791"><span class="linenos">2791</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-2792"><a href="#Select.join-2792"><span class="linenos">2792</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-2793"><a href="#Select.join-2793"><span class="linenos">2793</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-2794"><a href="#Select.join-2794"><span class="linenos">2794</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.join-2795"><a href="#Select.join-2795"><span class="linenos">2795</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.join-2796"><a href="#Select.join-2796"><span class="linenos">2796</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="Select.join-2797"><a href="#Select.join-2797"><span class="linenos">2797</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="Select.join-2798"><a href="#Select.join-2798"><span class="linenos">2798</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.join-2799"><a href="#Select.join-2799"><span class="linenos">2799</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.join-2800"><a href="#Select.join-2800"><span class="linenos">2800</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.join-2801"><a href="#Select.join-2801"><span class="linenos">2801</span></a>
+</span><span id="Select.join-2802"><a href="#Select.join-2802"><span class="linenos">2802</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.join-2803"><a href="#Select.join-2803"><span class="linenos">2803</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.join-2804"><a href="#Select.join-2804"><span class="linenos">2804</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.join-2805"><a href="#Select.join-2805"><span class="linenos">2805</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
+</span><span id="Select.join-2806"><a href="#Select.join-2806"><span class="linenos">2806</span></a>
+</span><span id="Select.join-2807"><a href="#Select.join-2807"><span class="linenos">2807</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select.join-2808"><a href="#Select.join-2808"><span class="linenos">2808</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 class="c1"># type: ignore</span>
+</span><span id="Select.join-2809"><a href="#Select.join-2809"><span class="linenos">2809</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select.join-2810"><a href="#Select.join-2810"><span class="linenos">2810</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 class="c1"># type: ignore</span>
+</span><span id="Select.join-2811"><a href="#Select.join-2811"><span class="linenos">2811</span></a>
+</span><span id="Select.join-2812"><a href="#Select.join-2812"><span class="linenos">2812</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-2813"><a href="#Select.join-2813"><span class="linenos">2813</span></a>
+</span><span id="Select.join-2814"><a href="#Select.join-2814"><span class="linenos">2814</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-2815"><a href="#Select.join-2815"><span class="linenos">2815</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-2816"><a href="#Select.join-2816"><span class="linenos">2816</span></a>
+</span><span id="Select.join-2817"><a href="#Select.join-2817"><span class="linenos">2817</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select.join-2818"><a href="#Select.join-2818"><span class="linenos">2818</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
+</span><span id="Select.join-2819"><a href="#Select.join-2819"><span class="linenos">2819</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-2820"><a href="#Select.join-2820"><span class="linenos">2820</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-2821"><a href="#Select.join-2821"><span class="linenos">2821</span></a>
+</span><span id="Select.join-2822"><a href="#Select.join-2822"><span class="linenos">2822</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Select.join-2823"><a href="#Select.join-2823"><span class="linenos">2823</span></a>
+</span><span id="Select.join-2824"><a href="#Select.join-2824"><span class="linenos">2824</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
+</span><span id="Select.join-2825"><a href="#Select.join-2825"><span class="linenos">2825</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="Select.join-2826"><a href="#Select.join-2826"><span class="linenos">2826</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select.join-2827"><a href="#Select.join-2827"><span class="linenos">2827</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-2828"><a href="#Select.join-2828"><span class="linenos">2828</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select.join-2829"><a href="#Select.join-2829"><span class="linenos">2829</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-2830"><a href="#Select.join-2830"><span class="linenos">2830</span></a>
+</span><span id="Select.join-2831"><a href="#Select.join-2831"><span class="linenos">2831</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select.join-2832"><a href="#Select.join-2832"><span class="linenos">2832</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-2833"><a href="#Select.join-2833"><span class="linenos">2833</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-2834"><a href="#Select.join-2834"><span class="linenos">2834</span></a>
+</span><span id="Select.join-2835"><a href="#Select.join-2835"><span class="linenos">2835</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select.join-2836"><a href="#Select.join-2836"><span class="linenos">2836</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-2837"><a href="#Select.join-2837"><span class="linenos">2837</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-2838"><a href="#Select.join-2838"><span class="linenos">2838</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-2839"><a href="#Select.join-2839"><span class="linenos">2839</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-2840"><a href="#Select.join-2840"><span class="linenos">2840</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-2841"><a href="#Select.join-2841"><span class="linenos">2841</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-2842"><a href="#Select.join-2842"><span class="linenos">2842</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-2843"><a href="#Select.join-2843"><span class="linenos">2843</span></a> <span class="p">)</span>
+</span><span id="Select.join-2844"><a href="#Select.join-2844"><span class="linenos">2844</span></a>
+</span><span id="Select.join-2845"><a href="#Select.join-2845"><span class="linenos">2845</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select.join-2846"><a href="#Select.join-2846"><span class="linenos">2846</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-2847"><a href="#Select.join-2847"><span class="linenos">2847</span></a>
+</span><span id="Select.join-2848"><a href="#Select.join-2848"><span class="linenos">2848</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.join-2849"><a href="#Select.join-2849"><span class="linenos">2849</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select.join-2850"><a href="#Select.join-2850"><span class="linenos">2850</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-2851"><a href="#Select.join-2851"><span class="linenos">2851</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-2852"><a href="#Select.join-2852"><span class="linenos">2852</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-2853"><a href="#Select.join-2853"><span class="linenos">2853</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-2854"><a href="#Select.join-2854"><span class="linenos">2854</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-2855"><a href="#Select.join-2855"><span class="linenos">2855</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24191,18 +25505,19 @@ Otherwise, this resets the expressions.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | Expression):</strong> the SQL code string to parse.
+<li><strong>expression:</strong> the SQL code string to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>on (str | Expression):</strong> optionally specify the join "on" criteria as a SQL string.
+<li><strong>on:</strong> optionally specify the join "on" criteria as a SQL string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>using (str | Expression):</strong> optionally specify the join "using" criteria as a SQL string.
+<li><strong>using:</strong> optionally specify the join "using" criteria as a SQL string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.
+<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
-<li><strong>join_type (str):</strong> If set, alter the parsed join type</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>join_type:</strong> if set, alter the parsed join type.</li>
+<li><strong>join_alias:</strong> an optional alias for the joined source.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -24219,43 +25534,50 @@ Otherwise, this resets the expressions.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.where-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-2649"><a href="#Select.where-2649"><span class="linenos">2649</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.where-2650"><a href="#Select.where-2650"><span class="linenos">2650</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.where-2651"><a href="#Select.where-2651"><span class="linenos">2651</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select.where-2652"><a href="#Select.where-2652"><span class="linenos">2652</span></a>
-</span><span id="Select.where-2653"><a href="#Select.where-2653"><span class="linenos">2653</span></a><span class="sd"> Example:</span>
-</span><span id="Select.where-2654"><a href="#Select.where-2654"><span class="linenos">2654</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-2655"><a href="#Select.where-2655"><span class="linenos">2655</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-2656"><a href="#Select.where-2656"><span class="linenos">2656</span></a>
-</span><span id="Select.where-2657"><a href="#Select.where-2657"><span class="linenos">2657</span></a><span class="sd"> Args:</span>
-</span><span id="Select.where-2658"><a href="#Select.where-2658"><span class="linenos">2658</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.where-2659"><a href="#Select.where-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="Select.where-2660"><a href="#Select.where-2660"><span class="linenos">2660</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.where-2661"><a href="#Select.where-2661"><span class="linenos">2661</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.where-2662"><a href="#Select.where-2662"><span class="linenos">2662</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.where-2663"><a href="#Select.where-2663"><span class="linenos">2663</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.where-2664"><a href="#Select.where-2664"><span class="linenos">2664</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.where-2665"><a href="#Select.where-2665"><span class="linenos">2665</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.where-2666"><a href="#Select.where-2666"><span class="linenos">2666</span></a>
-</span><span id="Select.where-2667"><a href="#Select.where-2667"><span class="linenos">2667</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.where-2668"><a href="#Select.where-2668"><span class="linenos">2668</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.where-2669"><a href="#Select.where-2669"><span class="linenos">2669</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.where-2670"><a href="#Select.where-2670"><span class="linenos">2670</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.where-2671"><a href="#Select.where-2671"><span class="linenos">2671</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.where-2672"><a href="#Select.where-2672"><span class="linenos">2672</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-2673"><a href="#Select.where-2673"><span class="linenos">2673</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-2674"><a href="#Select.where-2674"><span class="linenos">2674</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-2675"><a href="#Select.where-2675"><span class="linenos">2675</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-2676"><a href="#Select.where-2676"><span class="linenos">2676</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-2677"><a href="#Select.where-2677"><span class="linenos">2677</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-2678"><a href="#Select.where-2678"><span class="linenos">2678</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.where-2679"><a href="#Select.where-2679"><span class="linenos">2679</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-2857"><a href="#Select.where-2857"><span class="linenos">2857</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Select.where-2858"><a href="#Select.where-2858"><span class="linenos">2858</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.where-2859"><a href="#Select.where-2859"><span class="linenos">2859</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.where-2860"><a href="#Select.where-2860"><span class="linenos">2860</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-2861"><a href="#Select.where-2861"><span class="linenos">2861</span></a> <span class="n">dialect</span><span 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-2862"><a href="#Select.where-2862"><span class="linenos">2862</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.where-2863"><a href="#Select.where-2863"><span class="linenos">2863</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-2864"><a href="#Select.where-2864"><span class="linenos">2864</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-2865"><a href="#Select.where-2865"><span class="linenos">2865</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.where-2866"><a href="#Select.where-2866"><span class="linenos">2866</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select.where-2867"><a href="#Select.where-2867"><span class="linenos">2867</span></a>
+</span><span id="Select.where-2868"><a href="#Select.where-2868"><span class="linenos">2868</span></a><span class="sd"> Example:</span>
+</span><span id="Select.where-2869"><a href="#Select.where-2869"><span class="linenos">2869</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-2870"><a href="#Select.where-2870"><span class="linenos">2870</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-2871"><a href="#Select.where-2871"><span class="linenos">2871</span></a>
+</span><span id="Select.where-2872"><a href="#Select.where-2872"><span class="linenos">2872</span></a><span class="sd"> Args:</span>
+</span><span id="Select.where-2873"><a href="#Select.where-2873"><span class="linenos">2873</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.where-2874"><a href="#Select.where-2874"><span class="linenos">2874</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.where-2875"><a href="#Select.where-2875"><span class="linenos">2875</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.where-2876"><a href="#Select.where-2876"><span class="linenos">2876</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.where-2877"><a href="#Select.where-2877"><span class="linenos">2877</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.where-2878"><a href="#Select.where-2878"><span class="linenos">2878</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.where-2879"><a href="#Select.where-2879"><span class="linenos">2879</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.where-2880"><a href="#Select.where-2880"><span class="linenos">2880</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.where-2881"><a href="#Select.where-2881"><span class="linenos">2881</span></a>
+</span><span id="Select.where-2882"><a href="#Select.where-2882"><span class="linenos">2882</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.where-2883"><a href="#Select.where-2883"><span class="linenos">2883</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.where-2884"><a href="#Select.where-2884"><span class="linenos">2884</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.where-2885"><a href="#Select.where-2885"><span class="linenos">2885</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.where-2886"><a href="#Select.where-2886"><span class="linenos">2886</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.where-2887"><a href="#Select.where-2887"><span class="linenos">2887</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-2888"><a href="#Select.where-2888"><span class="linenos">2888</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-2889"><a href="#Select.where-2889"><span class="linenos">2889</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-2890"><a href="#Select.where-2890"><span class="linenos">2890</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-2891"><a href="#Select.where-2891"><span class="linenos">2891</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-2892"><a href="#Select.where-2892"><span class="linenos">2892</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-2893"><a href="#Select.where-2893"><span class="linenos">2893</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-2894"><a href="#Select.where-2894"><span class="linenos">2894</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24274,14 +25596,14 @@ Otherwise, this resets the expressions.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.
+<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -24298,43 +25620,50 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">having</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">having</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.having-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-2681"><a href="#Select.having-2681"><span class="linenos">2681</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.having-2682"><a href="#Select.having-2682"><span class="linenos">2682</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.having-2683"><a href="#Select.having-2683"><span class="linenos">2683</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select.having-2684"><a href="#Select.having-2684"><span class="linenos">2684</span></a>
-</span><span id="Select.having-2685"><a href="#Select.having-2685"><span class="linenos">2685</span></a><span class="sd"> Example:</span>
-</span><span id="Select.having-2686"><a href="#Select.having-2686"><span class="linenos">2686</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-2687"><a href="#Select.having-2687"><span class="linenos">2687</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-2688"><a href="#Select.having-2688"><span class="linenos">2688</span></a>
-</span><span id="Select.having-2689"><a href="#Select.having-2689"><span class="linenos">2689</span></a><span class="sd"> Args:</span>
-</span><span id="Select.having-2690"><a href="#Select.having-2690"><span class="linenos">2690</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.having-2691"><a href="#Select.having-2691"><span class="linenos">2691</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.having-2692"><a href="#Select.having-2692"><span class="linenos">2692</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.having-2693"><a href="#Select.having-2693"><span class="linenos">2693</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.having-2694"><a href="#Select.having-2694"><span class="linenos">2694</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.having-2695"><a href="#Select.having-2695"><span class="linenos">2695</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.having-2696"><a href="#Select.having-2696"><span class="linenos">2696</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.having-2697"><a href="#Select.having-2697"><span class="linenos">2697</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.having-2698"><a href="#Select.having-2698"><span class="linenos">2698</span></a>
-</span><span id="Select.having-2699"><a href="#Select.having-2699"><span class="linenos">2699</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.having-2700"><a href="#Select.having-2700"><span class="linenos">2700</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.having-2701"><a href="#Select.having-2701"><span class="linenos">2701</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.having-2702"><a href="#Select.having-2702"><span class="linenos">2702</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.having-2703"><a href="#Select.having-2703"><span class="linenos">2703</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.having-2704"><a href="#Select.having-2704"><span class="linenos">2704</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-2705"><a href="#Select.having-2705"><span class="linenos">2705</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-2706"><a href="#Select.having-2706"><span class="linenos">2706</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-2707"><a href="#Select.having-2707"><span class="linenos">2707</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-2708"><a href="#Select.having-2708"><span class="linenos">2708</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-2709"><a href="#Select.having-2709"><span class="linenos">2709</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-2710"><a href="#Select.having-2710"><span class="linenos">2710</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.having-2711"><a href="#Select.having-2711"><span class="linenos">2711</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-2896"><a href="#Select.having-2896"><span class="linenos">2896</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="Select.having-2897"><a href="#Select.having-2897"><span class="linenos">2897</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.having-2898"><a href="#Select.having-2898"><span class="linenos">2898</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-2899"><a href="#Select.having-2899"><span class="linenos">2899</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-2900"><a href="#Select.having-2900"><span class="linenos">2900</span></a> <span class="n">dialect</span><span 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-2901"><a href="#Select.having-2901"><span class="linenos">2901</span></a> <span class="n">copy</span><span 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-2902"><a href="#Select.having-2902"><span class="linenos">2902</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-2903"><a href="#Select.having-2903"><span class="linenos">2903</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-2904"><a href="#Select.having-2904"><span class="linenos">2904</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.having-2905"><a href="#Select.having-2905"><span class="linenos">2905</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select.having-2906"><a href="#Select.having-2906"><span class="linenos">2906</span></a>
+</span><span id="Select.having-2907"><a href="#Select.having-2907"><span class="linenos">2907</span></a><span class="sd"> Example:</span>
+</span><span id="Select.having-2908"><a href="#Select.having-2908"><span class="linenos">2908</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-2909"><a href="#Select.having-2909"><span class="linenos">2909</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-2910"><a href="#Select.having-2910"><span class="linenos">2910</span></a>
+</span><span id="Select.having-2911"><a href="#Select.having-2911"><span class="linenos">2911</span></a><span class="sd"> Args:</span>
+</span><span id="Select.having-2912"><a href="#Select.having-2912"><span class="linenos">2912</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.having-2913"><a href="#Select.having-2913"><span class="linenos">2913</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.having-2914"><a href="#Select.having-2914"><span class="linenos">2914</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.having-2915"><a href="#Select.having-2915"><span class="linenos">2915</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.having-2916"><a href="#Select.having-2916"><span class="linenos">2916</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.having-2917"><a href="#Select.having-2917"><span class="linenos">2917</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.having-2918"><a href="#Select.having-2918"><span class="linenos">2918</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.having-2919"><a href="#Select.having-2919"><span class="linenos">2919</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.having-2920"><a href="#Select.having-2920"><span class="linenos">2920</span></a>
+</span><span id="Select.having-2921"><a href="#Select.having-2921"><span class="linenos">2921</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.having-2922"><a href="#Select.having-2922"><span class="linenos">2922</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.having-2923"><a href="#Select.having-2923"><span class="linenos">2923</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.having-2924"><a href="#Select.having-2924"><span class="linenos">2924</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.having-2925"><a href="#Select.having-2925"><span class="linenos">2925</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.having-2926"><a href="#Select.having-2926"><span class="linenos">2926</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-2927"><a href="#Select.having-2927"><span class="linenos">2927</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-2928"><a href="#Select.having-2928"><span class="linenos">2928</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-2929"><a href="#Select.having-2929"><span class="linenos">2929</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-2930"><a href="#Select.having-2930"><span class="linenos">2930</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-2931"><a href="#Select.having-2931"><span class="linenos">2931</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-2932"><a href="#Select.having-2932"><span class="linenos">2932</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-2933"><a href="#Select.having-2933"><span class="linenos">2933</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24353,20 +25682,20 @@ Otherwise, this resets the expression.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
-<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.
+<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: the modified expression.</p>
+ <p>The modified Select expression.</p>
</blockquote>
</div>
@@ -24377,23 +25706,30 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">window</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">window</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.window-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-2713"><a href="#Select.window-2713"><span class="linenos">2713</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.window-2714"><a href="#Select.window-2714"><span class="linenos">2714</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.window-2715"><a href="#Select.window-2715"><span class="linenos">2715</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.window-2716"><a href="#Select.window-2716"><span class="linenos">2716</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-2717"><a href="#Select.window-2717"><span class="linenos">2717</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-2718"><a href="#Select.window-2718"><span class="linenos">2718</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-2719"><a href="#Select.window-2719"><span class="linenos">2719</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-2720"><a href="#Select.window-2720"><span class="linenos">2720</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-2721"><a href="#Select.window-2721"><span class="linenos">2721</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-2722"><a href="#Select.window-2722"><span class="linenos">2722</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.window-2723"><a href="#Select.window-2723"><span class="linenos">2723</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-2935"><a href="#Select.window-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="Select.window-2936"><a href="#Select.window-2936"><span class="linenos">2936</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.window-2937"><a href="#Select.window-2937"><span class="linenos">2937</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-2938"><a href="#Select.window-2938"><span class="linenos">2938</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-2939"><a href="#Select.window-2939"><span class="linenos">2939</span></a> <span class="n">dialect</span><span 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-2940"><a href="#Select.window-2940"><span class="linenos">2940</span></a> <span class="n">copy</span><span 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-2941"><a href="#Select.window-2941"><span class="linenos">2941</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-2942"><a href="#Select.window-2942"><span class="linenos">2942</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-2943"><a href="#Select.window-2943"><span class="linenos">2943</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.window-2944"><a href="#Select.window-2944"><span class="linenos">2944</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.window-2945"><a href="#Select.window-2945"><span class="linenos">2945</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-2946"><a href="#Select.window-2946"><span class="linenos">2946</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-2947"><a href="#Select.window-2947"><span class="linenos">2947</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-2948"><a href="#Select.window-2948"><span class="linenos">2948</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-2949"><a href="#Select.window-2949"><span class="linenos">2949</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-2950"><a href="#Select.window-2950"><span class="linenos">2950</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-2951"><a href="#Select.window-2951"><span class="linenos">2951</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-2952"><a href="#Select.window-2952"><span class="linenos">2952</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24405,23 +25741,30 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">qualify</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span>,</span><span class="param"> <span class="n">append</span><span class="o">=</span><span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">qualify</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.qualify-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.qualify"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-2725"><a href="#Select.qualify-2725"><span class="linenos">2725</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.qualify-2726"><a href="#Select.qualify-2726"><span class="linenos">2726</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.qualify-2727"><a href="#Select.qualify-2727"><span class="linenos">2727</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.qualify-2728"><a href="#Select.qualify-2728"><span class="linenos">2728</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-2729"><a href="#Select.qualify-2729"><span class="linenos">2729</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-2730"><a href="#Select.qualify-2730"><span class="linenos">2730</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-2731"><a href="#Select.qualify-2731"><span class="linenos">2731</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-2732"><a href="#Select.qualify-2732"><span class="linenos">2732</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-2733"><a href="#Select.qualify-2733"><span class="linenos">2733</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-2734"><a href="#Select.qualify-2734"><span class="linenos">2734</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.qualify-2735"><a href="#Select.qualify-2735"><span class="linenos">2735</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-2954"><a href="#Select.qualify-2954"><span class="linenos">2954</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="Select.qualify-2955"><a href="#Select.qualify-2955"><span class="linenos">2955</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.qualify-2956"><a href="#Select.qualify-2956"><span class="linenos">2956</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-2957"><a href="#Select.qualify-2957"><span class="linenos">2957</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-2958"><a href="#Select.qualify-2958"><span class="linenos">2958</span></a> <span class="n">dialect</span><span 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-2959"><a href="#Select.qualify-2959"><span class="linenos">2959</span></a> <span class="n">copy</span><span 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-2960"><a href="#Select.qualify-2960"><span class="linenos">2960</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-2961"><a href="#Select.qualify-2961"><span class="linenos">2961</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-2962"><a href="#Select.qualify-2962"><span class="linenos">2962</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.qualify-2963"><a href="#Select.qualify-2963"><span class="linenos">2963</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.qualify-2964"><a href="#Select.qualify-2964"><span class="linenos">2964</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-2965"><a href="#Select.qualify-2965"><span class="linenos">2965</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-2966"><a href="#Select.qualify-2966"><span class="linenos">2966</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-2967"><a href="#Select.qualify-2967"><span class="linenos">2967</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-2968"><a href="#Select.qualify-2968"><span class="linenos">2968</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-2969"><a href="#Select.qualify-2969"><span class="linenos">2969</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-2970"><a href="#Select.qualify-2970"><span class="linenos">2970</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-2971"><a href="#Select.qualify-2971"><span class="linenos">2971</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24433,32 +25776,34 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">distinct</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="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="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">distinct</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="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="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.distinct-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-2737"><a href="#Select.distinct-2737"><span class="linenos">2737</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</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 class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.distinct-2738"><a href="#Select.distinct-2738"><span class="linenos">2738</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.distinct-2739"><a href="#Select.distinct-2739"><span class="linenos">2739</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.distinct-2740"><a href="#Select.distinct-2740"><span class="linenos">2740</span></a>
-</span><span id="Select.distinct-2741"><a href="#Select.distinct-2741"><span class="linenos">2741</span></a><span class="sd"> Example:</span>
-</span><span id="Select.distinct-2742"><a href="#Select.distinct-2742"><span class="linenos">2742</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-2743"><a href="#Select.distinct-2743"><span class="linenos">2743</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select.distinct-2744"><a href="#Select.distinct-2744"><span class="linenos">2744</span></a>
-</span><span id="Select.distinct-2745"><a href="#Select.distinct-2745"><span class="linenos">2745</span></a><span class="sd"> Args:</span>
-</span><span id="Select.distinct-2746"><a href="#Select.distinct-2746"><span class="linenos">2746</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="Select.distinct-2747"><a href="#Select.distinct-2747"><span class="linenos">2747</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="Select.distinct-2748"><a href="#Select.distinct-2748"><span class="linenos">2748</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.distinct-2749"><a href="#Select.distinct-2749"><span class="linenos">2749</span></a>
-</span><span id="Select.distinct-2750"><a href="#Select.distinct-2750"><span class="linenos">2750</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.distinct-2751"><a href="#Select.distinct-2751"><span class="linenos">2751</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.distinct-2752"><a href="#Select.distinct-2752"><span class="linenos">2752</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.distinct-2753"><a href="#Select.distinct-2753"><span class="linenos">2753</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-2754"><a href="#Select.distinct-2754"><span class="linenos">2754</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="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-2755"><a href="#Select.distinct-2755"><span class="linenos">2755</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-2756"><a href="#Select.distinct-2756"><span class="linenos">2756</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-2973"><a href="#Select.distinct-2973"><span class="linenos">2973</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="Select.distinct-2974"><a href="#Select.distinct-2974"><span class="linenos">2974</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-2975"><a href="#Select.distinct-2975"><span class="linenos">2975</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-2976"><a href="#Select.distinct-2976"><span class="linenos">2976</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.distinct-2977"><a href="#Select.distinct-2977"><span class="linenos">2977</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.distinct-2978"><a href="#Select.distinct-2978"><span class="linenos">2978</span></a>
+</span><span id="Select.distinct-2979"><a href="#Select.distinct-2979"><span class="linenos">2979</span></a><span class="sd"> Example:</span>
+</span><span id="Select.distinct-2980"><a href="#Select.distinct-2980"><span class="linenos">2980</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-2981"><a href="#Select.distinct-2981"><span class="linenos">2981</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select.distinct-2982"><a href="#Select.distinct-2982"><span class="linenos">2982</span></a>
+</span><span id="Select.distinct-2983"><a href="#Select.distinct-2983"><span class="linenos">2983</span></a><span class="sd"> Args:</span>
+</span><span id="Select.distinct-2984"><a href="#Select.distinct-2984"><span class="linenos">2984</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="Select.distinct-2985"><a href="#Select.distinct-2985"><span class="linenos">2985</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="Select.distinct-2986"><a href="#Select.distinct-2986"><span class="linenos">2986</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.distinct-2987"><a href="#Select.distinct-2987"><span class="linenos">2987</span></a>
+</span><span id="Select.distinct-2988"><a href="#Select.distinct-2988"><span class="linenos">2988</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.distinct-2989"><a href="#Select.distinct-2989"><span class="linenos">2989</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.distinct-2990"><a href="#Select.distinct-2990"><span class="linenos">2990</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.distinct-2991"><a href="#Select.distinct-2991"><span class="linenos">2991</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-2992"><a href="#Select.distinct-2992"><span class="linenos">2992</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-2993"><a href="#Select.distinct-2993"><span class="linenos">2993</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-2994"><a href="#Select.distinct-2994"><span class="linenos">2994</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -24496,48 +25841,55 @@ Otherwise, this resets the expression.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">ctas</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">table</span>,</span><span class="param"> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Create">sqlglot.expressions.Create</a></span>:</span></span>
+ <span class="name">ctas</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">properties</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Create">sqlglot.expressions.Create</a></span>:</span></span>
<label class="view-source-button" for="Select.ctas-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.ctas"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-2758"><a href="#Select.ctas-2758"><span class="linenos">2758</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="Select.ctas-2759"><a href="#Select.ctas-2759"><span class="linenos">2759</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.ctas-2760"><a href="#Select.ctas-2760"><span class="linenos">2760</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select.ctas-2761"><a href="#Select.ctas-2761"><span class="linenos">2761</span></a>
-</span><span id="Select.ctas-2762"><a href="#Select.ctas-2762"><span class="linenos">2762</span></a><span class="sd"> Example:</span>
-</span><span id="Select.ctas-2763"><a href="#Select.ctas-2763"><span class="linenos">2763</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-2764"><a href="#Select.ctas-2764"><span class="linenos">2764</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select.ctas-2765"><a href="#Select.ctas-2765"><span class="linenos">2765</span></a>
-</span><span id="Select.ctas-2766"><a href="#Select.ctas-2766"><span class="linenos">2766</span></a><span class="sd"> Args:</span>
-</span><span id="Select.ctas-2767"><a href="#Select.ctas-2767"><span class="linenos">2767</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Select.ctas-2768"><a href="#Select.ctas-2768"><span class="linenos">2768</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.ctas-2769"><a href="#Select.ctas-2769"><span class="linenos">2769</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
-</span><span id="Select.ctas-2770"><a href="#Select.ctas-2770"><span class="linenos">2770</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
-</span><span id="Select.ctas-2771"><a href="#Select.ctas-2771"><span class="linenos">2771</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.ctas-2772"><a href="#Select.ctas-2772"><span class="linenos">2772</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
-</span><span id="Select.ctas-2773"><a href="#Select.ctas-2773"><span class="linenos">2773</span></a>
-</span><span id="Select.ctas-2774"><a href="#Select.ctas-2774"><span class="linenos">2774</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.ctas-2775"><a href="#Select.ctas-2775"><span class="linenos">2775</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
-</span><span id="Select.ctas-2776"><a href="#Select.ctas-2776"><span class="linenos">2776</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.ctas-2777"><a href="#Select.ctas-2777"><span class="linenos">2777</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-2778"><a href="#Select.ctas-2778"><span class="linenos">2778</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-2779"><a href="#Select.ctas-2779"><span class="linenos">2779</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="Select.ctas-2780"><a href="#Select.ctas-2780"><span class="linenos">2780</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-2781"><a href="#Select.ctas-2781"><span class="linenos">2781</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-2782"><a href="#Select.ctas-2782"><span class="linenos">2782</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.ctas-2783"><a href="#Select.ctas-2783"><span class="linenos">2783</span></a> <span class="p">)</span>
-</span><span id="Select.ctas-2784"><a href="#Select.ctas-2784"><span class="linenos">2784</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select.ctas-2785"><a href="#Select.ctas-2785"><span class="linenos">2785</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select.ctas-2786"><a href="#Select.ctas-2786"><span class="linenos">2786</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-2787"><a href="#Select.ctas-2787"><span class="linenos">2787</span></a>
-</span><span id="Select.ctas-2788"><a href="#Select.ctas-2788"><span class="linenos">2788</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select.ctas-2789"><a href="#Select.ctas-2789"><span class="linenos">2789</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-2790"><a href="#Select.ctas-2790"><span class="linenos">2790</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-2791"><a href="#Select.ctas-2791"><span class="linenos">2791</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-2792"><a href="#Select.ctas-2792"><span class="linenos">2792</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-2793"><a href="#Select.ctas-2793"><span class="linenos">2793</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-2996"><a href="#Select.ctas-2996"><span class="linenos">2996</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="Select.ctas-2997"><a href="#Select.ctas-2997"><span class="linenos">2997</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.ctas-2998"><a href="#Select.ctas-2998"><span class="linenos">2998</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-2999"><a href="#Select.ctas-2999"><span class="linenos">2999</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-3000"><a href="#Select.ctas-3000"><span class="linenos">3000</span></a> <span class="n">dialect</span><span 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-3001"><a href="#Select.ctas-3001"><span class="linenos">3001</span></a> <span class="n">copy</span><span 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-3002"><a href="#Select.ctas-3002"><span class="linenos">3002</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.ctas-3003"><a href="#Select.ctas-3003"><span class="linenos">3003</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-3004"><a href="#Select.ctas-3004"><span class="linenos">3004</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.ctas-3005"><a href="#Select.ctas-3005"><span class="linenos">3005</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select.ctas-3006"><a href="#Select.ctas-3006"><span class="linenos">3006</span></a>
+</span><span id="Select.ctas-3007"><a href="#Select.ctas-3007"><span class="linenos">3007</span></a><span class="sd"> Example:</span>
+</span><span id="Select.ctas-3008"><a href="#Select.ctas-3008"><span class="linenos">3008</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-3009"><a href="#Select.ctas-3009"><span class="linenos">3009</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
+</span><span id="Select.ctas-3010"><a href="#Select.ctas-3010"><span class="linenos">3010</span></a>
+</span><span id="Select.ctas-3011"><a href="#Select.ctas-3011"><span class="linenos">3011</span></a><span class="sd"> Args:</span>
+</span><span id="Select.ctas-3012"><a href="#Select.ctas-3012"><span class="linenos">3012</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="Select.ctas-3013"><a href="#Select.ctas-3013"><span class="linenos">3013</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.ctas-3014"><a href="#Select.ctas-3014"><span class="linenos">3014</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="Select.ctas-3015"><a href="#Select.ctas-3015"><span class="linenos">3015</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="Select.ctas-3016"><a href="#Select.ctas-3016"><span class="linenos">3016</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.ctas-3017"><a href="#Select.ctas-3017"><span class="linenos">3017</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="Select.ctas-3018"><a href="#Select.ctas-3018"><span class="linenos">3018</span></a>
+</span><span id="Select.ctas-3019"><a href="#Select.ctas-3019"><span class="linenos">3019</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.ctas-3020"><a href="#Select.ctas-3020"><span class="linenos">3020</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="Select.ctas-3021"><a href="#Select.ctas-3021"><span class="linenos">3021</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.ctas-3022"><a href="#Select.ctas-3022"><span class="linenos">3022</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-3023"><a href="#Select.ctas-3023"><span class="linenos">3023</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-3024"><a href="#Select.ctas-3024"><span class="linenos">3024</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="Select.ctas-3025"><a href="#Select.ctas-3025"><span class="linenos">3025</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-3026"><a href="#Select.ctas-3026"><span class="linenos">3026</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-3027"><a href="#Select.ctas-3027"><span class="linenos">3027</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.ctas-3028"><a href="#Select.ctas-3028"><span class="linenos">3028</span></a> <span class="p">)</span>
+</span><span id="Select.ctas-3029"><a href="#Select.ctas-3029"><span class="linenos">3029</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select.ctas-3030"><a href="#Select.ctas-3030"><span class="linenos">3030</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select.ctas-3031"><a href="#Select.ctas-3031"><span class="linenos">3031</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-3032"><a href="#Select.ctas-3032"><span class="linenos">3032</span></a>
+</span><span id="Select.ctas-3033"><a href="#Select.ctas-3033"><span class="linenos">3033</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select.ctas-3034"><a href="#Select.ctas-3034"><span class="linenos">3034</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-3035"><a href="#Select.ctas-3035"><span class="linenos">3035</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-3036"><a href="#Select.ctas-3036"><span class="linenos">3036</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-3037"><a href="#Select.ctas-3037"><span class="linenos">3037</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-3038"><a href="#Select.ctas-3038"><span class="linenos">3038</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24556,18 +25908,18 @@ Otherwise, this resets the expression.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>table (str | Expression):</strong> the SQL code string to parse as the table name.
+<li><strong>table:</strong> the SQL code string to parse as the table name.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>properties (dict):</strong> an optional mapping of table properties</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input table.</li>
-<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input table.</li>
+<li><strong>properties:</strong> an optional mapping of table properties</li>
+<li><strong>dialect:</strong> the dialect used to parse the input table.</li>
+<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
+<li><strong>opts:</strong> other options to use to parse the input table.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Create: the CREATE TABLE AS expression</p>
+ <p>The new Create expression.</p>
</blockquote>
</div>
@@ -24584,29 +25936,29 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-2795"><a href="#Select.lock-2795"><span class="linenos">2795</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-2796"><a href="#Select.lock-2796"><span class="linenos">2796</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lock-2797"><a href="#Select.lock-2797"><span class="linenos">2797</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select.lock-2798"><a href="#Select.lock-2798"><span class="linenos">2798</span></a>
-</span><span id="Select.lock-2799"><a href="#Select.lock-2799"><span class="linenos">2799</span></a><span class="sd"> Examples:</span>
-</span><span id="Select.lock-2800"><a href="#Select.lock-2800"><span class="linenos">2800</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-2801"><a href="#Select.lock-2801"><span class="linenos">2801</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="Select.lock-2802"><a href="#Select.lock-2802"><span class="linenos">2802</span></a>
-</span><span id="Select.lock-2803"><a href="#Select.lock-2803"><span class="linenos">2803</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-2804"><a href="#Select.lock-2804"><span class="linenos">2804</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select.lock-2805"><a href="#Select.lock-2805"><span class="linenos">2805</span></a>
-</span><span id="Select.lock-2806"><a href="#Select.lock-2806"><span class="linenos">2806</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lock-2807"><a href="#Select.lock-2807"><span class="linenos">2807</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-2808"><a href="#Select.lock-2808"><span class="linenos">2808</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lock-2809"><a href="#Select.lock-2809"><span class="linenos">2809</span></a>
-</span><span id="Select.lock-2810"><a href="#Select.lock-2810"><span class="linenos">2810</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lock-2811"><a href="#Select.lock-2811"><span class="linenos">2811</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select.lock-2812"><a href="#Select.lock-2812"><span class="linenos">2812</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lock-2813"><a href="#Select.lock-2813"><span class="linenos">2813</span></a>
-</span><span id="Select.lock-2814"><a href="#Select.lock-2814"><span class="linenos">2814</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-2815"><a href="#Select.lock-2815"><span class="linenos">2815</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span>
-</span><span id="Select.lock-2816"><a href="#Select.lock-2816"><span class="linenos">2816</span></a>
-</span><span id="Select.lock-2817"><a href="#Select.lock-2817"><span class="linenos">2817</span></a> <span class="k">return</span> <span class="n">inst</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-3040"><a href="#Select.lock-3040"><span class="linenos">3040</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-3041"><a href="#Select.lock-3041"><span class="linenos">3041</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lock-3042"><a href="#Select.lock-3042"><span class="linenos">3042</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select.lock-3043"><a href="#Select.lock-3043"><span class="linenos">3043</span></a>
+</span><span id="Select.lock-3044"><a href="#Select.lock-3044"><span class="linenos">3044</span></a><span class="sd"> Examples:</span>
+</span><span id="Select.lock-3045"><a href="#Select.lock-3045"><span class="linenos">3045</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-3046"><a href="#Select.lock-3046"><span class="linenos">3046</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select.lock-3047"><a href="#Select.lock-3047"><span class="linenos">3047</span></a>
+</span><span id="Select.lock-3048"><a href="#Select.lock-3048"><span class="linenos">3048</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-3049"><a href="#Select.lock-3049"><span class="linenos">3049</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select.lock-3050"><a href="#Select.lock-3050"><span class="linenos">3050</span></a>
+</span><span id="Select.lock-3051"><a href="#Select.lock-3051"><span class="linenos">3051</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lock-3052"><a href="#Select.lock-3052"><span class="linenos">3052</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-3053"><a href="#Select.lock-3053"><span class="linenos">3053</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lock-3054"><a href="#Select.lock-3054"><span class="linenos">3054</span></a>
+</span><span id="Select.lock-3055"><a href="#Select.lock-3055"><span class="linenos">3055</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lock-3056"><a href="#Select.lock-3056"><span class="linenos">3056</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select.lock-3057"><a href="#Select.lock-3057"><span class="linenos">3057</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lock-3058"><a href="#Select.lock-3058"><span class="linenos">3058</span></a>
+</span><span id="Select.lock-3059"><a href="#Select.lock-3059"><span class="linenos">3059</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-3060"><a href="#Select.lock-3060"><span class="linenos">3060</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-3061"><a href="#Select.lock-3061"><span class="linenos">3061</span></a>
+</span><span id="Select.lock-3062"><a href="#Select.lock-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
@@ -24672,6 +26024,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Select.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Select.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Select.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Select.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Select.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -24724,30 +26077,30 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-2832"><a href="#Subquery-2832"><span class="linenos">2832</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-2833"><a href="#Subquery-2833"><span class="linenos">2833</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Subquery-2834"><a href="#Subquery-2834"><span class="linenos">2834</span></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-2835"><a href="#Subquery-2835"><span class="linenos">2835</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-2836"><a href="#Subquery-2836"><span class="linenos">2836</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-2837"><a href="#Subquery-2837"><span class="linenos">2837</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Subquery-2838"><a href="#Subquery-2838"><span class="linenos">2838</span></a> <span class="p">}</span>
-</span><span id="Subquery-2839"><a href="#Subquery-2839"><span class="linenos">2839</span></a>
-</span><span id="Subquery-2840"><a href="#Subquery-2840"><span class="linenos">2840</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-2841"><a href="#Subquery-2841"><span class="linenos">2841</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery-2842"><a href="#Subquery-2842"><span class="linenos">2842</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="Subquery-2843"><a href="#Subquery-2843"><span class="linenos">2843</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery-2844"><a href="#Subquery-2844"><span class="linenos">2844</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery-2845"><a href="#Subquery-2845"><span class="linenos">2845</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-2846"><a href="#Subquery-2846"><span class="linenos">2846</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-2847"><a href="#Subquery-2847"><span class="linenos">2847</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Subquery-2848"><a href="#Subquery-2848"><span class="linenos">2848</span></a>
-</span><span id="Subquery-2849"><a href="#Subquery-2849"><span class="linenos">2849</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-2850"><a href="#Subquery-2850"><span class="linenos">2850</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-2851"><a href="#Subquery-2851"><span class="linenos">2851</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-2852"><a href="#Subquery-2852"><span class="linenos">2852</span></a>
-</span><span id="Subquery-2853"><a href="#Subquery-2853"><span class="linenos">2853</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-2854"><a href="#Subquery-2854"><span class="linenos">2854</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subquery-2855"><a href="#Subquery-2855"><span class="linenos">2855</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-3077"><a href="#Subquery-3077"><span class="linenos">3077</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-3078"><a href="#Subquery-3078"><span class="linenos">3078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Subquery-3079"><a href="#Subquery-3079"><span class="linenos">3079</span></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-3080"><a href="#Subquery-3080"><span class="linenos">3080</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-3081"><a href="#Subquery-3081"><span class="linenos">3081</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-3082"><a href="#Subquery-3082"><span class="linenos">3082</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Subquery-3083"><a href="#Subquery-3083"><span class="linenos">3083</span></a> <span class="p">}</span>
+</span><span id="Subquery-3084"><a href="#Subquery-3084"><span class="linenos">3084</span></a>
+</span><span id="Subquery-3085"><a href="#Subquery-3085"><span class="linenos">3085</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-3086"><a href="#Subquery-3086"><span class="linenos">3086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery-3087"><a href="#Subquery-3087"><span class="linenos">3087</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="Subquery-3088"><a href="#Subquery-3088"><span class="linenos">3088</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery-3089"><a href="#Subquery-3089"><span class="linenos">3089</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery-3090"><a href="#Subquery-3090"><span class="linenos">3090</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-3091"><a href="#Subquery-3091"><span class="linenos">3091</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-3092"><a href="#Subquery-3092"><span class="linenos">3092</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Subquery-3093"><a href="#Subquery-3093"><span class="linenos">3093</span></a>
+</span><span id="Subquery-3094"><a href="#Subquery-3094"><span class="linenos">3094</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3095"><a href="#Subquery-3095"><span class="linenos">3095</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-3096"><a href="#Subquery-3096"><span class="linenos">3096</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-3097"><a href="#Subquery-3097"><span class="linenos">3097</span></a>
+</span><span id="Subquery-3098"><a href="#Subquery-3098"><span class="linenos">3098</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3099"><a href="#Subquery-3099"><span class="linenos">3099</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-3100"><a href="#Subquery-3100"><span class="linenos">3100</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -24764,14 +26117,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Subquery.unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-2840"><a href="#Subquery.unnest-2840"><span class="linenos">2840</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-2841"><a href="#Subquery.unnest-2841"><span class="linenos">2841</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-2842"><a href="#Subquery.unnest-2842"><span class="linenos">2842</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="Subquery.unnest-2843"><a href="#Subquery.unnest-2843"><span class="linenos">2843</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-2844"><a href="#Subquery.unnest-2844"><span class="linenos">2844</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery.unnest-2845"><a href="#Subquery.unnest-2845"><span class="linenos">2845</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-2846"><a href="#Subquery.unnest-2846"><span class="linenos">2846</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-2847"><a href="#Subquery.unnest-2847"><span class="linenos">2847</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-3085"><a href="#Subquery.unnest-3085"><span class="linenos">3085</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-3086"><a href="#Subquery.unnest-3086"><span class="linenos">3086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-3087"><a href="#Subquery.unnest-3087"><span class="linenos">3087</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="Subquery.unnest-3088"><a href="#Subquery.unnest-3088"><span class="linenos">3088</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-3089"><a href="#Subquery.unnest-3089"><span class="linenos">3089</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery.unnest-3090"><a href="#Subquery.unnest-3090"><span class="linenos">3090</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-3091"><a href="#Subquery.unnest-3091"><span class="linenos">3091</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-3092"><a href="#Subquery.unnest-3092"><span class="linenos">3092</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -24795,7 +26148,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<div id="Subquery.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -24837,6 +26190,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Subquery.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Subquery.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Subquery.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Subquery.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Subquery.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -24883,19 +26237,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TableSample"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-2858"><a href="#TableSample-2858"><span class="linenos">2858</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-2859"><a href="#TableSample-2859"><span class="linenos">2859</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TableSample-2860"><a href="#TableSample-2860"><span class="linenos">2860</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-2861"><a href="#TableSample-2861"><span class="linenos">2861</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-2862"><a href="#TableSample-2862"><span class="linenos">2862</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-2863"><a href="#TableSample-2863"><span class="linenos">2863</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-2864"><a href="#TableSample-2864"><span class="linenos">2864</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-2865"><a href="#TableSample-2865"><span class="linenos">2865</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-2866"><a href="#TableSample-2866"><span class="linenos">2866</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-2867"><a href="#TableSample-2867"><span class="linenos">2867</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-2868"><a href="#TableSample-2868"><span class="linenos">2868</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-2869"><a href="#TableSample-2869"><span class="linenos">2869</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-2870"><a href="#TableSample-2870"><span class="linenos">2870</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-3103"><a href="#TableSample-3103"><span class="linenos">3103</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-3104"><a href="#TableSample-3104"><span class="linenos">3104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TableSample-3105"><a href="#TableSample-3105"><span class="linenos">3105</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-3106"><a href="#TableSample-3106"><span class="linenos">3106</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-3107"><a href="#TableSample-3107"><span class="linenos">3107</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-3108"><a href="#TableSample-3108"><span class="linenos">3108</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-3109"><a href="#TableSample-3109"><span class="linenos">3109</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-3110"><a href="#TableSample-3110"><span class="linenos">3110</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-3111"><a href="#TableSample-3111"><span class="linenos">3111</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-3112"><a href="#TableSample-3112"><span class="linenos">3112</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-3113"><a href="#TableSample-3113"><span class="linenos">3113</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-3114"><a href="#TableSample-3114"><span class="linenos">3114</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-3115"><a href="#TableSample-3115"><span class="linenos">3115</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24917,6 +26271,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="TableSample.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TableSample.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TableSample.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TableSample.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TableSample.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -24958,14 +26313,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Tag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-2873"><a href="#Tag-2873"><span class="linenos">2873</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-2874"><a href="#Tag-2874"><span class="linenos">2874</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-2875"><a href="#Tag-2875"><span class="linenos">2875</span></a>
-</span><span id="Tag-2876"><a href="#Tag-2876"><span class="linenos">2876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Tag-2877"><a href="#Tag-2877"><span class="linenos">2877</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-2878"><a href="#Tag-2878"><span class="linenos">2878</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-2879"><a href="#Tag-2879"><span class="linenos">2879</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-2880"><a href="#Tag-2880"><span class="linenos">2880</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-3118"><a href="#Tag-3118"><span class="linenos">3118</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-3119"><a href="#Tag-3119"><span class="linenos">3119</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-3120"><a href="#Tag-3120"><span class="linenos">3120</span></a>
+</span><span id="Tag-3121"><a href="#Tag-3121"><span class="linenos">3121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Tag-3122"><a href="#Tag-3122"><span class="linenos">3122</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-3123"><a href="#Tag-3123"><span class="linenos">3123</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-3124"><a href="#Tag-3124"><span class="linenos">3124</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-3125"><a href="#Tag-3125"><span class="linenos">3125</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24989,6 +26344,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Tag.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Tag.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Tag.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Tag.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Tag.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25030,15 +26386,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Pivot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-2883"><a href="#Pivot-2883"><span class="linenos">2883</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-2884"><a href="#Pivot-2884"><span class="linenos">2884</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Pivot-2885"><a href="#Pivot-2885"><span class="linenos">2885</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-2886"><a href="#Pivot-2886"><span class="linenos">2886</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-2887"><a href="#Pivot-2887"><span class="linenos">2887</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Pivot-2888"><a href="#Pivot-2888"><span class="linenos">2888</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Pivot-2889"><a href="#Pivot-2889"><span class="linenos">2889</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Pivot-2890"><a href="#Pivot-2890"><span class="linenos">2890</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-2891"><a href="#Pivot-2891"><span class="linenos">2891</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-3128"><a href="#Pivot-3128"><span class="linenos">3128</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-3129"><a href="#Pivot-3129"><span class="linenos">3129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Pivot-3130"><a href="#Pivot-3130"><span class="linenos">3130</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-3131"><a href="#Pivot-3131"><span class="linenos">3131</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Pivot-3132"><a href="#Pivot-3132"><span class="linenos">3132</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Pivot-3133"><a href="#Pivot-3133"><span class="linenos">3133</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Pivot-3134"><a href="#Pivot-3134"><span class="linenos">3134</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-3135"><a href="#Pivot-3135"><span class="linenos">3135</span></a> <span class="p">}</span>
</span></pre></div>
@@ -25060,6 +26415,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Pivot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Pivot.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Pivot.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Pivot.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Pivot.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25101,16 +26457,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Window-2894"><a href="#Window-2894"><span class="linenos">2894</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Window-2895"><a href="#Window-2895"><span class="linenos">2895</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Window-2896"><a href="#Window-2896"><span class="linenos">2896</span></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-2897"><a href="#Window-2897"><span class="linenos">2897</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-2898"><a href="#Window-2898"><span class="linenos">2898</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-2899"><a href="#Window-2899"><span class="linenos">2899</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-2900"><a href="#Window-2900"><span class="linenos">2900</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-2901"><a href="#Window-2901"><span class="linenos">2901</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-2902"><a href="#Window-2902"><span class="linenos">2902</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-2903"><a href="#Window-2903"><span class="linenos">2903</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Window-3138"><a href="#Window-3138"><span class="linenos">3138</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Window-3139"><a href="#Window-3139"><span class="linenos">3139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Window-3140"><a href="#Window-3140"><span class="linenos">3140</span></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-3141"><a href="#Window-3141"><span class="linenos">3141</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-3142"><a href="#Window-3142"><span class="linenos">3142</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-3143"><a href="#Window-3143"><span class="linenos">3143</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-3144"><a href="#Window-3144"><span class="linenos">3144</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-3145"><a href="#Window-3145"><span class="linenos">3145</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-3146"><a href="#Window-3146"><span class="linenos">3146</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-3147"><a href="#Window-3147"><span class="linenos">3147</span></a> <span class="p">}</span>
</span></pre></div>
@@ -25132,6 +26488,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Window.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Window.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Window.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Window.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Window.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25173,14 +26530,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#WindowSpec"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-2906"><a href="#WindowSpec-2906"><span class="linenos">2906</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-2907"><a href="#WindowSpec-2907"><span class="linenos">2907</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="WindowSpec-2908"><a href="#WindowSpec-2908"><span class="linenos">2908</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-2909"><a href="#WindowSpec-2909"><span class="linenos">2909</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-2910"><a href="#WindowSpec-2910"><span class="linenos">2910</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-2911"><a href="#WindowSpec-2911"><span class="linenos">2911</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-2912"><a href="#WindowSpec-2912"><span class="linenos">2912</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-2913"><a href="#WindowSpec-2913"><span class="linenos">2913</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-3150"><a href="#WindowSpec-3150"><span class="linenos">3150</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-3151"><a href="#WindowSpec-3151"><span class="linenos">3151</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="WindowSpec-3152"><a href="#WindowSpec-3152"><span class="linenos">3152</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-3153"><a href="#WindowSpec-3153"><span class="linenos">3153</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-3154"><a href="#WindowSpec-3154"><span class="linenos">3154</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-3155"><a href="#WindowSpec-3155"><span class="linenos">3155</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-3156"><a href="#WindowSpec-3156"><span class="linenos">3156</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-3157"><a href="#WindowSpec-3157"><span class="linenos">3157</span></a> <span class="p">}</span>
</span></pre></div>
@@ -25202,6 +26559,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="WindowSpec.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WindowSpec.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="WindowSpec.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WindowSpec.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WindowSpec.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25243,8 +26601,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Where-2916"><a href="#Where-2916"><span class="linenos">2916</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-2917"><a href="#Where-2917"><span class="linenos">2917</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Where-3160"><a href="#Where-3160"><span class="linenos">3160</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-3161"><a href="#Where-3161"><span class="linenos">3161</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25266,6 +26624,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Where.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Where.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Where.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Where.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Where.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25307,16 +26666,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Star-2920"><a href="#Star-2920"><span class="linenos">2920</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-2921"><a href="#Star-2921"><span class="linenos">2921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2922"><a href="#Star-2922"><span class="linenos">2922</span></a>
-</span><span id="Star-2923"><a href="#Star-2923"><span class="linenos">2923</span></a> <span class="nd">@property</span>
-</span><span id="Star-2924"><a href="#Star-2924"><span class="linenos">2924</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Star-2925"><a href="#Star-2925"><span class="linenos">2925</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
-</span><span id="Star-2926"><a href="#Star-2926"><span class="linenos">2926</span></a>
-</span><span id="Star-2927"><a href="#Star-2927"><span class="linenos">2927</span></a> <span class="nd">@property</span>
-</span><span id="Star-2928"><a href="#Star-2928"><span class="linenos">2928</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Star-2929"><a href="#Star-2929"><span class="linenos">2929</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-3164"><a href="#Star-3164"><span class="linenos">3164</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-3165"><a href="#Star-3165"><span class="linenos">3165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3166"><a href="#Star-3166"><span class="linenos">3166</span></a>
+</span><span id="Star-3167"><a href="#Star-3167"><span class="linenos">3167</span></a> <span class="nd">@property</span>
+</span><span id="Star-3168"><a href="#Star-3168"><span class="linenos">3168</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-3169"><a href="#Star-3169"><span class="linenos">3169</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="Star-3170"><a href="#Star-3170"><span class="linenos">3170</span></a>
+</span><span id="Star-3171"><a href="#Star-3171"><span class="linenos">3171</span></a> <span class="nd">@property</span>
+</span><span id="Star-3172"><a href="#Star-3172"><span class="linenos">3172</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-3173"><a href="#Star-3173"><span class="linenos">3173</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -25324,7 +26683,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<div id="Star.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -25367,6 +26726,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Star.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Star.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Star.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Star.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Star.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25408,8 +26768,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Parameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-2932"><a href="#Parameter-2932"><span class="linenos">2932</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Parameter-2933"><a href="#Parameter-2933"><span class="linenos">2933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-3176"><a href="#Parameter-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Parameter-3177"><a href="#Parameter-3177"><span class="linenos">3177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -25431,6 +26791,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Parameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Parameter.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Parameter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Parameter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Parameter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25472,8 +26833,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SessionParameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-2936"><a href="#SessionParameter-2936"><span class="linenos">2936</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SessionParameter-2937"><a href="#SessionParameter-2937"><span class="linenos">2937</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3180"><a href="#SessionParameter-3180"><span class="linenos">3180</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SessionParameter-3181"><a href="#SessionParameter-3181"><span class="linenos">3181</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -25495,6 +26856,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="SessionParameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SessionParameter.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SessionParameter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SessionParameter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SessionParameter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25536,8 +26898,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Placeholder"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-2940"><a href="#Placeholder-2940"><span class="linenos">2940</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Placeholder-2941"><a href="#Placeholder-2941"><span class="linenos">2941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-3184"><a href="#Placeholder-3184"><span class="linenos">3184</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Placeholder-3185"><a href="#Placeholder-3185"><span class="linenos">3185</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -25559,6 +26921,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Placeholder.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Placeholder.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Placeholder.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Placeholder.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Placeholder.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25600,12 +26963,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Null-2944"><a href="#Null-2944"><span class="linenos">2944</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-2945"><a href="#Null-2945"><span class="linenos">2945</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-2946"><a href="#Null-2946"><span class="linenos">2946</span></a>
-</span><span id="Null-2947"><a href="#Null-2947"><span class="linenos">2947</span></a> <span class="nd">@property</span>
-</span><span id="Null-2948"><a href="#Null-2948"><span class="linenos">2948</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-2949"><a href="#Null-2949"><span class="linenos">2949</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-3188"><a href="#Null-3188"><span class="linenos">3188</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-3189"><a href="#Null-3189"><span class="linenos">3189</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-3190"><a href="#Null-3190"><span class="linenos">3190</span></a>
+</span><span id="Null-3191"><a href="#Null-3191"><span class="linenos">3191</span></a> <span class="nd">@property</span>
+</span><span id="Null-3192"><a href="#Null-3192"><span class="linenos">3192</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-3193"><a href="#Null-3193"><span class="linenos">3193</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span></pre></div>
@@ -25627,6 +26990,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Null.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Null.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Null.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Null.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Null.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25658,8 +27022,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Null.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Null.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Null.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Null.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Null.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Null.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Null.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Null.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Null.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Null.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -25681,8 +27047,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Boolean"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-2952"><a href="#Boolean-2952"><span class="linenos">2952</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-2953"><a href="#Boolean-2953"><span class="linenos">2953</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-3196"><a href="#Boolean-3196"><span class="linenos">3196</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-3197"><a href="#Boolean-3197"><span class="linenos">3197</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25704,6 +27070,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Boolean.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Boolean.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Boolean.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Boolean.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Boolean.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25735,8 +27102,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Boolean.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Boolean.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Boolean.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Boolean.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Boolean.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Boolean.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Boolean.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Boolean.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Boolean.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Boolean.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -25747,6 +27116,71 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</dl>
</div>
</section>
+ <section id="DataTypeSize">
+ <input id="DataTypeSize-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">DataTypeSize</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="DataTypeSize-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#DataTypeSize"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeSize-3200"><a href="#DataTypeSize-3200"><span class="linenos">3200</span></a><span class="k">class</span> <span class="nc">DataTypeSize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DataTypeSize-3201"><a href="#DataTypeSize-3201"><span class="linenos">3201</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="DataTypeSize.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="DataTypeSize.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="DataTypeSize.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="DataTypeSize.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="DataTypeSize.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="DataTypeSize.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="DataTypeSize.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="DataTypeSize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="DataTypeSize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="DataTypeSize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DataTypeSize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="DataTypeSize.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="DataTypeSize.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="DataTypeSize.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="DataTypeSize.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="DataTypeSize.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="DataTypeSize.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="DataTypeSize.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="DataTypeSize.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="DataTypeSize.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="DataTypeSize.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="DataTypeSize.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="DataTypeSize.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="DataTypeSize.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="DataTypeSize.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="DataTypeSize.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="DataTypeSize.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="DataTypeSize.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="DataTypeSize.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="DataTypeSize.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DataTypeSize.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="DataTypeSize.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="DataTypeSize.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="DataTypeSize.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="DataTypeSize.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="DataTypeSize.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="DataTypeSize.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="DataTypeSize.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="DataType">
<input id="DataType-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -25758,128 +27192,138 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-2956"><a href="#DataType-2956"><span class="linenos">2956</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-2957"><a href="#DataType-2957"><span class="linenos">2957</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2958"><a href="#DataType-2958"><span class="linenos">2958</span></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-2959"><a href="#DataType-2959"><span class="linenos">2959</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-2960"><a href="#DataType-2960"><span class="linenos">2960</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-2961"><a href="#DataType-2961"><span class="linenos">2961</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-2962"><a href="#DataType-2962"><span class="linenos">2962</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-2963"><a href="#DataType-2963"><span class="linenos">2963</span></a> <span class="p">}</span>
-</span><span id="DataType-2964"><a href="#DataType-2964"><span class="linenos">2964</span></a>
-</span><span id="DataType-2965"><a href="#DataType-2965"><span class="linenos">2965</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-2966"><a href="#DataType-2966"><span class="linenos">2966</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2967"><a href="#DataType-2967"><span class="linenos">2967</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2968"><a href="#DataType-2968"><span class="linenos">2968</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2969"><a href="#DataType-2969"><span class="linenos">2969</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2970"><a href="#DataType-2970"><span class="linenos">2970</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2971"><a href="#DataType-2971"><span class="linenos">2971</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2972"><a href="#DataType-2972"><span class="linenos">2972</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2973"><a href="#DataType-2973"><span class="linenos">2973</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2974"><a href="#DataType-2974"><span class="linenos">2974</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2975"><a href="#DataType-2975"><span class="linenos">2975</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2976"><a href="#DataType-2976"><span class="linenos">2976</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2977"><a href="#DataType-2977"><span class="linenos">2977</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2978"><a href="#DataType-2978"><span class="linenos">2978</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2979"><a href="#DataType-2979"><span class="linenos">2979</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2980"><a href="#DataType-2980"><span class="linenos">2980</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2981"><a href="#DataType-2981"><span class="linenos">2981</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2982"><a href="#DataType-2982"><span class="linenos">2982</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2983"><a href="#DataType-2983"><span class="linenos">2983</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2984"><a href="#DataType-2984"><span class="linenos">2984</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2985"><a href="#DataType-2985"><span class="linenos">2985</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2986"><a href="#DataType-2986"><span class="linenos">2986</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2987"><a href="#DataType-2987"><span class="linenos">2987</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2988"><a href="#DataType-2988"><span class="linenos">2988</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2989"><a href="#DataType-2989"><span class="linenos">2989</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2990"><a href="#DataType-2990"><span class="linenos">2990</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2991"><a href="#DataType-2991"><span class="linenos">2991</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2992"><a href="#DataType-2992"><span class="linenos">2992</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2993"><a href="#DataType-2993"><span class="linenos">2993</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2994"><a href="#DataType-2994"><span class="linenos">2994</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2995"><a href="#DataType-2995"><span class="linenos">2995</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2996"><a href="#DataType-2996"><span class="linenos">2996</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2997"><a href="#DataType-2997"><span class="linenos">2997</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2998"><a href="#DataType-2998"><span class="linenos">2998</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2999"><a href="#DataType-2999"><span class="linenos">2999</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3000"><a href="#DataType-3000"><span class="linenos">3000</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3001"><a href="#DataType-3001"><span class="linenos">3001</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3002"><a href="#DataType-3002"><span class="linenos">3002</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3003"><a href="#DataType-3003"><span class="linenos">3003</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3004"><a href="#DataType-3004"><span class="linenos">3004</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3005"><a href="#DataType-3005"><span class="linenos">3005</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3006"><a href="#DataType-3006"><span class="linenos">3006</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3007"><a href="#DataType-3007"><span class="linenos">3007</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3008"><a href="#DataType-3008"><span class="linenos">3008</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3009"><a href="#DataType-3009"><span class="linenos">3009</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3010"><a href="#DataType-3010"><span class="linenos">3010</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3011"><a href="#DataType-3011"><span class="linenos">3011</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3012"><a href="#DataType-3012"><span class="linenos">3012</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3013"><a href="#DataType-3013"><span class="linenos">3013</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3014"><a href="#DataType-3014"><span class="linenos">3014</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3015"><a href="#DataType-3015"><span class="linenos">3015</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3016"><a href="#DataType-3016"><span class="linenos">3016</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3017"><a href="#DataType-3017"><span class="linenos">3017</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3018"><a href="#DataType-3018"><span class="linenos">3018</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3019"><a href="#DataType-3019"><span class="linenos">3019</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3020"><a href="#DataType-3020"><span class="linenos">3020</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3021"><a href="#DataType-3021"><span class="linenos">3021</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3022"><a href="#DataType-3022"><span class="linenos">3022</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3023"><a href="#DataType-3023"><span class="linenos">3023</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-3024"><a href="#DataType-3024"><span class="linenos">3024</span></a>
-</span><span id="DataType-3025"><a href="#DataType-3025"><span class="linenos">3025</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3026"><a href="#DataType-3026"><span class="linenos">3026</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="DataType-3027"><a href="#DataType-3027"><span class="linenos">3027</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="DataType-3028"><a href="#DataType-3028"><span class="linenos">3028</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="DataType-3029"><a href="#DataType-3029"><span class="linenos">3029</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="DataType-3030"><a href="#DataType-3030"><span class="linenos">3030</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="DataType-3031"><a href="#DataType-3031"><span class="linenos">3031</span></a> <span class="p">}</span>
-</span><span id="DataType-3032"><a href="#DataType-3032"><span class="linenos">3032</span></a>
-</span><span id="DataType-3033"><a href="#DataType-3033"><span class="linenos">3033</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3034"><a href="#DataType-3034"><span class="linenos">3034</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="DataType-3035"><a href="#DataType-3035"><span class="linenos">3035</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="DataType-3036"><a href="#DataType-3036"><span class="linenos">3036</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="DataType-3037"><a href="#DataType-3037"><span class="linenos">3037</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="DataType-3038"><a href="#DataType-3038"><span class="linenos">3038</span></a> <span class="p">}</span>
-</span><span id="DataType-3039"><a href="#DataType-3039"><span class="linenos">3039</span></a>
-</span><span id="DataType-3040"><a href="#DataType-3040"><span class="linenos">3040</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3041"><a href="#DataType-3041"><span class="linenos">3041</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="DataType-3042"><a href="#DataType-3042"><span class="linenos">3042</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="DataType-3043"><a href="#DataType-3043"><span class="linenos">3043</span></a> <span class="p">}</span>
-</span><span id="DataType-3044"><a href="#DataType-3044"><span class="linenos">3044</span></a>
-</span><span id="DataType-3045"><a href="#DataType-3045"><span class="linenos">3045</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
-</span><span id="DataType-3046"><a href="#DataType-3046"><span class="linenos">3046</span></a>
-</span><span id="DataType-3047"><a href="#DataType-3047"><span class="linenos">3047</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3048"><a href="#DataType-3048"><span class="linenos">3048</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="DataType-3049"><a href="#DataType-3049"><span class="linenos">3049</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="DataType-3050"><a href="#DataType-3050"><span class="linenos">3050</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="DataType-3051"><a href="#DataType-3051"><span class="linenos">3051</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="DataType-3052"><a href="#DataType-3052"><span class="linenos">3052</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="DataType-3053"><a href="#DataType-3053"><span class="linenos">3053</span></a> <span class="p">}</span>
-</span><span id="DataType-3054"><a href="#DataType-3054"><span class="linenos">3054</span></a>
-</span><span id="DataType-3055"><a href="#DataType-3055"><span class="linenos">3055</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType-3056"><a href="#DataType-3056"><span class="linenos">3056</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType-3057"><a href="#DataType-3057"><span class="linenos">3057</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="DataType-3058"><a href="#DataType-3058"><span class="linenos">3058</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="DataType-3059"><a href="#DataType-3059"><span class="linenos">3059</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-3060"><a href="#DataType-3060"><span class="linenos">3060</span></a>
-</span><span id="DataType-3061"><a href="#DataType-3061"><span class="linenos">3061</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-3062"><a href="#DataType-3062"><span class="linenos">3062</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="DataType-3063"><a href="#DataType-3063"><span class="linenos">3063</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="DataType-3064"><a href="#DataType-3064"><span class="linenos">3064</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-3065"><a href="#DataType-3065"><span class="linenos">3065</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
-</span><span id="DataType-3066"><a href="#DataType-3066"><span class="linenos">3066</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="DataType-3067"><a href="#DataType-3067"><span class="linenos">3067</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="DataType-3068"><a href="#DataType-3068"><span class="linenos">3068</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-3069"><a href="#DataType-3069"><span class="linenos">3069</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-3070"><a href="#DataType-3070"><span class="linenos">3070</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-3071"><a href="#DataType-3071"><span class="linenos">3071</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType-3072"><a href="#DataType-3072"><span class="linenos">3072</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-3073"><a href="#DataType-3073"><span class="linenos">3073</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-3074"><a href="#DataType-3074"><span class="linenos">3074</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-3075"><a href="#DataType-3075"><span class="linenos">3075</span></a>
-</span><span id="DataType-3076"><a href="#DataType-3076"><span class="linenos">3076</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType-3077"><a href="#DataType-3077"><span class="linenos">3077</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-3204"><a href="#DataType-3204"><span class="linenos">3204</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-3205"><a href="#DataType-3205"><span class="linenos">3205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3206"><a href="#DataType-3206"><span class="linenos">3206</span></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-3207"><a href="#DataType-3207"><span class="linenos">3207</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-3208"><a href="#DataType-3208"><span class="linenos">3208</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-3209"><a href="#DataType-3209"><span class="linenos">3209</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-3210"><a href="#DataType-3210"><span class="linenos">3210</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-3211"><a href="#DataType-3211"><span class="linenos">3211</span></a> <span class="p">}</span>
+</span><span id="DataType-3212"><a href="#DataType-3212"><span class="linenos">3212</span></a>
+</span><span id="DataType-3213"><a href="#DataType-3213"><span class="linenos">3213</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-3214"><a href="#DataType-3214"><span class="linenos">3214</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3215"><a href="#DataType-3215"><span class="linenos">3215</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3216"><a href="#DataType-3216"><span class="linenos">3216</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3217"><a href="#DataType-3217"><span class="linenos">3217</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3218"><a href="#DataType-3218"><span class="linenos">3218</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3219"><a href="#DataType-3219"><span class="linenos">3219</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3220"><a href="#DataType-3220"><span class="linenos">3220</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3221"><a href="#DataType-3221"><span class="linenos">3221</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3222"><a href="#DataType-3222"><span class="linenos">3222</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3223"><a href="#DataType-3223"><span class="linenos">3223</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3224"><a href="#DataType-3224"><span class="linenos">3224</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3225"><a href="#DataType-3225"><span class="linenos">3225</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3226"><a href="#DataType-3226"><span class="linenos">3226</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3227"><a href="#DataType-3227"><span class="linenos">3227</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3228"><a href="#DataType-3228"><span class="linenos">3228</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3229"><a href="#DataType-3229"><span class="linenos">3229</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3230"><a href="#DataType-3230"><span class="linenos">3230</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3231"><a href="#DataType-3231"><span class="linenos">3231</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3232"><a href="#DataType-3232"><span class="linenos">3232</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3233"><a href="#DataType-3233"><span class="linenos">3233</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3234"><a href="#DataType-3234"><span class="linenos">3234</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3235"><a href="#DataType-3235"><span class="linenos">3235</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3236"><a href="#DataType-3236"><span class="linenos">3236</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3237"><a href="#DataType-3237"><span class="linenos">3237</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3238"><a href="#DataType-3238"><span class="linenos">3238</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3239"><a href="#DataType-3239"><span class="linenos">3239</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3240"><a href="#DataType-3240"><span class="linenos">3240</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3241"><a href="#DataType-3241"><span class="linenos">3241</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3242"><a href="#DataType-3242"><span class="linenos">3242</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3243"><a href="#DataType-3243"><span class="linenos">3243</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3244"><a href="#DataType-3244"><span class="linenos">3244</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3245"><a href="#DataType-3245"><span class="linenos">3245</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3246"><a href="#DataType-3246"><span class="linenos">3246</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3247"><a href="#DataType-3247"><span class="linenos">3247</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3248"><a href="#DataType-3248"><span class="linenos">3248</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3249"><a href="#DataType-3249"><span class="linenos">3249</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3250"><a href="#DataType-3250"><span class="linenos">3250</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3251"><a href="#DataType-3251"><span class="linenos">3251</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3252"><a href="#DataType-3252"><span class="linenos">3252</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3253"><a href="#DataType-3253"><span class="linenos">3253</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3254"><a href="#DataType-3254"><span class="linenos">3254</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3255"><a href="#DataType-3255"><span class="linenos">3255</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3256"><a href="#DataType-3256"><span class="linenos">3256</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3257"><a href="#DataType-3257"><span class="linenos">3257</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3258"><a href="#DataType-3258"><span class="linenos">3258</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3259"><a href="#DataType-3259"><span class="linenos">3259</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3260"><a href="#DataType-3260"><span class="linenos">3260</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3261"><a href="#DataType-3261"><span class="linenos">3261</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3262"><a href="#DataType-3262"><span class="linenos">3262</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3263"><a href="#DataType-3263"><span class="linenos">3263</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3264"><a href="#DataType-3264"><span class="linenos">3264</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3265"><a href="#DataType-3265"><span class="linenos">3265</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3266"><a href="#DataType-3266"><span class="linenos">3266</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3267"><a href="#DataType-3267"><span class="linenos">3267</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3268"><a href="#DataType-3268"><span class="linenos">3268</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-3269"><a href="#DataType-3269"><span class="linenos">3269</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3270"><a href="#DataType-3270"><span class="linenos">3270</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3271"><a href="#DataType-3271"><span class="linenos">3271</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3272"><a href="#DataType-3272"><span class="linenos">3272</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3273"><a href="#DataType-3273"><span class="linenos">3273</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3274"><a href="#DataType-3274"><span class="linenos">3274</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3275"><a href="#DataType-3275"><span class="linenos">3275</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3276"><a href="#DataType-3276"><span class="linenos">3276</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3277"><a href="#DataType-3277"><span class="linenos">3277</span></a>
+</span><span id="DataType-3278"><a href="#DataType-3278"><span class="linenos">3278</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3279"><a href="#DataType-3279"><span class="linenos">3279</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="DataType-3280"><a href="#DataType-3280"><span class="linenos">3280</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="DataType-3281"><a href="#DataType-3281"><span class="linenos">3281</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="DataType-3282"><a href="#DataType-3282"><span class="linenos">3282</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="DataType-3283"><a href="#DataType-3283"><span class="linenos">3283</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="DataType-3284"><a href="#DataType-3284"><span class="linenos">3284</span></a> <span class="p">}</span>
+</span><span id="DataType-3285"><a href="#DataType-3285"><span class="linenos">3285</span></a>
+</span><span id="DataType-3286"><a href="#DataType-3286"><span class="linenos">3286</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3287"><a href="#DataType-3287"><span class="linenos">3287</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="DataType-3288"><a href="#DataType-3288"><span class="linenos">3288</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="DataType-3289"><a href="#DataType-3289"><span class="linenos">3289</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="DataType-3290"><a href="#DataType-3290"><span class="linenos">3290</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="DataType-3291"><a href="#DataType-3291"><span class="linenos">3291</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
+</span><span id="DataType-3292"><a href="#DataType-3292"><span class="linenos">3292</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
+</span><span id="DataType-3293"><a href="#DataType-3293"><span class="linenos">3293</span></a> <span class="p">}</span>
+</span><span id="DataType-3294"><a href="#DataType-3294"><span class="linenos">3294</span></a>
+</span><span id="DataType-3295"><a href="#DataType-3295"><span class="linenos">3295</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3296"><a href="#DataType-3296"><span class="linenos">3296</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="DataType-3297"><a href="#DataType-3297"><span class="linenos">3297</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="DataType-3298"><a href="#DataType-3298"><span class="linenos">3298</span></a> <span class="p">}</span>
+</span><span id="DataType-3299"><a href="#DataType-3299"><span class="linenos">3299</span></a>
+</span><span id="DataType-3300"><a href="#DataType-3300"><span class="linenos">3300</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
+</span><span id="DataType-3301"><a href="#DataType-3301"><span class="linenos">3301</span></a>
+</span><span id="DataType-3302"><a href="#DataType-3302"><span class="linenos">3302</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3303"><a href="#DataType-3303"><span class="linenos">3303</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="DataType-3304"><a href="#DataType-3304"><span class="linenos">3304</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="DataType-3305"><a href="#DataType-3305"><span class="linenos">3305</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="DataType-3306"><a href="#DataType-3306"><span class="linenos">3306</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="DataType-3307"><a href="#DataType-3307"><span class="linenos">3307</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="DataType-3308"><a href="#DataType-3308"><span class="linenos">3308</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
+</span><span id="DataType-3309"><a href="#DataType-3309"><span class="linenos">3309</span></a> <span class="p">}</span>
+</span><span id="DataType-3310"><a href="#DataType-3310"><span class="linenos">3310</span></a>
+</span><span id="DataType-3311"><a href="#DataType-3311"><span class="linenos">3311</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType-3312"><a href="#DataType-3312"><span class="linenos">3312</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType-3313"><a href="#DataType-3313"><span class="linenos">3313</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="DataType-3314"><a href="#DataType-3314"><span class="linenos">3314</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="DataType-3315"><a href="#DataType-3315"><span class="linenos">3315</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-3316"><a href="#DataType-3316"><span class="linenos">3316</span></a>
+</span><span id="DataType-3317"><a href="#DataType-3317"><span class="linenos">3317</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-3318"><a href="#DataType-3318"><span class="linenos">3318</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="DataType-3319"><a href="#DataType-3319"><span class="linenos">3319</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="DataType-3320"><a href="#DataType-3320"><span class="linenos">3320</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-3321"><a href="#DataType-3321"><span class="linenos">3321</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
+</span><span id="DataType-3322"><a href="#DataType-3322"><span class="linenos">3322</span></a>
+</span><span id="DataType-3323"><a href="#DataType-3323"><span class="linenos">3323</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="DataType-3324"><a href="#DataType-3324"><span class="linenos">3324</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="DataType-3325"><a href="#DataType-3325"><span class="linenos">3325</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-3326"><a href="#DataType-3326"><span class="linenos">3326</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-3327"><a href="#DataType-3327"><span class="linenos">3327</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-3328"><a href="#DataType-3328"><span class="linenos">3328</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType-3329"><a href="#DataType-3329"><span class="linenos">3329</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-3330"><a href="#DataType-3330"><span class="linenos">3330</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-3331"><a href="#DataType-3331"><span class="linenos">3331</span></a>
+</span><span id="DataType-3332"><a href="#DataType-3332"><span class="linenos">3332</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-3333"><a href="#DataType-3333"><span class="linenos">3333</span></a>
+</span><span id="DataType-3334"><a href="#DataType-3334"><span class="linenos">3334</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType-3335"><a href="#DataType-3335"><span class="linenos">3335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
@@ -25897,26 +27341,28 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-3055"><a href="#DataType.build-3055"><span class="linenos">3055</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType.build-3056"><a href="#DataType.build-3056"><span class="linenos">3056</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType.build-3057"><a href="#DataType.build-3057"><span class="linenos">3057</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="DataType.build-3058"><a href="#DataType.build-3058"><span class="linenos">3058</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-3059"><a href="#DataType.build-3059"><span class="linenos">3059</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-3060"><a href="#DataType.build-3060"><span class="linenos">3060</span></a>
-</span><span id="DataType.build-3061"><a href="#DataType.build-3061"><span class="linenos">3061</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-3062"><a href="#DataType.build-3062"><span class="linenos">3062</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="DataType.build-3063"><a href="#DataType.build-3063"><span class="linenos">3063</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="DataType.build-3064"><a href="#DataType.build-3064"><span class="linenos">3064</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-3065"><a href="#DataType.build-3065"><span class="linenos">3065</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
-</span><span id="DataType.build-3066"><a href="#DataType.build-3066"><span class="linenos">3066</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="DataType.build-3067"><a href="#DataType.build-3067"><span class="linenos">3067</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="DataType.build-3068"><a href="#DataType.build-3068"><span class="linenos">3068</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-3069"><a href="#DataType.build-3069"><span class="linenos">3069</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-3070"><a href="#DataType.build-3070"><span class="linenos">3070</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-3071"><a href="#DataType.build-3071"><span class="linenos">3071</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType.build-3072"><a href="#DataType.build-3072"><span class="linenos">3072</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-3073"><a href="#DataType.build-3073"><span class="linenos">3073</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-3074"><a href="#DataType.build-3074"><span class="linenos">3074</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-3311"><a href="#DataType.build-3311"><span class="linenos">3311</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType.build-3312"><a href="#DataType.build-3312"><span class="linenos">3312</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType.build-3313"><a href="#DataType.build-3313"><span class="linenos">3313</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="DataType.build-3314"><a href="#DataType.build-3314"><span class="linenos">3314</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-3315"><a href="#DataType.build-3315"><span class="linenos">3315</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-3316"><a href="#DataType.build-3316"><span class="linenos">3316</span></a>
+</span><span id="DataType.build-3317"><a href="#DataType.build-3317"><span class="linenos">3317</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-3318"><a href="#DataType.build-3318"><span class="linenos">3318</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="DataType.build-3319"><a href="#DataType.build-3319"><span class="linenos">3319</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="DataType.build-3320"><a href="#DataType.build-3320"><span class="linenos">3320</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-3321"><a href="#DataType.build-3321"><span class="linenos">3321</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
+</span><span id="DataType.build-3322"><a href="#DataType.build-3322"><span class="linenos">3322</span></a>
+</span><span id="DataType.build-3323"><a href="#DataType.build-3323"><span class="linenos">3323</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="DataType.build-3324"><a href="#DataType.build-3324"><span class="linenos">3324</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="DataType.build-3325"><a href="#DataType.build-3325"><span class="linenos">3325</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-3326"><a href="#DataType.build-3326"><span class="linenos">3326</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-3327"><a href="#DataType.build-3327"><span class="linenos">3327</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-3328"><a href="#DataType.build-3328"><span class="linenos">3328</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType.build-3329"><a href="#DataType.build-3329"><span class="linenos">3329</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-3330"><a href="#DataType.build-3330"><span class="linenos">3330</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-3331"><a href="#DataType.build-3331"><span class="linenos">3331</span></a>
+</span><span id="DataType.build-3332"><a href="#DataType.build-3332"><span class="linenos">3332</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>
@@ -25934,8 +27380,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-3076"><a href="#DataType.is_type-3076"><span class="linenos">3076</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType.is_type-3077"><a href="#DataType.is_type-3077"><span class="linenos">3077</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-3334"><a href="#DataType.is_type-3334"><span class="linenos">3334</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType.is_type-3335"><a href="#DataType.is_type-3335"><span class="linenos">3335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
@@ -25958,6 +27404,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="DataType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DataType.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DataType.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DataType.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DataType.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -25999,65 +27446,70 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.Type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-2965"><a href="#DataType.Type-2965"><span class="linenos">2965</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-2966"><a href="#DataType.Type-2966"><span class="linenos">2966</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-2967"><a href="#DataType.Type-2967"><span class="linenos">2967</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-2968"><a href="#DataType.Type-2968"><span class="linenos">2968</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-2969"><a href="#DataType.Type-2969"><span class="linenos">2969</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-2970"><a href="#DataType.Type-2970"><span class="linenos">2970</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-2971"><a href="#DataType.Type-2971"><span class="linenos">2971</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-2972"><a href="#DataType.Type-2972"><span class="linenos">2972</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-2973"><a href="#DataType.Type-2973"><span class="linenos">2973</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-2974"><a href="#DataType.Type-2974"><span class="linenos">2974</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-2975"><a href="#DataType.Type-2975"><span class="linenos">2975</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-2976"><a href="#DataType.Type-2976"><span class="linenos">2976</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-2977"><a href="#DataType.Type-2977"><span class="linenos">2977</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-2978"><a href="#DataType.Type-2978"><span class="linenos">2978</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-2979"><a href="#DataType.Type-2979"><span class="linenos">2979</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-2980"><a href="#DataType.Type-2980"><span class="linenos">2980</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-2981"><a href="#DataType.Type-2981"><span class="linenos">2981</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-2982"><a href="#DataType.Type-2982"><span class="linenos">2982</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-2983"><a href="#DataType.Type-2983"><span class="linenos">2983</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-2984"><a href="#DataType.Type-2984"><span class="linenos">2984</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-2985"><a href="#DataType.Type-2985"><span class="linenos">2985</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-2986"><a href="#DataType.Type-2986"><span class="linenos">2986</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-2987"><a href="#DataType.Type-2987"><span class="linenos">2987</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-2988"><a href="#DataType.Type-2988"><span class="linenos">2988</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-2989"><a href="#DataType.Type-2989"><span class="linenos">2989</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-2990"><a href="#DataType.Type-2990"><span class="linenos">2990</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-2991"><a href="#DataType.Type-2991"><span class="linenos">2991</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-2992"><a href="#DataType.Type-2992"><span class="linenos">2992</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-2993"><a href="#DataType.Type-2993"><span class="linenos">2993</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-2994"><a href="#DataType.Type-2994"><span class="linenos">2994</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-2995"><a href="#DataType.Type-2995"><span class="linenos">2995</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-2996"><a href="#DataType.Type-2996"><span class="linenos">2996</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-2997"><a href="#DataType.Type-2997"><span class="linenos">2997</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-2998"><a href="#DataType.Type-2998"><span class="linenos">2998</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-2999"><a href="#DataType.Type-2999"><span class="linenos">2999</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-3000"><a href="#DataType.Type-3000"><span class="linenos">3000</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-3001"><a href="#DataType.Type-3001"><span class="linenos">3001</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-3002"><a href="#DataType.Type-3002"><span class="linenos">3002</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-3003"><a href="#DataType.Type-3003"><span class="linenos">3003</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-3004"><a href="#DataType.Type-3004"><span class="linenos">3004</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-3005"><a href="#DataType.Type-3005"><span class="linenos">3005</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-3006"><a href="#DataType.Type-3006"><span class="linenos">3006</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-3007"><a href="#DataType.Type-3007"><span class="linenos">3007</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-3008"><a href="#DataType.Type-3008"><span class="linenos">3008</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-3009"><a href="#DataType.Type-3009"><span class="linenos">3009</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-3010"><a href="#DataType.Type-3010"><span class="linenos">3010</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-3011"><a href="#DataType.Type-3011"><span class="linenos">3011</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-3012"><a href="#DataType.Type-3012"><span class="linenos">3012</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-3013"><a href="#DataType.Type-3013"><span class="linenos">3013</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-3014"><a href="#DataType.Type-3014"><span class="linenos">3014</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-3015"><a href="#DataType.Type-3015"><span class="linenos">3015</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-3016"><a href="#DataType.Type-3016"><span class="linenos">3016</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-3017"><a href="#DataType.Type-3017"><span class="linenos">3017</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-3018"><a href="#DataType.Type-3018"><span class="linenos">3018</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-3019"><a href="#DataType.Type-3019"><span class="linenos">3019</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-3020"><a href="#DataType.Type-3020"><span class="linenos">3020</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-3021"><a href="#DataType.Type-3021"><span class="linenos">3021</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-3022"><a href="#DataType.Type-3022"><span class="linenos">3022</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-3023"><a href="#DataType.Type-3023"><span class="linenos">3023</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-3213"><a href="#DataType.Type-3213"><span class="linenos">3213</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-3214"><a href="#DataType.Type-3214"><span class="linenos">3214</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-3215"><a href="#DataType.Type-3215"><span class="linenos">3215</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-3216"><a href="#DataType.Type-3216"><span class="linenos">3216</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-3217"><a href="#DataType.Type-3217"><span class="linenos">3217</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-3218"><a href="#DataType.Type-3218"><span class="linenos">3218</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-3219"><a href="#DataType.Type-3219"><span class="linenos">3219</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-3220"><a href="#DataType.Type-3220"><span class="linenos">3220</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-3221"><a href="#DataType.Type-3221"><span class="linenos">3221</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-3222"><a href="#DataType.Type-3222"><span class="linenos">3222</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-3223"><a href="#DataType.Type-3223"><span class="linenos">3223</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-3224"><a href="#DataType.Type-3224"><span class="linenos">3224</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-3225"><a href="#DataType.Type-3225"><span class="linenos">3225</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-3226"><a href="#DataType.Type-3226"><span class="linenos">3226</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-3227"><a href="#DataType.Type-3227"><span class="linenos">3227</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-3228"><a href="#DataType.Type-3228"><span class="linenos">3228</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-3229"><a href="#DataType.Type-3229"><span class="linenos">3229</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-3230"><a href="#DataType.Type-3230"><span class="linenos">3230</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-3231"><a href="#DataType.Type-3231"><span class="linenos">3231</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-3232"><a href="#DataType.Type-3232"><span class="linenos">3232</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-3233"><a href="#DataType.Type-3233"><span class="linenos">3233</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-3234"><a href="#DataType.Type-3234"><span class="linenos">3234</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-3235"><a href="#DataType.Type-3235"><span class="linenos">3235</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-3236"><a href="#DataType.Type-3236"><span class="linenos">3236</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-3237"><a href="#DataType.Type-3237"><span class="linenos">3237</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-3238"><a href="#DataType.Type-3238"><span class="linenos">3238</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-3239"><a href="#DataType.Type-3239"><span class="linenos">3239</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-3240"><a href="#DataType.Type-3240"><span class="linenos">3240</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-3241"><a href="#DataType.Type-3241"><span class="linenos">3241</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-3242"><a href="#DataType.Type-3242"><span class="linenos">3242</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-3243"><a href="#DataType.Type-3243"><span class="linenos">3243</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-3244"><a href="#DataType.Type-3244"><span class="linenos">3244</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-3245"><a href="#DataType.Type-3245"><span class="linenos">3245</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-3246"><a href="#DataType.Type-3246"><span class="linenos">3246</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-3247"><a href="#DataType.Type-3247"><span class="linenos">3247</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-3248"><a href="#DataType.Type-3248"><span class="linenos">3248</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-3249"><a href="#DataType.Type-3249"><span class="linenos">3249</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-3250"><a href="#DataType.Type-3250"><span class="linenos">3250</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-3251"><a href="#DataType.Type-3251"><span class="linenos">3251</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-3252"><a href="#DataType.Type-3252"><span class="linenos">3252</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-3253"><a href="#DataType.Type-3253"><span class="linenos">3253</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-3254"><a href="#DataType.Type-3254"><span class="linenos">3254</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-3255"><a href="#DataType.Type-3255"><span class="linenos">3255</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-3256"><a href="#DataType.Type-3256"><span class="linenos">3256</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-3257"><a href="#DataType.Type-3257"><span class="linenos">3257</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-3258"><a href="#DataType.Type-3258"><span class="linenos">3258</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-3259"><a href="#DataType.Type-3259"><span class="linenos">3259</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-3260"><a href="#DataType.Type-3260"><span class="linenos">3260</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-3261"><a href="#DataType.Type-3261"><span class="linenos">3261</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-3262"><a href="#DataType.Type-3262"><span class="linenos">3262</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-3263"><a href="#DataType.Type-3263"><span class="linenos">3263</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-3264"><a href="#DataType.Type-3264"><span class="linenos">3264</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-3265"><a href="#DataType.Type-3265"><span class="linenos">3265</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-3266"><a href="#DataType.Type-3266"><span class="linenos">3266</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-3267"><a href="#DataType.Type-3267"><span class="linenos">3267</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-3268"><a href="#DataType.Type-3268"><span class="linenos">3268</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-3269"><a href="#DataType.Type-3269"><span class="linenos">3269</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-3270"><a href="#DataType.Type-3270"><span class="linenos">3270</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-3271"><a href="#DataType.Type-3271"><span class="linenos">3271</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-3272"><a href="#DataType.Type-3272"><span class="linenos">3272</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-3273"><a href="#DataType.Type-3273"><span class="linenos">3273</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-3274"><a href="#DataType.Type-3274"><span class="linenos">3274</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-3275"><a href="#DataType.Type-3275"><span class="linenos">3275</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-3276"><a href="#DataType.Type-3276"><span class="linenos">3276</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -26065,302 +27517,290 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
- <div id="DataType.Type.CHAR" class="classattr">
- <div class="attr variable">
- <span class="name">CHAR</span> =
-<span class="default_value">&lt;Type.CHAR: &#39;CHAR&#39;&gt;</span>
-
-
- </div>
- <a class="headerlink" href="#DataType.Type.CHAR"></a>
-
-
-
- </div>
- <div id="DataType.Type.NCHAR" class="classattr">
+ <div id="DataType.Type.ARRAY" class="classattr">
<div class="attr variable">
- <span class="name">NCHAR</span> =
-<span class="default_value">&lt;Type.NCHAR: &#39;NCHAR&#39;&gt;</span>
+ <span class="name">ARRAY</span> =
+<span class="default_value">&lt;Type.ARRAY: &#39;ARRAY&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.NCHAR"></a>
+ <a class="headerlink" href="#DataType.Type.ARRAY"></a>
</div>
- <div id="DataType.Type.VARCHAR" class="classattr">
+ <div id="DataType.Type.BIGDECIMAL" class="classattr">
<div class="attr variable">
- <span class="name">VARCHAR</span> =
-<span class="default_value">&lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;</span>
+ <span class="name">BIGDECIMAL</span> =
+<span class="default_value">&lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.VARCHAR"></a>
+ <a class="headerlink" href="#DataType.Type.BIGDECIMAL"></a>
</div>
- <div id="DataType.Type.NVARCHAR" class="classattr">
+ <div id="DataType.Type.BIGINT" class="classattr">
<div class="attr variable">
- <span class="name">NVARCHAR</span> =
-<span class="default_value">&lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;</span>
+ <span class="name">BIGINT</span> =
+<span class="default_value">&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.NVARCHAR"></a>
+ <a class="headerlink" href="#DataType.Type.BIGINT"></a>
</div>
- <div id="DataType.Type.TEXT" class="classattr">
+ <div id="DataType.Type.BIGSERIAL" class="classattr">
<div class="attr variable">
- <span class="name">TEXT</span> =
-<span class="default_value">&lt;Type.TEXT: &#39;TEXT&#39;&gt;</span>
+ <span class="name">BIGSERIAL</span> =
+<span class="default_value">&lt;Type.BIGSERIAL: &#39;BIGSERIAL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.TEXT"></a>
+ <a class="headerlink" href="#DataType.Type.BIGSERIAL"></a>
</div>
- <div id="DataType.Type.MEDIUMTEXT" class="classattr">
+ <div id="DataType.Type.BINARY" class="classattr">
<div class="attr variable">
- <span class="name">MEDIUMTEXT</span> =
-<span class="default_value">&lt;Type.MEDIUMTEXT: &#39;MEDIUMTEXT&#39;&gt;</span>
+ <span class="name">BINARY</span> =
+<span class="default_value">&lt;Type.BINARY: &#39;BINARY&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.MEDIUMTEXT"></a>
+ <a class="headerlink" href="#DataType.Type.BINARY"></a>
</div>
- <div id="DataType.Type.LONGTEXT" class="classattr">
+ <div id="DataType.Type.BIT" class="classattr">
<div class="attr variable">
- <span class="name">LONGTEXT</span> =
-<span class="default_value">&lt;Type.LONGTEXT: &#39;LONGTEXT&#39;&gt;</span>
+ <span class="name">BIT</span> =
+<span class="default_value">&lt;Type.BIT: &#39;BIT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.LONGTEXT"></a>
+ <a class="headerlink" href="#DataType.Type.BIT"></a>
</div>
- <div id="DataType.Type.MEDIUMBLOB" class="classattr">
+ <div id="DataType.Type.BOOLEAN" class="classattr">
<div class="attr variable">
- <span class="name">MEDIUMBLOB</span> =
-<span class="default_value">&lt;Type.MEDIUMBLOB: &#39;MEDIUMBLOB&#39;&gt;</span>
+ <span class="name">BOOLEAN</span> =
+<span class="default_value">&lt;Type.BOOLEAN: &#39;BOOLEAN&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.MEDIUMBLOB"></a>
+ <a class="headerlink" href="#DataType.Type.BOOLEAN"></a>
</div>
- <div id="DataType.Type.LONGBLOB" class="classattr">
+ <div id="DataType.Type.CHAR" class="classattr">
<div class="attr variable">
- <span class="name">LONGBLOB</span> =
-<span class="default_value">&lt;Type.LONGBLOB: &#39;LONGBLOB&#39;&gt;</span>
+ <span class="name">CHAR</span> =
+<span class="default_value">&lt;Type.CHAR: &#39;CHAR&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.LONGBLOB"></a>
+ <a class="headerlink" href="#DataType.Type.CHAR"></a>
</div>
- <div id="DataType.Type.BINARY" class="classattr">
+ <div id="DataType.Type.DATE" class="classattr">
<div class="attr variable">
- <span class="name">BINARY</span> =
-<span class="default_value">&lt;Type.BINARY: &#39;BINARY&#39;&gt;</span>
+ <span class="name">DATE</span> =
+<span class="default_value">&lt;Type.DATE: &#39;DATE&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.BINARY"></a>
+ <a class="headerlink" href="#DataType.Type.DATE"></a>
</div>
- <div id="DataType.Type.VARBINARY" class="classattr">
+ <div id="DataType.Type.DATETIME" class="classattr">
<div class="attr variable">
- <span class="name">VARBINARY</span> =
-<span class="default_value">&lt;Type.VARBINARY: &#39;VARBINARY&#39;&gt;</span>
+ <span class="name">DATETIME</span> =
+<span class="default_value">&lt;Type.DATETIME: &#39;DATETIME&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.VARBINARY"></a>
+ <a class="headerlink" href="#DataType.Type.DATETIME"></a>
</div>
- <div id="DataType.Type.INT" class="classattr">
+ <div id="DataType.Type.DATETIME64" class="classattr">
<div class="attr variable">
- <span class="name">INT</span> =
-<span class="default_value">&lt;Type.INT: &#39;INT&#39;&gt;</span>
+ <span class="name">DATETIME64</span> =
+<span class="default_value">&lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.INT"></a>
+ <a class="headerlink" href="#DataType.Type.DATETIME64"></a>
</div>
- <div id="DataType.Type.UINT" class="classattr">
+ <div id="DataType.Type.DECIMAL" class="classattr">
<div class="attr variable">
- <span class="name">UINT</span> =
-<span class="default_value">&lt;Type.UINT: &#39;UINT&#39;&gt;</span>
+ <span class="name">DECIMAL</span> =
+<span class="default_value">&lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.UINT"></a>
+ <a class="headerlink" href="#DataType.Type.DECIMAL"></a>
</div>
- <div id="DataType.Type.TINYINT" class="classattr">
+ <div id="DataType.Type.DOUBLE" class="classattr">
<div class="attr variable">
- <span class="name">TINYINT</span> =
-<span class="default_value">&lt;Type.TINYINT: &#39;TINYINT&#39;&gt;</span>
+ <span class="name">DOUBLE</span> =
+<span class="default_value">&lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.TINYINT"></a>
+ <a class="headerlink" href="#DataType.Type.DOUBLE"></a>
</div>
- <div id="DataType.Type.UTINYINT" class="classattr">
+ <div id="DataType.Type.FLOAT" class="classattr">
<div class="attr variable">
- <span class="name">UTINYINT</span> =
-<span class="default_value">&lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;</span>
+ <span class="name">FLOAT</span> =
+<span class="default_value">&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.UTINYINT"></a>
+ <a class="headerlink" href="#DataType.Type.FLOAT"></a>
</div>
- <div id="DataType.Type.SMALLINT" class="classattr">
+ <div id="DataType.Type.GEOGRAPHY" class="classattr">
<div class="attr variable">
- <span class="name">SMALLINT</span> =
-<span class="default_value">&lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;</span>
+ <span class="name">GEOGRAPHY</span> =
+<span class="default_value">&lt;Type.GEOGRAPHY: &#39;GEOGRAPHY&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.SMALLINT"></a>
+ <a class="headerlink" href="#DataType.Type.GEOGRAPHY"></a>
</div>
- <div id="DataType.Type.USMALLINT" class="classattr">
+ <div id="DataType.Type.GEOMETRY" class="classattr">
<div class="attr variable">
- <span class="name">USMALLINT</span> =
-<span class="default_value">&lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;</span>
+ <span class="name">GEOMETRY</span> =
+<span class="default_value">&lt;Type.GEOMETRY: &#39;GEOMETRY&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.USMALLINT"></a>
+ <a class="headerlink" href="#DataType.Type.GEOMETRY"></a>
</div>
- <div id="DataType.Type.BIGINT" class="classattr">
+ <div id="DataType.Type.HLLSKETCH" class="classattr">
<div class="attr variable">
- <span class="name">BIGINT</span> =
-<span class="default_value">&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;</span>
+ <span class="name">HLLSKETCH</span> =
+<span class="default_value">&lt;Type.HLLSKETCH: &#39;HLLSKETCH&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.BIGINT"></a>
+ <a class="headerlink" href="#DataType.Type.HLLSKETCH"></a>
</div>
- <div id="DataType.Type.UBIGINT" class="classattr">
+ <div id="DataType.Type.HSTORE" class="classattr">
<div class="attr variable">
- <span class="name">UBIGINT</span> =
-<span class="default_value">&lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;</span>
+ <span class="name">HSTORE</span> =
+<span class="default_value">&lt;Type.HSTORE: &#39;HSTORE&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.UBIGINT"></a>
+ <a class="headerlink" href="#DataType.Type.HSTORE"></a>
</div>
- <div id="DataType.Type.FLOAT" class="classattr">
+ <div id="DataType.Type.IMAGE" class="classattr">
<div class="attr variable">
- <span class="name">FLOAT</span> =
-<span class="default_value">&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;</span>
+ <span class="name">IMAGE</span> =
+<span class="default_value">&lt;Type.IMAGE: &#39;IMAGE&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.FLOAT"></a>
+ <a class="headerlink" href="#DataType.Type.IMAGE"></a>
</div>
- <div id="DataType.Type.DOUBLE" class="classattr">
+ <div id="DataType.Type.INET" class="classattr">
<div class="attr variable">
- <span class="name">DOUBLE</span> =
-<span class="default_value">&lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;</span>
+ <span class="name">INET</span> =
+<span class="default_value">&lt;Type.INET: &#39;INET&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.DOUBLE"></a>
+ <a class="headerlink" href="#DataType.Type.INET"></a>
</div>
- <div id="DataType.Type.DECIMAL" class="classattr">
+ <div id="DataType.Type.INT" class="classattr">
<div class="attr variable">
- <span class="name">DECIMAL</span> =
-<span class="default_value">&lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;</span>
+ <span class="name">INT</span> =
+<span class="default_value">&lt;Type.INT: &#39;INT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.DECIMAL"></a>
+ <a class="headerlink" href="#DataType.Type.INT"></a>
</div>
- <div id="DataType.Type.BIGDECIMAL" class="classattr">
+ <div id="DataType.Type.INT128" class="classattr">
<div class="attr variable">
- <span class="name">BIGDECIMAL</span> =
-<span class="default_value">&lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;</span>
+ <span class="name">INT128</span> =
+<span class="default_value">&lt;Type.INT128: &#39;INT128&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.BIGDECIMAL"></a>
+ <a class="headerlink" href="#DataType.Type.INT128"></a>
</div>
- <div id="DataType.Type.BIT" class="classattr">
+ <div id="DataType.Type.INT256" class="classattr">
<div class="attr variable">
- <span class="name">BIT</span> =
-<span class="default_value">&lt;Type.BIT: &#39;BIT&#39;&gt;</span>
+ <span class="name">INT256</span> =
+<span class="default_value">&lt;Type.INT256: &#39;INT256&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.BIT"></a>
+ <a class="headerlink" href="#DataType.Type.INT256"></a>
</div>
- <div id="DataType.Type.BOOLEAN" class="classattr">
+ <div id="DataType.Type.INTERVAL" class="classattr">
<div class="attr variable">
- <span class="name">BOOLEAN</span> =
-<span class="default_value">&lt;Type.BOOLEAN: &#39;BOOLEAN&#39;&gt;</span>
+ <span class="name">INTERVAL</span> =
+<span class="default_value">&lt;Type.INTERVAL: &#39;INTERVAL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.BOOLEAN"></a>
+ <a class="headerlink" href="#DataType.Type.INTERVAL"></a>
@@ -26389,194 +27829,206 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
- <div id="DataType.Type.INTERVAL" class="classattr">
+ <div id="DataType.Type.LONGBLOB" class="classattr">
<div class="attr variable">
- <span class="name">INTERVAL</span> =
-<span class="default_value">&lt;Type.INTERVAL: &#39;INTERVAL&#39;&gt;</span>
+ <span class="name">LONGBLOB</span> =
+<span class="default_value">&lt;Type.LONGBLOB: &#39;LONGBLOB&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.INTERVAL"></a>
+ <a class="headerlink" href="#DataType.Type.LONGBLOB"></a>
</div>
- <div id="DataType.Type.TIME" class="classattr">
+ <div id="DataType.Type.LONGTEXT" class="classattr">
<div class="attr variable">
- <span class="name">TIME</span> =
-<span class="default_value">&lt;Type.TIME: &#39;TIME&#39;&gt;</span>
+ <span class="name">LONGTEXT</span> =
+<span class="default_value">&lt;Type.LONGTEXT: &#39;LONGTEXT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.TIME"></a>
+ <a class="headerlink" href="#DataType.Type.LONGTEXT"></a>
</div>
- <div id="DataType.Type.TIMESTAMP" class="classattr">
+ <div id="DataType.Type.MAP" class="classattr">
<div class="attr variable">
- <span class="name">TIMESTAMP</span> =
-<span class="default_value">&lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;</span>
+ <span class="name">MAP</span> =
+<span class="default_value">&lt;Type.MAP: &#39;MAP&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.TIMESTAMP"></a>
+ <a class="headerlink" href="#DataType.Type.MAP"></a>
</div>
- <div id="DataType.Type.TIMESTAMPTZ" class="classattr">
+ <div id="DataType.Type.MEDIUMBLOB" class="classattr">
<div class="attr variable">
- <span class="name">TIMESTAMPTZ</span> =
-<span class="default_value">&lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;</span>
+ <span class="name">MEDIUMBLOB</span> =
+<span class="default_value">&lt;Type.MEDIUMBLOB: &#39;MEDIUMBLOB&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.TIMESTAMPTZ"></a>
+ <a class="headerlink" href="#DataType.Type.MEDIUMBLOB"></a>
</div>
- <div id="DataType.Type.TIMESTAMPLTZ" class="classattr">
+ <div id="DataType.Type.MEDIUMTEXT" class="classattr">
<div class="attr variable">
- <span class="name">TIMESTAMPLTZ</span> =
-<span class="default_value">&lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;</span>
+ <span class="name">MEDIUMTEXT</span> =
+<span class="default_value">&lt;Type.MEDIUMTEXT: &#39;MEDIUMTEXT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.TIMESTAMPLTZ"></a>
+ <a class="headerlink" href="#DataType.Type.MEDIUMTEXT"></a>
</div>
- <div id="DataType.Type.DATE" class="classattr">
+ <div id="DataType.Type.MONEY" class="classattr">
<div class="attr variable">
- <span class="name">DATE</span> =
-<span class="default_value">&lt;Type.DATE: &#39;DATE&#39;&gt;</span>
+ <span class="name">MONEY</span> =
+<span class="default_value">&lt;Type.MONEY: &#39;MONEY&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.DATE"></a>
+ <a class="headerlink" href="#DataType.Type.MONEY"></a>
</div>
- <div id="DataType.Type.DATETIME" class="classattr">
+ <div id="DataType.Type.NCHAR" class="classattr">
<div class="attr variable">
- <span class="name">DATETIME</span> =
-<span class="default_value">&lt;Type.DATETIME: &#39;DATETIME&#39;&gt;</span>
+ <span class="name">NCHAR</span> =
+<span class="default_value">&lt;Type.NCHAR: &#39;NCHAR&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.DATETIME"></a>
+ <a class="headerlink" href="#DataType.Type.NCHAR"></a>
</div>
- <div id="DataType.Type.ARRAY" class="classattr">
+ <div id="DataType.Type.NULL" class="classattr">
<div class="attr variable">
- <span class="name">ARRAY</span> =
-<span class="default_value">&lt;Type.ARRAY: &#39;ARRAY&#39;&gt;</span>
+ <span class="name">NULL</span> =
+<span class="default_value">&lt;Type.NULL: &#39;NULL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.ARRAY"></a>
+ <a class="headerlink" href="#DataType.Type.NULL"></a>
</div>
- <div id="DataType.Type.MAP" class="classattr">
+ <div id="DataType.Type.NULLABLE" class="classattr">
<div class="attr variable">
- <span class="name">MAP</span> =
-<span class="default_value">&lt;Type.MAP: &#39;MAP&#39;&gt;</span>
+ <span class="name">NULLABLE</span> =
+<span class="default_value">&lt;Type.NULLABLE: &#39;NULLABLE&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.MAP"></a>
+ <a class="headerlink" href="#DataType.Type.NULLABLE"></a>
</div>
- <div id="DataType.Type.UUID" class="classattr">
+ <div id="DataType.Type.NVARCHAR" class="classattr">
<div class="attr variable">
- <span class="name">UUID</span> =
-<span class="default_value">&lt;Type.UUID: &#39;UUID&#39;&gt;</span>
+ <span class="name">NVARCHAR</span> =
+<span class="default_value">&lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.UUID"></a>
+ <a class="headerlink" href="#DataType.Type.NVARCHAR"></a>
</div>
- <div id="DataType.Type.GEOGRAPHY" class="classattr">
+ <div id="DataType.Type.OBJECT" class="classattr">
<div class="attr variable">
- <span class="name">GEOGRAPHY</span> =
-<span class="default_value">&lt;Type.GEOGRAPHY: &#39;GEOGRAPHY&#39;&gt;</span>
+ <span class="name">OBJECT</span> =
+<span class="default_value">&lt;Type.OBJECT: &#39;OBJECT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.GEOGRAPHY"></a>
+ <a class="headerlink" href="#DataType.Type.OBJECT"></a>
</div>
- <div id="DataType.Type.GEOMETRY" class="classattr">
+ <div id="DataType.Type.ROWVERSION" class="classattr">
<div class="attr variable">
- <span class="name">GEOMETRY</span> =
-<span class="default_value">&lt;Type.GEOMETRY: &#39;GEOMETRY&#39;&gt;</span>
+ <span class="name">ROWVERSION</span> =
+<span class="default_value">&lt;Type.ROWVERSION: &#39;ROWVERSION&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.GEOMETRY"></a>
+ <a class="headerlink" href="#DataType.Type.ROWVERSION"></a>
</div>
- <div id="DataType.Type.STRUCT" class="classattr">
+ <div id="DataType.Type.SERIAL" class="classattr">
<div class="attr variable">
- <span class="name">STRUCT</span> =
-<span class="default_value">&lt;Type.STRUCT: &#39;STRUCT&#39;&gt;</span>
+ <span class="name">SERIAL</span> =
+<span class="default_value">&lt;Type.SERIAL: &#39;SERIAL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.STRUCT"></a>
+ <a class="headerlink" href="#DataType.Type.SERIAL"></a>
</div>
- <div id="DataType.Type.NULLABLE" class="classattr">
+ <div id="DataType.Type.SMALLINT" class="classattr">
<div class="attr variable">
- <span class="name">NULLABLE</span> =
-<span class="default_value">&lt;Type.NULLABLE: &#39;NULLABLE&#39;&gt;</span>
+ <span class="name">SMALLINT</span> =
+<span class="default_value">&lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.NULLABLE"></a>
+ <a class="headerlink" href="#DataType.Type.SMALLINT"></a>
</div>
- <div id="DataType.Type.HLLSKETCH" class="classattr">
+ <div id="DataType.Type.SMALLMONEY" class="classattr">
<div class="attr variable">
- <span class="name">HLLSKETCH</span> =
-<span class="default_value">&lt;Type.HLLSKETCH: &#39;HLLSKETCH&#39;&gt;</span>
+ <span class="name">SMALLMONEY</span> =
+<span class="default_value">&lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.HLLSKETCH"></a>
+ <a class="headerlink" href="#DataType.Type.SMALLMONEY"></a>
</div>
- <div id="DataType.Type.HSTORE" class="classattr">
+ <div id="DataType.Type.SMALLSERIAL" class="classattr">
<div class="attr variable">
- <span class="name">HSTORE</span> =
-<span class="default_value">&lt;Type.HSTORE: &#39;HSTORE&#39;&gt;</span>
+ <span class="name">SMALLSERIAL</span> =
+<span class="default_value">&lt;Type.SMALLSERIAL: &#39;SMALLSERIAL&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.HSTORE"></a>
+ <a class="headerlink" href="#DataType.Type.SMALLSERIAL"></a>
+
+
+
+ </div>
+ <div id="DataType.Type.STRUCT" class="classattr">
+ <div class="attr variable">
+ <span class="name">STRUCT</span> =
+<span class="default_value">&lt;Type.STRUCT: &#39;STRUCT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.STRUCT"></a>
@@ -26593,170 +28045,230 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
- <div id="DataType.Type.SERIAL" class="classattr">
+ <div id="DataType.Type.TEXT" class="classattr">
<div class="attr variable">
- <span class="name">SERIAL</span> =
-<span class="default_value">&lt;Type.SERIAL: &#39;SERIAL&#39;&gt;</span>
+ <span class="name">TEXT</span> =
+<span class="default_value">&lt;Type.TEXT: &#39;TEXT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.SERIAL"></a>
+ <a class="headerlink" href="#DataType.Type.TEXT"></a>
</div>
- <div id="DataType.Type.SMALLSERIAL" class="classattr">
+ <div id="DataType.Type.TIME" class="classattr">
<div class="attr variable">
- <span class="name">SMALLSERIAL</span> =
-<span class="default_value">&lt;Type.SMALLSERIAL: &#39;SMALLSERIAL&#39;&gt;</span>
+ <span class="name">TIME</span> =
+<span class="default_value">&lt;Type.TIME: &#39;TIME&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.SMALLSERIAL"></a>
+ <a class="headerlink" href="#DataType.Type.TIME"></a>
</div>
- <div id="DataType.Type.BIGSERIAL" class="classattr">
+ <div id="DataType.Type.TIMESTAMP" class="classattr">
<div class="attr variable">
- <span class="name">BIGSERIAL</span> =
-<span class="default_value">&lt;Type.BIGSERIAL: &#39;BIGSERIAL&#39;&gt;</span>
+ <span class="name">TIMESTAMP</span> =
+<span class="default_value">&lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.BIGSERIAL"></a>
+ <a class="headerlink" href="#DataType.Type.TIMESTAMP"></a>
</div>
- <div id="DataType.Type.XML" class="classattr">
+ <div id="DataType.Type.TIMESTAMPTZ" class="classattr">
<div class="attr variable">
- <span class="name">XML</span> =
-<span class="default_value">&lt;Type.XML: &#39;XML&#39;&gt;</span>
+ <span class="name">TIMESTAMPTZ</span> =
+<span class="default_value">&lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.XML"></a>
+ <a class="headerlink" href="#DataType.Type.TIMESTAMPTZ"></a>
</div>
- <div id="DataType.Type.UNIQUEIDENTIFIER" class="classattr">
+ <div id="DataType.Type.TIMESTAMPLTZ" class="classattr">
<div class="attr variable">
- <span class="name">UNIQUEIDENTIFIER</span> =
-<span class="default_value">&lt;Type.UNIQUEIDENTIFIER: &#39;UNIQUEIDENTIFIER&#39;&gt;</span>
+ <span class="name">TIMESTAMPLTZ</span> =
+<span class="default_value">&lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.UNIQUEIDENTIFIER"></a>
+ <a class="headerlink" href="#DataType.Type.TIMESTAMPLTZ"></a>
</div>
- <div id="DataType.Type.MONEY" class="classattr">
+ <div id="DataType.Type.TINYINT" class="classattr">
<div class="attr variable">
- <span class="name">MONEY</span> =
-<span class="default_value">&lt;Type.MONEY: &#39;MONEY&#39;&gt;</span>
+ <span class="name">TINYINT</span> =
+<span class="default_value">&lt;Type.TINYINT: &#39;TINYINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.MONEY"></a>
+ <a class="headerlink" href="#DataType.Type.TINYINT"></a>
</div>
- <div id="DataType.Type.SMALLMONEY" class="classattr">
+ <div id="DataType.Type.UBIGINT" class="classattr">
<div class="attr variable">
- <span class="name">SMALLMONEY</span> =
-<span class="default_value">&lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;</span>
+ <span class="name">UBIGINT</span> =
+<span class="default_value">&lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.SMALLMONEY"></a>
+ <a class="headerlink" href="#DataType.Type.UBIGINT"></a>
</div>
- <div id="DataType.Type.ROWVERSION" class="classattr">
+ <div id="DataType.Type.UINT" class="classattr">
<div class="attr variable">
- <span class="name">ROWVERSION</span> =
-<span class="default_value">&lt;Type.ROWVERSION: &#39;ROWVERSION&#39;&gt;</span>
+ <span class="name">UINT</span> =
+<span class="default_value">&lt;Type.UINT: &#39;UINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.ROWVERSION"></a>
+ <a class="headerlink" href="#DataType.Type.UINT"></a>
</div>
- <div id="DataType.Type.IMAGE" class="classattr">
+ <div id="DataType.Type.USMALLINT" class="classattr">
<div class="attr variable">
- <span class="name">IMAGE</span> =
-<span class="default_value">&lt;Type.IMAGE: &#39;IMAGE&#39;&gt;</span>
+ <span class="name">USMALLINT</span> =
+<span class="default_value">&lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.IMAGE"></a>
+ <a class="headerlink" href="#DataType.Type.USMALLINT"></a>
</div>
- <div id="DataType.Type.VARIANT" class="classattr">
+ <div id="DataType.Type.UTINYINT" class="classattr">
<div class="attr variable">
- <span class="name">VARIANT</span> =
-<span class="default_value">&lt;Type.VARIANT: &#39;VARIANT&#39;&gt;</span>
+ <span class="name">UTINYINT</span> =
+<span class="default_value">&lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.VARIANT"></a>
+ <a class="headerlink" href="#DataType.Type.UTINYINT"></a>
</div>
- <div id="DataType.Type.OBJECT" class="classattr">
+ <div id="DataType.Type.UNKNOWN" class="classattr">
<div class="attr variable">
- <span class="name">OBJECT</span> =
-<span class="default_value">&lt;Type.OBJECT: &#39;OBJECT&#39;&gt;</span>
+ <span class="name">UNKNOWN</span> =
+<span class="default_value">&lt;Type.UNKNOWN: &#39;UNKNOWN&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.OBJECT"></a>
+ <a class="headerlink" href="#DataType.Type.UNKNOWN"></a>
</div>
- <div id="DataType.Type.INET" class="classattr">
+ <div id="DataType.Type.UINT128" class="classattr">
<div class="attr variable">
- <span class="name">INET</span> =
-<span class="default_value">&lt;Type.INET: &#39;INET&#39;&gt;</span>
+ <span class="name">UINT128</span> =
+<span class="default_value">&lt;Type.UINT128: &#39;UINT128&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.INET"></a>
+ <a class="headerlink" href="#DataType.Type.UINT128"></a>
</div>
- <div id="DataType.Type.NULL" class="classattr">
+ <div id="DataType.Type.UINT256" class="classattr">
<div class="attr variable">
- <span class="name">NULL</span> =
-<span class="default_value">&lt;Type.NULL: &#39;NULL&#39;&gt;</span>
+ <span class="name">UINT256</span> =
+<span class="default_value">&lt;Type.UINT256: &#39;UINT256&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.NULL"></a>
+ <a class="headerlink" href="#DataType.Type.UINT256"></a>
</div>
- <div id="DataType.Type.UNKNOWN" class="classattr">
+ <div id="DataType.Type.UNIQUEIDENTIFIER" class="classattr">
<div class="attr variable">
- <span class="name">UNKNOWN</span> =
-<span class="default_value">&lt;Type.UNKNOWN: &#39;UNKNOWN&#39;&gt;</span>
+ <span class="name">UNIQUEIDENTIFIER</span> =
+<span class="default_value">&lt;Type.UNIQUEIDENTIFIER: &#39;UNIQUEIDENTIFIER&#39;&gt;</span>
</div>
- <a class="headerlink" href="#DataType.Type.UNKNOWN"></a>
+ <a class="headerlink" href="#DataType.Type.UNIQUEIDENTIFIER"></a>
+
+
+
+ </div>
+ <div id="DataType.Type.UUID" class="classattr">
+ <div class="attr variable">
+ <span class="name">UUID</span> =
+<span class="default_value">&lt;Type.UUID: &#39;UUID&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.UUID"></a>
+
+
+
+ </div>
+ <div id="DataType.Type.VARBINARY" class="classattr">
+ <div class="attr variable">
+ <span class="name">VARBINARY</span> =
+<span class="default_value">&lt;Type.VARBINARY: &#39;VARBINARY&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.VARBINARY"></a>
+
+
+
+ </div>
+ <div id="DataType.Type.VARCHAR" class="classattr">
+ <div class="attr variable">
+ <span class="name">VARCHAR</span> =
+<span class="default_value">&lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.VARCHAR"></a>
+
+
+
+ </div>
+ <div id="DataType.Type.VARIANT" class="classattr">
+ <div class="attr variable">
+ <span class="name">VARIANT</span> =
+<span class="default_value">&lt;Type.VARIANT: &#39;VARIANT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.VARIANT"></a>
+
+
+
+ </div>
+ <div id="DataType.Type.XML" class="classattr">
+ <div class="attr variable">
+ <span class="name">XML</span> =
+<span class="default_value">&lt;Type.XML: &#39;XML&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.XML"></a>
@@ -26783,8 +28295,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#PseudoType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-3081"><a href="#PseudoType-3081"><span class="linenos">3081</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PseudoType-3082"><a href="#PseudoType-3082"><span class="linenos">3082</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-3339"><a href="#PseudoType-3339"><span class="linenos">3339</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PseudoType-3340"><a href="#PseudoType-3340"><span class="linenos">3340</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26806,6 +28318,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="PseudoType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PseudoType.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PseudoType.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PseudoType.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PseudoType.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -26836,70 +28349,6 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</dl>
</div>
</section>
- <section id="StructKwarg">
- <input id="StructKwarg-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">StructKwarg</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
-
- <label class="view-source-button" for="StructKwarg-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#StructKwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructKwarg-3085"><a href="#StructKwarg-3085"><span class="linenos">3085</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="StructKwarg-3086"><a href="#StructKwarg-3086"><span class="linenos">3086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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 class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="StructKwarg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="StructKwarg.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="StructKwarg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="StructKwarg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="StructKwarg.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="StructKwarg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="StructKwarg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="StructKwarg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="StructKwarg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="StructKwarg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="StructKwarg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="StructKwarg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="StructKwarg.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="StructKwarg.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="StructKwarg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="StructKwarg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="StructKwarg.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="StructKwarg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="StructKwarg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="StructKwarg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="StructKwarg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="StructKwarg.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="StructKwarg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="StructKwarg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="StructKwarg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="StructKwarg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="StructKwarg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="StructKwarg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="StructKwarg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="StructKwarg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="StructKwarg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="StructKwarg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="StructKwarg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="StructKwarg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="StructKwarg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="StructKwarg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="StructKwarg.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="SubqueryPredicate">
<input id="SubqueryPredicate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -26911,8 +28360,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SubqueryPredicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-3090"><a href="#SubqueryPredicate-3090"><span class="linenos">3090</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-3091"><a href="#SubqueryPredicate-3091"><span class="linenos">3091</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-3344"><a href="#SubqueryPredicate-3344"><span class="linenos">3344</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-3345"><a href="#SubqueryPredicate-3345"><span class="linenos">3345</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26934,6 +28383,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="SubqueryPredicate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SubqueryPredicate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SubqueryPredicate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SubqueryPredicate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SubqueryPredicate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -26965,8 +28415,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="SubqueryPredicate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SubqueryPredicate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SubqueryPredicate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SubqueryPredicate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SubqueryPredicate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SubqueryPredicate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SubqueryPredicate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SubqueryPredicate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SubqueryPredicate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SubqueryPredicate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -26988,8 +28440,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#All"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="All-3094"><a href="#All-3094"><span class="linenos">3094</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-3095"><a href="#All-3095"><span class="linenos">3095</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="All-3348"><a href="#All-3348"><span class="linenos">3348</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-3349"><a href="#All-3349"><span class="linenos">3349</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27011,6 +28463,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="All.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="All.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="All.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="All.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="All.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27042,8 +28495,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="All.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="All.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="All.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="All.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="All.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="All.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="All.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="All.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="All.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="All.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27065,8 +28520,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Any"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Any-3098"><a href="#Any-3098"><span class="linenos">3098</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-3099"><a href="#Any-3099"><span class="linenos">3099</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Any-3352"><a href="#Any-3352"><span class="linenos">3352</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-3353"><a href="#Any-3353"><span class="linenos">3353</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27088,6 +28543,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Any.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Any.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Any.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Any.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Any.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27119,8 +28575,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Any.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Any.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Any.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Any.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Any.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Any.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Any.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Any.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Any.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Any.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27142,8 +28600,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Exists"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-3102"><a href="#Exists-3102"><span class="linenos">3102</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-3103"><a href="#Exists-3103"><span class="linenos">3103</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-3356"><a href="#Exists-3356"><span class="linenos">3356</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-3357"><a href="#Exists-3357"><span class="linenos">3357</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27165,6 +28623,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Exists.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Exists.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Exists.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Exists.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Exists.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27196,8 +28655,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Exists.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Exists.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Exists.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Exists.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Exists.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Exists.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Exists.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Exists.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Exists.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Exists.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27219,8 +28680,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Command"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Command-3108"><a href="#Command-3108"><span class="linenos">3108</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-3109"><a href="#Command-3109"><span class="linenos">3109</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3362"><a href="#Command-3362"><span class="linenos">3362</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-3363"><a href="#Command-3363"><span class="linenos">3363</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27242,6 +28703,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Command.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Command.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Command.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Command.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Command.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27283,8 +28745,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Transaction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-3112"><a href="#Transaction-3112"><span class="linenos">3112</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-3113"><a href="#Transaction-3113"><span class="linenos">3113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-3366"><a href="#Transaction-3366"><span class="linenos">3366</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-3367"><a href="#Transaction-3367"><span class="linenos">3367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27306,6 +28768,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Transaction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Transaction.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Transaction.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Transaction.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Transaction.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27347,8 +28810,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Commit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-3116"><a href="#Commit-3116"><span class="linenos">3116</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-3117"><a href="#Commit-3117"><span class="linenos">3117</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-3370"><a href="#Commit-3370"><span class="linenos">3370</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-3371"><a href="#Commit-3371"><span class="linenos">3371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27370,6 +28833,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Commit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Commit.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Commit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Commit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Commit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27411,8 +28875,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Rollback"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-3120"><a href="#Rollback-3120"><span class="linenos">3120</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-3121"><a href="#Rollback-3121"><span class="linenos">3121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-3374"><a href="#Rollback-3374"><span class="linenos">3374</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-3375"><a href="#Rollback-3375"><span class="linenos">3375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27434,6 +28898,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Rollback.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Rollback.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Rollback.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Rollback.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Rollback.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27475,8 +28940,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AlterTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-3124"><a href="#AlterTable-3124"><span class="linenos">3124</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-3125"><a href="#AlterTable-3125"><span class="linenos">3125</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-3378"><a href="#AlterTable-3378"><span class="linenos">3378</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-3379"><a href="#AlterTable-3379"><span class="linenos">3379</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27498,6 +28963,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="AlterTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AlterTable.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AlterTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AlterTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AlterTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27539,8 +29005,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AddConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-3128"><a href="#AddConstraint-3128"><span class="linenos">3128</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-3129"><a href="#AddConstraint-3129"><span class="linenos">3129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3382"><a href="#AddConstraint-3382"><span class="linenos">3382</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-3383"><a href="#AddConstraint-3383"><span class="linenos">3383</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -27562,6 +29028,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="AddConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AddConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AddConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AddConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AddConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27603,8 +29070,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DropPartition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-3132"><a href="#DropPartition-3132"><span class="linenos">3132</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-3133"><a href="#DropPartition-3133"><span class="linenos">3133</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3386"><a href="#DropPartition-3386"><span class="linenos">3386</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-3387"><a href="#DropPartition-3387"><span class="linenos">3387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -27626,6 +29093,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="DropPartition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DropPartition.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DropPartition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DropPartition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DropPartition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27667,16 +29135,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Binary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-3137"><a href="#Binary-3137"><span class="linenos">3137</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-3138"><a href="#Binary-3138"><span class="linenos">3138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3139"><a href="#Binary-3139"><span class="linenos">3139</span></a>
-</span><span id="Binary-3140"><a href="#Binary-3140"><span class="linenos">3140</span></a> <span class="nd">@property</span>
-</span><span id="Binary-3141"><a href="#Binary-3141"><span class="linenos">3141</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Binary-3142"><a href="#Binary-3142"><span class="linenos">3142</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-3143"><a href="#Binary-3143"><span class="linenos">3143</span></a>
-</span><span id="Binary-3144"><a href="#Binary-3144"><span class="linenos">3144</span></a> <span class="nd">@property</span>
-</span><span id="Binary-3145"><a href="#Binary-3145"><span class="linenos">3145</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Binary-3146"><a href="#Binary-3146"><span class="linenos">3146</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-3391"><a href="#Binary-3391"><span class="linenos">3391</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-3392"><a href="#Binary-3392"><span class="linenos">3392</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3393"><a href="#Binary-3393"><span class="linenos">3393</span></a>
+</span><span id="Binary-3394"><a href="#Binary-3394"><span class="linenos">3394</span></a> <span class="nd">@property</span>
+</span><span id="Binary-3395"><a href="#Binary-3395"><span class="linenos">3395</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Binary-3396"><a href="#Binary-3396"><span class="linenos">3396</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-3397"><a href="#Binary-3397"><span class="linenos">3397</span></a>
+</span><span id="Binary-3398"><a href="#Binary-3398"><span class="linenos">3398</span></a> <span class="nd">@property</span>
+</span><span id="Binary-3399"><a href="#Binary-3399"><span class="linenos">3399</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Binary-3400"><a href="#Binary-3400"><span class="linenos">3400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -27698,6 +29166,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Binary.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Binary.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Binary.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Binary.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Binary.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27729,8 +29198,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Binary.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Binary.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Binary.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Binary.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Binary.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Binary.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Binary.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Binary.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Binary.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Binary.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27752,8 +29223,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Add"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Add-3149"><a href="#Add-3149"><span class="linenos">3149</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-3150"><a href="#Add-3150"><span class="linenos">3150</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Add-3403"><a href="#Add-3403"><span class="linenos">3403</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-3404"><a href="#Add-3404"><span class="linenos">3404</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27775,6 +29246,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Add.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Add.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Add.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Add.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Add.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27806,8 +29278,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Add.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Add.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Add.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Add.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Add.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Add.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Add.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Add.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Add.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Add.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27829,8 +29303,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Connector"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-3153"><a href="#Connector-3153"><span class="linenos">3153</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-3154"><a href="#Connector-3154"><span class="linenos">3154</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-3407"><a href="#Connector-3407"><span class="linenos">3407</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-3408"><a href="#Connector-3408"><span class="linenos">3408</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27852,6 +29326,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Connector.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Connector.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Connector.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Connector.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Connector.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27883,8 +29358,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Connector.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Connector.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Connector.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Connector.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Connector.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Connector.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Connector.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Connector.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Connector.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Connector.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27906,8 +29383,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#And"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="And-3157"><a href="#And-3157"><span class="linenos">3157</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-3158"><a href="#And-3158"><span class="linenos">3158</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="And-3411"><a href="#And-3411"><span class="linenos">3411</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-3412"><a href="#And-3412"><span class="linenos">3412</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27929,6 +29406,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="And.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="And.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="And.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="And.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="And.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -27960,8 +29438,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="And.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="And.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="And.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="And.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="And.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="And.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="And.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="And.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="And.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="And.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -27983,8 +29463,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Or"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Or-3161"><a href="#Or-3161"><span class="linenos">3161</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-3162"><a href="#Or-3162"><span class="linenos">3162</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Or-3415"><a href="#Or-3415"><span class="linenos">3415</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-3416"><a href="#Or-3416"><span class="linenos">3416</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28006,6 +29486,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Or.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Or.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Or.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Or.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Or.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28037,8 +29518,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Or.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Or.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Or.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Or.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Or.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Or.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Or.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Or.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Or.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Or.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28060,8 +29543,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-3165"><a href="#BitwiseAnd-3165"><span class="linenos">3165</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-3166"><a href="#BitwiseAnd-3166"><span class="linenos">3166</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-3419"><a href="#BitwiseAnd-3419"><span class="linenos">3419</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-3420"><a href="#BitwiseAnd-3420"><span class="linenos">3420</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28083,6 +29566,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitwiseAnd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseAnd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseAnd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28114,8 +29598,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseAnd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseAnd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseAnd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitwiseAnd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseAnd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseAnd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitwiseAnd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseAnd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseAnd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseAnd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28137,8 +29623,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseLeftShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3169"><a href="#BitwiseLeftShift-3169"><span class="linenos">3169</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-3170"><a href="#BitwiseLeftShift-3170"><span class="linenos">3170</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3423"><a href="#BitwiseLeftShift-3423"><span class="linenos">3423</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-3424"><a href="#BitwiseLeftShift-3424"><span class="linenos">3424</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28160,6 +29646,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseLeftShift.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseLeftShift.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitwiseLeftShift.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseLeftShift.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseLeftShift.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28191,8 +29678,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseLeftShift.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseLeftShift.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseLeftShift.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitwiseLeftShift.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseLeftShift.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseLeftShift.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitwiseLeftShift.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseLeftShift.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseLeftShift.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseLeftShift.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28214,8 +29703,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3173"><a href="#BitwiseOr-3173"><span class="linenos">3173</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-3174"><a href="#BitwiseOr-3174"><span class="linenos">3174</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3427"><a href="#BitwiseOr-3427"><span class="linenos">3427</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-3428"><a href="#BitwiseOr-3428"><span class="linenos">3428</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28237,6 +29726,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseOr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseOr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitwiseOr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseOr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseOr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28268,8 +29758,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseOr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseOr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseOr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitwiseOr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseOr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseOr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitwiseOr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseOr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseOr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseOr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28291,8 +29783,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseRightShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3177"><a href="#BitwiseRightShift-3177"><span class="linenos">3177</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-3178"><a href="#BitwiseRightShift-3178"><span class="linenos">3178</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3431"><a href="#BitwiseRightShift-3431"><span class="linenos">3431</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-3432"><a href="#BitwiseRightShift-3432"><span class="linenos">3432</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28314,6 +29806,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseRightShift.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseRightShift.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitwiseRightShift.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseRightShift.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseRightShift.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28345,8 +29838,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseRightShift.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseRightShift.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseRightShift.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitwiseRightShift.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseRightShift.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseRightShift.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitwiseRightShift.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseRightShift.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseRightShift.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseRightShift.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28368,8 +29863,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseXor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3181"><a href="#BitwiseXor-3181"><span class="linenos">3181</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-3182"><a href="#BitwiseXor-3182"><span class="linenos">3182</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3435"><a href="#BitwiseXor-3435"><span class="linenos">3435</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-3436"><a href="#BitwiseXor-3436"><span class="linenos">3436</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28391,6 +29886,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseXor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseXor.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitwiseXor.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseXor.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseXor.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28422,8 +29918,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseXor.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseXor.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseXor.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitwiseXor.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseXor.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseXor.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitwiseXor.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseXor.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseXor.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseXor.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28445,8 +29943,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Div"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Div-3185"><a href="#Div-3185"><span class="linenos">3185</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-3186"><a href="#Div-3186"><span class="linenos">3186</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Div-3439"><a href="#Div-3439"><span class="linenos">3439</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-3440"><a href="#Div-3440"><span class="linenos">3440</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28468,6 +29966,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Div.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Div.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Div.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Div.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Div.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28499,8 +29998,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Div.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Div.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Div.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Div.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Div.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Div.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Div.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Div.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Div.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Div.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28522,8 +30023,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Overlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3189"><a href="#Overlaps-3189"><span class="linenos">3189</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-3190"><a href="#Overlaps-3190"><span class="linenos">3190</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3443"><a href="#Overlaps-3443"><span class="linenos">3443</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-3444"><a href="#Overlaps-3444"><span class="linenos">3444</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28545,6 +30046,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Overlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Overlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Overlaps.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Overlaps.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Overlaps.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28576,8 +30078,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Overlaps.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Overlaps.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Overlaps.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Overlaps.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Overlaps.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Overlaps.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Overlaps.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Overlaps.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Overlaps.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Overlaps.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28599,24 +30103,24 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Dot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3193"><a href="#Dot-3193"><span class="linenos">3193</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-3194"><a href="#Dot-3194"><span class="linenos">3194</span></a> <span class="nd">@property</span>
-</span><span id="Dot-3195"><a href="#Dot-3195"><span class="linenos">3195</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-3196"><a href="#Dot-3196"><span class="linenos">3196</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-3197"><a href="#Dot-3197"><span class="linenos">3197</span></a>
-</span><span id="Dot-3198"><a href="#Dot-3198"><span class="linenos">3198</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot-3199"><a href="#Dot-3199"><span class="linenos">3199</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-3200"><a href="#Dot-3200"><span class="linenos">3200</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-3201"><a href="#Dot-3201"><span class="linenos">3201</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-3202"><a href="#Dot-3202"><span class="linenos">3202</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-3203"><a href="#Dot-3203"><span class="linenos">3203</span></a>
-</span><span id="Dot-3204"><a href="#Dot-3204"><span class="linenos">3204</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
-</span><span id="Dot-3205"><a href="#Dot-3205"><span class="linenos">3205</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
-</span><span id="Dot-3206"><a href="#Dot-3206"><span class="linenos">3206</span></a>
-</span><span id="Dot-3207"><a href="#Dot-3207"><span class="linenos">3207</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
-</span><span id="Dot-3208"><a href="#Dot-3208"><span class="linenos">3208</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="Dot-3209"><a href="#Dot-3209"><span class="linenos">3209</span></a>
-</span><span id="Dot-3210"><a href="#Dot-3210"><span class="linenos">3210</span></a> <span class="k">return</span> <span class="n">dot</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3447"><a href="#Dot-3447"><span class="linenos">3447</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-3448"><a href="#Dot-3448"><span class="linenos">3448</span></a> <span class="nd">@property</span>
+</span><span id="Dot-3449"><a href="#Dot-3449"><span class="linenos">3449</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-3450"><a href="#Dot-3450"><span class="linenos">3450</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-3451"><a href="#Dot-3451"><span class="linenos">3451</span></a>
+</span><span id="Dot-3452"><a href="#Dot-3452"><span class="linenos">3452</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot-3453"><a href="#Dot-3453"><span class="linenos">3453</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-3454"><a href="#Dot-3454"><span class="linenos">3454</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-3455"><a href="#Dot-3455"><span class="linenos">3455</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-3456"><a href="#Dot-3456"><span class="linenos">3456</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-3457"><a href="#Dot-3457"><span class="linenos">3457</span></a>
+</span><span id="Dot-3458"><a href="#Dot-3458"><span class="linenos">3458</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
+</span><span id="Dot-3459"><a href="#Dot-3459"><span class="linenos">3459</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
+</span><span id="Dot-3460"><a href="#Dot-3460"><span class="linenos">3460</span></a>
+</span><span id="Dot-3461"><a href="#Dot-3461"><span class="linenos">3461</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
+</span><span id="Dot-3462"><a href="#Dot-3462"><span class="linenos">3462</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="Dot-3463"><a href="#Dot-3463"><span class="linenos">3463</span></a>
+</span><span id="Dot-3464"><a href="#Dot-3464"><span class="linenos">3464</span></a> <span class="k">return</span> <span class="n">dot</span>
</span></pre></div>
@@ -28634,19 +30138,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Dot.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3198"><a href="#Dot.build-3198"><span class="linenos">3198</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot.build-3199"><a href="#Dot.build-3199"><span class="linenos">3199</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-3200"><a href="#Dot.build-3200"><span class="linenos">3200</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-3201"><a href="#Dot.build-3201"><span class="linenos">3201</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-3202"><a href="#Dot.build-3202"><span class="linenos">3202</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-3203"><a href="#Dot.build-3203"><span class="linenos">3203</span></a>
-</span><span id="Dot.build-3204"><a href="#Dot.build-3204"><span class="linenos">3204</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
-</span><span id="Dot.build-3205"><a href="#Dot.build-3205"><span class="linenos">3205</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
-</span><span id="Dot.build-3206"><a href="#Dot.build-3206"><span class="linenos">3206</span></a>
-</span><span id="Dot.build-3207"><a href="#Dot.build-3207"><span class="linenos">3207</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
-</span><span id="Dot.build-3208"><a href="#Dot.build-3208"><span class="linenos">3208</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="Dot.build-3209"><a href="#Dot.build-3209"><span class="linenos">3209</span></a>
-</span><span id="Dot.build-3210"><a href="#Dot.build-3210"><span class="linenos">3210</span></a> <span class="k">return</span> <span class="n">dot</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3452"><a href="#Dot.build-3452"><span class="linenos">3452</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot.build-3453"><a href="#Dot.build-3453"><span class="linenos">3453</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-3454"><a href="#Dot.build-3454"><span class="linenos">3454</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-3455"><a href="#Dot.build-3455"><span class="linenos">3455</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-3456"><a href="#Dot.build-3456"><span class="linenos">3456</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-3457"><a href="#Dot.build-3457"><span class="linenos">3457</span></a>
+</span><span id="Dot.build-3458"><a href="#Dot.build-3458"><span class="linenos">3458</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
+</span><span id="Dot.build-3459"><a href="#Dot.build-3459"><span class="linenos">3459</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
+</span><span id="Dot.build-3460"><a href="#Dot.build-3460"><span class="linenos">3460</span></a>
+</span><span id="Dot.build-3461"><a href="#Dot.build-3461"><span class="linenos">3461</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
+</span><span id="Dot.build-3462"><a href="#Dot.build-3462"><span class="linenos">3462</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="Dot.build-3463"><a href="#Dot.build-3463"><span class="linenos">3463</span></a>
+</span><span id="Dot.build-3464"><a href="#Dot.build-3464"><span class="linenos">3464</span></a> <span class="k">return</span> <span class="n">dot</span>
</span></pre></div>
@@ -28671,6 +30175,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Dot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Dot.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Dot.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Dot.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Dot.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28702,8 +30207,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Dot.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Dot.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Dot.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Dot.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Dot.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Dot.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Dot.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Dot.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Dot.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Dot.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28725,8 +30232,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DPipe"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3213"><a href="#DPipe-3213"><span class="linenos">3213</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-3214"><a href="#DPipe-3214"><span class="linenos">3214</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3467"><a href="#DPipe-3467"><span class="linenos">3467</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-3468"><a href="#DPipe-3468"><span class="linenos">3468</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28748,6 +30255,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="DPipe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DPipe.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DPipe.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DPipe.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DPipe.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28779,8 +30287,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="DPipe.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DPipe.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DPipe.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DPipe.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DPipe.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DPipe.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DPipe.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DPipe.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DPipe.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DPipe.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28802,8 +30312,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#EQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3217"><a href="#EQ-3217"><span class="linenos">3217</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-3218"><a href="#EQ-3218"><span class="linenos">3218</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3471"><a href="#EQ-3471"><span class="linenos">3471</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-3472"><a href="#EQ-3472"><span class="linenos">3472</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28825,6 +30335,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="EQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="EQ.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="EQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="EQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="EQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28856,8 +30367,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="EQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="EQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="EQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="EQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="EQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="EQ.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="EQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="EQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="EQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="EQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28879,8 +30392,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NullSafeEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3221"><a href="#NullSafeEQ-3221"><span class="linenos">3221</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-3222"><a href="#NullSafeEQ-3222"><span class="linenos">3222</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3475"><a href="#NullSafeEQ-3475"><span class="linenos">3475</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-3476"><a href="#NullSafeEQ-3476"><span class="linenos">3476</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28902,6 +30415,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="NullSafeEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NullSafeEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NullSafeEQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NullSafeEQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NullSafeEQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -28933,8 +30447,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="NullSafeEQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NullSafeEQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NullSafeEQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="NullSafeEQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NullSafeEQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NullSafeEQ.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="NullSafeEQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NullSafeEQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NullSafeEQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NullSafeEQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -28956,8 +30472,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NullSafeNEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3225"><a href="#NullSafeNEQ-3225"><span class="linenos">3225</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-3226"><a href="#NullSafeNEQ-3226"><span class="linenos">3226</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3479"><a href="#NullSafeNEQ-3479"><span class="linenos">3479</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-3480"><a href="#NullSafeNEQ-3480"><span class="linenos">3480</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28979,6 +30495,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="NullSafeNEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NullSafeNEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NullSafeNEQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NullSafeNEQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NullSafeNEQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29010,8 +30527,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="NullSafeNEQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NullSafeNEQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NullSafeNEQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="NullSafeNEQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NullSafeNEQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NullSafeNEQ.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="NullSafeNEQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NullSafeNEQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NullSafeNEQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NullSafeNEQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29033,8 +30552,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Distance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3229"><a href="#Distance-3229"><span class="linenos">3229</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-3230"><a href="#Distance-3230"><span class="linenos">3230</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3483"><a href="#Distance-3483"><span class="linenos">3483</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-3484"><a href="#Distance-3484"><span class="linenos">3484</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29056,6 +30575,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Distance.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Distance.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Distance.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Distance.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Distance.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29087,8 +30607,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Distance.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Distance.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Distance.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Distance.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Distance.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Distance.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Distance.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Distance.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Distance.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Distance.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29110,8 +30632,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Escape"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3233"><a href="#Escape-3233"><span class="linenos">3233</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-3234"><a href="#Escape-3234"><span class="linenos">3234</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3487"><a href="#Escape-3487"><span class="linenos">3487</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-3488"><a href="#Escape-3488"><span class="linenos">3488</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29133,6 +30655,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Escape.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Escape.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Escape.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Escape.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Escape.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29164,8 +30687,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Escape.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Escape.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Escape.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Escape.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Escape.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Escape.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Escape.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Escape.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Escape.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Escape.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29187,8 +30712,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Glob"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3237"><a href="#Glob-3237"><span class="linenos">3237</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-3238"><a href="#Glob-3238"><span class="linenos">3238</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3491"><a href="#Glob-3491"><span class="linenos">3491</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-3492"><a href="#Glob-3492"><span class="linenos">3492</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29210,6 +30735,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Glob.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Glob.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Glob.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Glob.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Glob.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29241,8 +30767,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Glob.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Glob.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Glob.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Glob.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Glob.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Glob.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Glob.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Glob.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Glob.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Glob.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29264,8 +30792,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#GT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GT-3241"><a href="#GT-3241"><span class="linenos">3241</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-3242"><a href="#GT-3242"><span class="linenos">3242</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GT-3495"><a href="#GT-3495"><span class="linenos">3495</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-3496"><a href="#GT-3496"><span class="linenos">3496</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29287,6 +30815,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="GT.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GT.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="GT.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GT.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GT.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29318,8 +30847,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="GT.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GT.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GT.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="GT.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GT.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GT.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="GT.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GT.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GT.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GT.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29341,8 +30872,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#GTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3245"><a href="#GTE-3245"><span class="linenos">3245</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-3246"><a href="#GTE-3246"><span class="linenos">3246</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3499"><a href="#GTE-3499"><span class="linenos">3499</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-3500"><a href="#GTE-3500"><span class="linenos">3500</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29364,6 +30895,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="GTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GTE.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="GTE.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GTE.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GTE.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29395,8 +30927,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="GTE.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GTE.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GTE.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="GTE.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GTE.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GTE.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="GTE.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GTE.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GTE.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GTE.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29418,8 +30952,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3249"><a href="#ILike-3249"><span class="linenos">3249</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-3250"><a href="#ILike-3250"><span class="linenos">3250</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3503"><a href="#ILike-3503"><span class="linenos">3503</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-3504"><a href="#ILike-3504"><span class="linenos">3504</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29441,6 +30975,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="ILike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ILike.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ILike.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ILike.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ILike.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29472,8 +31007,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="ILike.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ILike.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ILike.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ILike.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ILike.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ILike.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ILike.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ILike.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ILike.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ILike.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29495,8 +31032,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ILikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3253"><a href="#ILikeAny-3253"><span class="linenos">3253</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-3254"><a href="#ILikeAny-3254"><span class="linenos">3254</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3507"><a href="#ILikeAny-3507"><span class="linenos">3507</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-3508"><a href="#ILikeAny-3508"><span class="linenos">3508</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29518,6 +31055,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="ILikeAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ILikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ILikeAny.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ILikeAny.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ILikeAny.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29549,8 +31087,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="ILikeAny.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ILikeAny.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ILikeAny.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ILikeAny.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ILikeAny.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ILikeAny.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ILikeAny.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ILikeAny.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ILikeAny.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ILikeAny.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29572,8 +31112,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#IntDiv"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-3257"><a href="#IntDiv-3257"><span class="linenos">3257</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-3258"><a href="#IntDiv-3258"><span class="linenos">3258</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-3511"><a href="#IntDiv-3511"><span class="linenos">3511</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-3512"><a href="#IntDiv-3512"><span class="linenos">3512</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29595,6 +31135,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="IntDiv.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IntDiv.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="IntDiv.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IntDiv.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IntDiv.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29626,8 +31167,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="IntDiv.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="IntDiv.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="IntDiv.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="IntDiv.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="IntDiv.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="IntDiv.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="IntDiv.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="IntDiv.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="IntDiv.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="IntDiv.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29649,8 +31192,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Is-3261"><a href="#Is-3261"><span class="linenos">3261</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-3262"><a href="#Is-3262"><span class="linenos">3262</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Is-3515"><a href="#Is-3515"><span class="linenos">3515</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-3516"><a href="#Is-3516"><span class="linenos">3516</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29672,6 +31215,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Is.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Is.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Is.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Is.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Is.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29703,8 +31247,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Is.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Is.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Is.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Is.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Is.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Is.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Is.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Is.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Is.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Is.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29726,8 +31272,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Kwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-3265"><a href="#Kwarg-3265"><span class="linenos">3265</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-3266"><a href="#Kwarg-3266"><span class="linenos">3266</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-3519"><a href="#Kwarg-3519"><span class="linenos">3519</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-3520"><a href="#Kwarg-3520"><span class="linenos">3520</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>
@@ -29751,6 +31297,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Kwarg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Kwarg.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Kwarg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Kwarg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Kwarg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29782,8 +31329,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Kwarg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Kwarg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Kwarg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Kwarg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Kwarg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Kwarg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Kwarg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Kwarg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Kwarg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Kwarg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29805,8 +31354,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Like-3269"><a href="#Like-3269"><span class="linenos">3269</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-3270"><a href="#Like-3270"><span class="linenos">3270</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Like-3523"><a href="#Like-3523"><span class="linenos">3523</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-3524"><a href="#Like-3524"><span class="linenos">3524</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29828,6 +31377,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Like.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Like.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Like.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Like.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Like.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29859,8 +31409,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Like.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Like.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Like.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Like.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Like.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Like.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Like.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Like.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Like.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Like.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29882,8 +31434,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-3273"><a href="#LikeAny-3273"><span class="linenos">3273</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-3274"><a href="#LikeAny-3274"><span class="linenos">3274</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-3527"><a href="#LikeAny-3527"><span class="linenos">3527</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-3528"><a href="#LikeAny-3528"><span class="linenos">3528</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29905,6 +31457,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="LikeAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LikeAny.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LikeAny.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LikeAny.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -29936,8 +31489,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="LikeAny.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LikeAny.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LikeAny.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="LikeAny.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LikeAny.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LikeAny.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="LikeAny.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LikeAny.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LikeAny.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LikeAny.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -29959,8 +31514,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LT-3277"><a href="#LT-3277"><span class="linenos">3277</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-3278"><a href="#LT-3278"><span class="linenos">3278</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LT-3531"><a href="#LT-3531"><span class="linenos">3531</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-3532"><a href="#LT-3532"><span class="linenos">3532</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29982,6 +31537,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="LT.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LT.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LT.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LT.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LT.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30013,8 +31569,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="LT.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LT.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LT.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="LT.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LT.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LT.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="LT.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LT.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LT.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LT.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30036,8 +31594,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-3281"><a href="#LTE-3281"><span class="linenos">3281</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-3282"><a href="#LTE-3282"><span class="linenos">3282</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-3535"><a href="#LTE-3535"><span class="linenos">3535</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-3536"><a href="#LTE-3536"><span class="linenos">3536</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30059,6 +31617,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="LTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LTE.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LTE.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LTE.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LTE.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30090,8 +31649,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="LTE.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LTE.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LTE.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="LTE.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LTE.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LTE.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="LTE.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LTE.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LTE.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LTE.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30113,8 +31674,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Mod"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-3285"><a href="#Mod-3285"><span class="linenos">3285</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-3286"><a href="#Mod-3286"><span class="linenos">3286</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-3539"><a href="#Mod-3539"><span class="linenos">3539</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-3540"><a href="#Mod-3540"><span class="linenos">3540</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30136,6 +31697,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Mod.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Mod.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Mod.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Mod.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Mod.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30167,8 +31729,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Mod.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Mod.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Mod.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Mod.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Mod.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Mod.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Mod.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Mod.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Mod.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Mod.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30190,8 +31754,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Mul"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-3289"><a href="#Mul-3289"><span class="linenos">3289</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-3290"><a href="#Mul-3290"><span class="linenos">3290</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-3543"><a href="#Mul-3543"><span class="linenos">3543</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-3544"><a href="#Mul-3544"><span class="linenos">3544</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30213,6 +31777,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Mul.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Mul.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Mul.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Mul.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Mul.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30244,8 +31809,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Mul.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Mul.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Mul.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Mul.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Mul.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Mul.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Mul.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Mul.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Mul.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Mul.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30267,8 +31834,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-3293"><a href="#NEQ-3293"><span class="linenos">3293</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-3294"><a href="#NEQ-3294"><span class="linenos">3294</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-3547"><a href="#NEQ-3547"><span class="linenos">3547</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-3548"><a href="#NEQ-3548"><span class="linenos">3548</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30290,6 +31857,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="NEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NEQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NEQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NEQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30321,8 +31889,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="NEQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NEQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NEQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="NEQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NEQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NEQ.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="NEQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NEQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NEQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NEQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30344,8 +31914,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SimilarTo"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-3297"><a href="#SimilarTo-3297"><span class="linenos">3297</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-3298"><a href="#SimilarTo-3298"><span class="linenos">3298</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-3551"><a href="#SimilarTo-3551"><span class="linenos">3551</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-3552"><a href="#SimilarTo-3552"><span class="linenos">3552</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30367,6 +31937,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="SimilarTo.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SimilarTo.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SimilarTo.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SimilarTo.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SimilarTo.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30398,8 +31969,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="SimilarTo.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SimilarTo.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SimilarTo.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SimilarTo.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SimilarTo.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SimilarTo.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SimilarTo.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SimilarTo.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SimilarTo.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SimilarTo.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30421,8 +31994,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Slice"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-3301"><a href="#Slice-3301"><span class="linenos">3301</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-3302"><a href="#Slice-3302"><span class="linenos">3302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-3555"><a href="#Slice-3555"><span class="linenos">3555</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-3556"><a href="#Slice-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">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>
@@ -30444,6 +32017,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Slice.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Slice.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Slice.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Slice.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Slice.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30475,8 +32049,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Slice.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Slice.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Slice.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Slice.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Slice.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Slice.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Slice.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Slice.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Slice.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Slice.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30498,8 +32074,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Sub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-3305"><a href="#Sub-3305"><span class="linenos">3305</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-3306"><a href="#Sub-3306"><span class="linenos">3306</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-3559"><a href="#Sub-3559"><span class="linenos">3559</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-3560"><a href="#Sub-3560"><span class="linenos">3560</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30521,6 +32097,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Sub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sub.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Sub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30552,8 +32129,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Sub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Sub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Sub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Sub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Sub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Sub.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Sub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Sub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Sub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Sub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30575,8 +32154,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ArrayOverlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-3309"><a href="#ArrayOverlaps-3309"><span class="linenos">3309</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-3310"><a href="#ArrayOverlaps-3310"><span class="linenos">3310</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-3563"><a href="#ArrayOverlaps-3563"><span class="linenos">3563</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-3564"><a href="#ArrayOverlaps-3564"><span class="linenos">3564</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30598,6 +32177,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="ArrayOverlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayOverlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayOverlaps.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="ArrayOverlaps.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayOverlaps.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayOverlaps.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayOverlaps.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30629,8 +32209,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="ArrayOverlaps.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayOverlaps.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayOverlaps.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayOverlaps.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayOverlaps.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayOverlaps.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayOverlaps.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayOverlaps.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayOverlaps.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayOverlaps.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30652,8 +32234,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Unary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-3315"><a href="#Unary-3315"><span class="linenos">3315</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-3316"><a href="#Unary-3316"><span class="linenos">3316</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-3569"><a href="#Unary-3569"><span class="linenos">3569</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-3570"><a href="#Unary-3570"><span class="linenos">3570</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30675,6 +32257,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Unary.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unary.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Unary.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unary.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unary.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30706,8 +32289,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Unary.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Unary.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Unary.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Unary.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Unary.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Unary.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Unary.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Unary.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Unary.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Unary.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30729,8 +32314,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseNot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-3319"><a href="#BitwiseNot-3319"><span class="linenos">3319</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-3320"><a href="#BitwiseNot-3320"><span class="linenos">3320</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-3573"><a href="#BitwiseNot-3573"><span class="linenos">3573</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-3574"><a href="#BitwiseNot-3574"><span class="linenos">3574</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30752,6 +32337,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseNot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseNot.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="BitwiseNot.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseNot.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseNot.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30783,8 +32369,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="BitwiseNot.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseNot.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseNot.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="BitwiseNot.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseNot.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseNot.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="BitwiseNot.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseNot.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseNot.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseNot.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30806,8 +32394,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Not"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Not-3323"><a href="#Not-3323"><span class="linenos">3323</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-3324"><a href="#Not-3324"><span class="linenos">3324</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Not-3577"><a href="#Not-3577"><span class="linenos">3577</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-3578"><a href="#Not-3578"><span class="linenos">3578</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30829,6 +32417,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Not.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Not.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Not.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Not.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Not.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30860,8 +32449,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Not.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Not.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Not.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Not.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Not.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Not.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Not.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Not.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Not.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Not.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30883,8 +32474,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-3327"><a href="#Paren-3327"><span class="linenos">3327</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-3328"><a href="#Paren-3328"><span class="linenos">3328</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-3581"><a href="#Paren-3581"><span class="linenos">3581</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-3582"><a href="#Paren-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;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -30906,6 +32497,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Paren.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Paren.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Paren.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Paren.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Paren.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -30937,8 +32529,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Paren.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Paren.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Paren.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Paren.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Paren.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Paren.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Paren.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Paren.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Paren.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Paren.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -30960,8 +32554,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Neg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3331"><a href="#Neg-3331"><span class="linenos">3331</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-3332"><a href="#Neg-3332"><span class="linenos">3332</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3585"><a href="#Neg-3585"><span class="linenos">3585</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-3586"><a href="#Neg-3586"><span class="linenos">3586</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30983,6 +32577,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Neg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Neg.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Neg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Neg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Neg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31014,8 +32609,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Neg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Neg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Neg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Neg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Neg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Neg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Neg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Neg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Neg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Neg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -31037,12 +32634,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Alias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-3335"><a href="#Alias-3335"><span class="linenos">3335</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-3336"><a href="#Alias-3336"><span class="linenos">3336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Alias-3337"><a href="#Alias-3337"><span class="linenos">3337</span></a>
-</span><span id="Alias-3338"><a href="#Alias-3338"><span class="linenos">3338</span></a> <span class="nd">@property</span>
-</span><span id="Alias-3339"><a href="#Alias-3339"><span class="linenos">3339</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Alias-3340"><a href="#Alias-3340"><span class="linenos">3340</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-3589"><a href="#Alias-3589"><span class="linenos">3589</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-3590"><a href="#Alias-3590"><span class="linenos">3590</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Alias-3591"><a href="#Alias-3591"><span class="linenos">3591</span></a>
+</span><span id="Alias-3592"><a href="#Alias-3592"><span class="linenos">3592</span></a> <span class="nd">@property</span>
+</span><span id="Alias-3593"><a href="#Alias-3593"><span class="linenos">3593</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-3594"><a href="#Alias-3594"><span class="linenos">3594</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -31050,7 +32647,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<div id="Alias.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -31093,6 +32690,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Alias.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Alias.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Alias.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Alias.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Alias.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31134,12 +32732,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Aliases"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3343"><a href="#Aliases-3343"><span class="linenos">3343</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-3344"><a href="#Aliases-3344"><span class="linenos">3344</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Aliases-3345"><a href="#Aliases-3345"><span class="linenos">3345</span></a>
-</span><span id="Aliases-3346"><a href="#Aliases-3346"><span class="linenos">3346</span></a> <span class="nd">@property</span>
-</span><span id="Aliases-3347"><a href="#Aliases-3347"><span class="linenos">3347</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-3348"><a href="#Aliases-3348"><span class="linenos">3348</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-3597"><a href="#Aliases-3597"><span class="linenos">3597</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-3598"><a href="#Aliases-3598"><span class="linenos">3598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Aliases-3599"><a href="#Aliases-3599"><span class="linenos">3599</span></a>
+</span><span id="Aliases-3600"><a href="#Aliases-3600"><span class="linenos">3600</span></a> <span class="nd">@property</span>
+</span><span id="Aliases-3601"><a href="#Aliases-3601"><span class="linenos">3601</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-3602"><a href="#Aliases-3602"><span class="linenos">3602</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -31161,6 +32759,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Aliases.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Aliases.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Aliases.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Aliases.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Aliases.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31202,8 +32801,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AtTimeZone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-3351"><a href="#AtTimeZone-3351"><span class="linenos">3351</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-3352"><a href="#AtTimeZone-3352"><span class="linenos">3352</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3605"><a href="#AtTimeZone-3605"><span class="linenos">3605</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-3606"><a href="#AtTimeZone-3606"><span class="linenos">3606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -31225,6 +32824,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="AtTimeZone.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AtTimeZone.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AtTimeZone.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AtTimeZone.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AtTimeZone.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31266,8 +32866,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Between-3355"><a href="#Between-3355"><span class="linenos">3355</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-3356"><a href="#Between-3356"><span class="linenos">3356</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3609"><a href="#Between-3609"><span class="linenos">3609</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-3610"><a href="#Between-3610"><span class="linenos">3610</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -31289,6 +32889,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Between.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Between.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Between.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Between.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Between.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31320,8 +32921,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Between.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Between.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Between.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Between.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Between.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Between.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Between.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Between.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Between.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Between.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -31343,8 +32946,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Bracket"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3359"><a href="#Bracket-3359"><span class="linenos">3359</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-3360"><a href="#Bracket-3360"><span class="linenos">3360</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3613"><a href="#Bracket-3613"><span class="linenos">3613</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-3614"><a href="#Bracket-3614"><span class="linenos">3614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -31366,6 +32969,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Bracket.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Bracket.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Bracket.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Bracket.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Bracket.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31397,8 +33001,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Bracket.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Bracket.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Bracket.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Bracket.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Bracket.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Bracket.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Bracket.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Bracket.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Bracket.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Bracket.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -31420,8 +33026,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-3363"><a href="#Distinct-3363"><span class="linenos">3363</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-3364"><a href="#Distinct-3364"><span class="linenos">3364</span></a> <span class="n">arg_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-3617"><a href="#Distinct-3617"><span class="linenos">3617</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-3618"><a href="#Distinct-3618"><span class="linenos">3618</span></a> <span class="n">arg_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>
@@ -31443,6 +33049,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Distinct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Distinct.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Distinct.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Distinct.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Distinct.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31484,15 +33091,15 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#In"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="In-3367"><a href="#In-3367"><span class="linenos">3367</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-3368"><a href="#In-3368"><span class="linenos">3368</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="In-3369"><a href="#In-3369"><span class="linenos">3369</span></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-3370"><a href="#In-3370"><span class="linenos">3370</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-3371"><a href="#In-3371"><span class="linenos">3371</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-3372"><a href="#In-3372"><span class="linenos">3372</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-3373"><a href="#In-3373"><span class="linenos">3373</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-3374"><a href="#In-3374"><span class="linenos">3374</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-3375"><a href="#In-3375"><span class="linenos">3375</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="In-3621"><a href="#In-3621"><span class="linenos">3621</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-3622"><a href="#In-3622"><span class="linenos">3622</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="In-3623"><a href="#In-3623"><span class="linenos">3623</span></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-3624"><a href="#In-3624"><span class="linenos">3624</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-3625"><a href="#In-3625"><span class="linenos">3625</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-3626"><a href="#In-3626"><span class="linenos">3626</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-3627"><a href="#In-3627"><span class="linenos">3627</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-3628"><a href="#In-3628"><span class="linenos">3628</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-3629"><a href="#In-3629"><span class="linenos">3629</span></a> <span class="p">}</span>
</span></pre></div>
@@ -31514,6 +33121,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="In.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="In.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="In.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="In.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="In.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31545,8 +33153,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="In.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="In.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="In.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="In.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="In.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="In.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="In.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="In.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="In.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="In.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -31568,18 +33178,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TimeUnit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3378"><a href="#TimeUnit-3378"><span class="linenos">3378</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-3379"><a href="#TimeUnit-3379"><span class="linenos">3379</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-3380"><a href="#TimeUnit-3380"><span class="linenos">3380</span></a>
-</span><span id="TimeUnit-3381"><a href="#TimeUnit-3381"><span class="linenos">3381</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-3382"><a href="#TimeUnit-3382"><span class="linenos">3382</span></a>
-</span><span id="TimeUnit-3383"><a href="#TimeUnit-3383"><span class="linenos">3383</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-3384"><a href="#TimeUnit-3384"><span class="linenos">3384</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-3385"><a href="#TimeUnit-3385"><span class="linenos">3385</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
-</span><span id="TimeUnit-3386"><a href="#TimeUnit-3386"><span class="linenos">3386</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit-3387"><a href="#TimeUnit-3387"><span class="linenos">3387</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-3388"><a href="#TimeUnit-3388"><span class="linenos">3388</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-3389"><a href="#TimeUnit-3389"><span class="linenos">3389</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-3632"><a href="#TimeUnit-3632"><span class="linenos">3632</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-3633"><a href="#TimeUnit-3633"><span class="linenos">3633</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-3634"><a href="#TimeUnit-3634"><span class="linenos">3634</span></a>
+</span><span id="TimeUnit-3635"><a href="#TimeUnit-3635"><span class="linenos">3635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="TimeUnit-3636"><a href="#TimeUnit-3636"><span class="linenos">3636</span></a>
+</span><span id="TimeUnit-3637"><a href="#TimeUnit-3637"><span class="linenos">3637</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-3638"><a href="#TimeUnit-3638"><span class="linenos">3638</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-3639"><a href="#TimeUnit-3639"><span class="linenos">3639</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
+</span><span id="TimeUnit-3640"><a href="#TimeUnit-3640"><span class="linenos">3640</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="TimeUnit-3641"><a href="#TimeUnit-3641"><span class="linenos">3641</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-3642"><a href="#TimeUnit-3642"><span class="linenos">3642</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-3643"><a href="#TimeUnit-3643"><span class="linenos">3643</span></a>
+</span><span id="TimeUnit-3644"><a href="#TimeUnit-3644"><span class="linenos">3644</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>
@@ -31597,13 +33208,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TimeUnit.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3383"><a href="#TimeUnit.__init__-3383"><span class="linenos">3383</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__-3384"><a href="#TimeUnit.__init__-3384"><span class="linenos">3384</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__-3385"><a href="#TimeUnit.__init__-3385"><span class="linenos">3385</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
-</span><span id="TimeUnit.__init__-3386"><a href="#TimeUnit.__init__-3386"><span class="linenos">3386</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit.__init__-3387"><a href="#TimeUnit.__init__-3387"><span class="linenos">3387</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__-3388"><a href="#TimeUnit.__init__-3388"><span class="linenos">3388</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__-3389"><a href="#TimeUnit.__init__-3389"><span class="linenos">3389</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__-3637"><a href="#TimeUnit.__init__-3637"><span class="linenos">3637</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__-3638"><a href="#TimeUnit.__init__-3638"><span class="linenos">3638</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__-3639"><a href="#TimeUnit.__init__-3639"><span class="linenos">3639</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
+</span><span id="TimeUnit.__init__-3640"><a href="#TimeUnit.__init__-3640"><span class="linenos">3640</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="TimeUnit.__init__-3641"><a href="#TimeUnit.__init__-3641"><span class="linenos">3641</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__-3642"><a href="#TimeUnit.__init__-3642"><span class="linenos">3642</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__-3643"><a href="#TimeUnit.__init__-3643"><span class="linenos">3643</span></a>
+</span><span id="TimeUnit.__init__-3644"><a href="#TimeUnit.__init__-3644"><span class="linenos">3644</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>
@@ -31625,6 +33237,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="TimeUnit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeUnit.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeUnit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeUnit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeUnit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31666,8 +33279,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-3392"><a href="#Interval-3392"><span class="linenos">3392</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-3393"><a href="#Interval-3393"><span class="linenos">3393</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3647"><a href="#Interval-3647"><span class="linenos">3647</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-3648"><a href="#Interval-3648"><span class="linenos">3648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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="Interval-3649"><a href="#Interval-3649"><span class="linenos">3649</span></a>
+</span><span id="Interval-3650"><a href="#Interval-3650"><span class="linenos">3650</span></a> <span class="nd">@property</span>
+</span><span id="Interval-3651"><a href="#Interval-3651"><span class="linenos">3651</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="Interval-3652"><a href="#Interval-3652"><span class="linenos">3652</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>
@@ -31692,6 +33309,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="Interval.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Interval.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Interval.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Interval.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Interval.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31733,8 +33351,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#IgnoreNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3396"><a href="#IgnoreNulls-3396"><span class="linenos">3396</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-3397"><a href="#IgnoreNulls-3397"><span class="linenos">3397</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3655"><a href="#IgnoreNulls-3655"><span class="linenos">3655</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-3656"><a href="#IgnoreNulls-3656"><span class="linenos">3656</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -31756,6 +33374,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="IgnoreNulls.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IgnoreNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="IgnoreNulls.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IgnoreNulls.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IgnoreNulls.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31797,8 +33416,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#RespectNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3400"><a href="#RespectNulls-3400"><span class="linenos">3400</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-3401"><a href="#RespectNulls-3401"><span class="linenos">3401</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3659"><a href="#RespectNulls-3659"><span class="linenos">3659</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-3660"><a href="#RespectNulls-3660"><span class="linenos">3660</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -31820,6 +33439,7 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
<dd id="RespectNulls.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RespectNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RespectNulls.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RespectNulls.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RespectNulls.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -31861,53 +33481,53 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func-3405"><a href="#Func-3405"><span class="linenos">3405</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-3406"><a href="#Func-3406"><span class="linenos">3406</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Func-3407"><a href="#Func-3407"><span class="linenos">3407</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="Func-3408"><a href="#Func-3408"><span class="linenos">3408</span></a>
-</span><span id="Func-3409"><a href="#Func-3409"><span class="linenos">3409</span></a><span class="sd"> Attributes:</span>
-</span><span id="Func-3410"><a href="#Func-3410"><span class="linenos">3410</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-3411"><a href="#Func-3411"><span class="linenos">3411</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-3412"><a href="#Func-3412"><span class="linenos">3412</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-3413"><a href="#Func-3413"><span class="linenos">3413</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-3414"><a href="#Func-3414"><span class="linenos">3414</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-3415"><a href="#Func-3415"><span class="linenos">3415</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="Func-3416"><a href="#Func-3416"><span class="linenos">3416</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Func-3417"><a href="#Func-3417"><span class="linenos">3417</span></a>
-</span><span id="Func-3418"><a href="#Func-3418"><span class="linenos">3418</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="Func-3419"><a href="#Func-3419"><span class="linenos">3419</span></a>
-</span><span id="Func-3420"><a href="#Func-3420"><span class="linenos">3420</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3421"><a href="#Func-3421"><span class="linenos">3421</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-3422"><a href="#Func-3422"><span class="linenos">3422</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-3423"><a href="#Func-3423"><span class="linenos">3423</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-3424"><a href="#Func-3424"><span class="linenos">3424</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="Func-3425"><a href="#Func-3425"><span class="linenos">3425</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-3426"><a href="#Func-3426"><span class="linenos">3426</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-3427"><a href="#Func-3427"><span class="linenos">3427</span></a>
-</span><span id="Func-3428"><a href="#Func-3428"><span class="linenos">3428</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-3429"><a href="#Func-3429"><span class="linenos">3429</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-3430"><a href="#Func-3430"><span class="linenos">3430</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func-3431"><a href="#Func-3431"><span class="linenos">3431</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-3432"><a href="#Func-3432"><span class="linenos">3432</span></a>
-</span><span id="Func-3433"><a href="#Func-3433"><span class="linenos">3433</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-3434"><a href="#Func-3434"><span class="linenos">3434</span></a>
-</span><span id="Func-3435"><a href="#Func-3435"><span class="linenos">3435</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3436"><a href="#Func-3436"><span class="linenos">3436</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-3437"><a href="#Func-3437"><span class="linenos">3437</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-3438"><a href="#Func-3438"><span class="linenos">3438</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func-3439"><a href="#Func-3439"><span class="linenos">3439</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func-3440"><a href="#Func-3440"><span class="linenos">3440</span></a> <span class="p">)</span>
-</span><span id="Func-3441"><a href="#Func-3441"><span class="linenos">3441</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-3442"><a href="#Func-3442"><span class="linenos">3442</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-3443"><a href="#Func-3443"><span class="linenos">3443</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-3444"><a href="#Func-3444"><span class="linenos">3444</span></a>
-</span><span id="Func-3445"><a href="#Func-3445"><span class="linenos">3445</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3446"><a href="#Func-3446"><span class="linenos">3446</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-3447"><a href="#Func-3447"><span class="linenos">3447</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-3448"><a href="#Func-3448"><span class="linenos">3448</span></a>
-</span><span id="Func-3449"><a href="#Func-3449"><span class="linenos">3449</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3450"><a href="#Func-3450"><span class="linenos">3450</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-3451"><a href="#Func-3451"><span class="linenos">3451</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-3664"><a href="#Func-3664"><span class="linenos">3664</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-3665"><a href="#Func-3665"><span class="linenos">3665</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Func-3666"><a href="#Func-3666"><span class="linenos">3666</span></a><span class="sd"> The base class for all function expressions.</span>
+</span><span id="Func-3667"><a href="#Func-3667"><span class="linenos">3667</span></a>
+</span><span id="Func-3668"><a href="#Func-3668"><span class="linenos">3668</span></a><span class="sd"> Attributes:</span>
+</span><span id="Func-3669"><a href="#Func-3669"><span class="linenos">3669</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-3670"><a href="#Func-3670"><span class="linenos">3670</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-3671"><a href="#Func-3671"><span class="linenos">3671</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-3672"><a href="#Func-3672"><span class="linenos">3672</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-3673"><a href="#Func-3673"><span class="linenos">3673</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-3674"><a href="#Func-3674"><span class="linenos">3674</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="Func-3675"><a href="#Func-3675"><span class="linenos">3675</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Func-3676"><a href="#Func-3676"><span class="linenos">3676</span></a>
+</span><span id="Func-3677"><a href="#Func-3677"><span class="linenos">3677</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="Func-3678"><a href="#Func-3678"><span class="linenos">3678</span></a>
+</span><span id="Func-3679"><a href="#Func-3679"><span class="linenos">3679</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3680"><a href="#Func-3680"><span class="linenos">3680</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-3681"><a href="#Func-3681"><span class="linenos">3681</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-3682"><a href="#Func-3682"><span class="linenos">3682</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-3683"><a href="#Func-3683"><span class="linenos">3683</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="Func-3684"><a href="#Func-3684"><span class="linenos">3684</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-3685"><a href="#Func-3685"><span class="linenos">3685</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-3686"><a href="#Func-3686"><span class="linenos">3686</span></a>
+</span><span id="Func-3687"><a href="#Func-3687"><span class="linenos">3687</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-3688"><a href="#Func-3688"><span class="linenos">3688</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-3689"><a href="#Func-3689"><span class="linenos">3689</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func-3690"><a href="#Func-3690"><span class="linenos">3690</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-3691"><a href="#Func-3691"><span class="linenos">3691</span></a>
+</span><span id="Func-3692"><a href="#Func-3692"><span class="linenos">3692</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-3693"><a href="#Func-3693"><span class="linenos">3693</span></a>
+</span><span id="Func-3694"><a href="#Func-3694"><span class="linenos">3694</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3695"><a href="#Func-3695"><span class="linenos">3695</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-3696"><a href="#Func-3696"><span class="linenos">3696</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-3697"><a href="#Func-3697"><span class="linenos">3697</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func-3698"><a href="#Func-3698"><span class="linenos">3698</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func-3699"><a href="#Func-3699"><span class="linenos">3699</span></a> <span class="p">)</span>
+</span><span id="Func-3700"><a href="#Func-3700"><span class="linenos">3700</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-3701"><a href="#Func-3701"><span class="linenos">3701</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-3702"><a href="#Func-3702"><span class="linenos">3702</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-3703"><a href="#Func-3703"><span class="linenos">3703</span></a>
+</span><span id="Func-3704"><a href="#Func-3704"><span class="linenos">3704</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3705"><a href="#Func-3705"><span class="linenos">3705</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-3706"><a href="#Func-3706"><span class="linenos">3706</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-3707"><a href="#Func-3707"><span class="linenos">3707</span></a>
+</span><span id="Func-3708"><a href="#Func-3708"><span class="linenos">3708</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3709"><a href="#Func-3709"><span class="linenos">3709</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-3710"><a href="#Func-3710"><span class="linenos">3710</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>
@@ -31938,20 +33558,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-3420"><a href="#Func.from_arg_list-3420"><span class="linenos">3420</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.from_arg_list-3421"><a href="#Func.from_arg_list-3421"><span class="linenos">3421</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-3422"><a href="#Func.from_arg_list-3422"><span class="linenos">3422</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-3423"><a href="#Func.from_arg_list-3423"><span class="linenos">3423</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-3424"><a href="#Func.from_arg_list-3424"><span class="linenos">3424</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-3425"><a href="#Func.from_arg_list-3425"><span class="linenos">3425</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-3426"><a href="#Func.from_arg_list-3426"><span class="linenos">3426</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-3427"><a href="#Func.from_arg_list-3427"><span class="linenos">3427</span></a>
-</span><span id="Func.from_arg_list-3428"><a href="#Func.from_arg_list-3428"><span class="linenos">3428</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-3429"><a href="#Func.from_arg_list-3429"><span class="linenos">3429</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-3430"><a href="#Func.from_arg_list-3430"><span class="linenos">3430</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func.from_arg_list-3431"><a href="#Func.from_arg_list-3431"><span class="linenos">3431</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-3432"><a href="#Func.from_arg_list-3432"><span class="linenos">3432</span></a>
-</span><span id="Func.from_arg_list-3433"><a href="#Func.from_arg_list-3433"><span class="linenos">3433</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-3679"><a href="#Func.from_arg_list-3679"><span class="linenos">3679</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.from_arg_list-3680"><a href="#Func.from_arg_list-3680"><span class="linenos">3680</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-3681"><a href="#Func.from_arg_list-3681"><span class="linenos">3681</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-3682"><a href="#Func.from_arg_list-3682"><span class="linenos">3682</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-3683"><a href="#Func.from_arg_list-3683"><span class="linenos">3683</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-3684"><a href="#Func.from_arg_list-3684"><span class="linenos">3684</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-3685"><a href="#Func.from_arg_list-3685"><span class="linenos">3685</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-3686"><a href="#Func.from_arg_list-3686"><span class="linenos">3686</span></a>
+</span><span id="Func.from_arg_list-3687"><a href="#Func.from_arg_list-3687"><span class="linenos">3687</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-3688"><a href="#Func.from_arg_list-3688"><span class="linenos">3688</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-3689"><a href="#Func.from_arg_list-3689"><span class="linenos">3689</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func.from_arg_list-3690"><a href="#Func.from_arg_list-3690"><span class="linenos">3690</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-3691"><a href="#Func.from_arg_list-3691"><span class="linenos">3691</span></a>
+</span><span id="Func.from_arg_list-3692"><a href="#Func.from_arg_list-3692"><span class="linenos">3692</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>
@@ -31970,15 +33590,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-3435"><a href="#Func.sql_names-3435"><span class="linenos">3435</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_names-3436"><a href="#Func.sql_names-3436"><span class="linenos">3436</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-3437"><a href="#Func.sql_names-3437"><span class="linenos">3437</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-3438"><a href="#Func.sql_names-3438"><span class="linenos">3438</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func.sql_names-3439"><a href="#Func.sql_names-3439"><span class="linenos">3439</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func.sql_names-3440"><a href="#Func.sql_names-3440"><span class="linenos">3440</span></a> <span class="p">)</span>
-</span><span id="Func.sql_names-3441"><a href="#Func.sql_names-3441"><span class="linenos">3441</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-3442"><a href="#Func.sql_names-3442"><span class="linenos">3442</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-3443"><a href="#Func.sql_names-3443"><span class="linenos">3443</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-3694"><a href="#Func.sql_names-3694"><span class="linenos">3694</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_names-3695"><a href="#Func.sql_names-3695"><span class="linenos">3695</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-3696"><a href="#Func.sql_names-3696"><span class="linenos">3696</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-3697"><a href="#Func.sql_names-3697"><span class="linenos">3697</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func.sql_names-3698"><a href="#Func.sql_names-3698"><span class="linenos">3698</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func.sql_names-3699"><a href="#Func.sql_names-3699"><span class="linenos">3699</span></a> <span class="p">)</span>
+</span><span id="Func.sql_names-3700"><a href="#Func.sql_names-3700"><span class="linenos">3700</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-3701"><a href="#Func.sql_names-3701"><span class="linenos">3701</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-3702"><a href="#Func.sql_names-3702"><span class="linenos">3702</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>
@@ -31997,9 +33617,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-3445"><a href="#Func.sql_name-3445"><span class="linenos">3445</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_name-3446"><a href="#Func.sql_name-3446"><span class="linenos">3446</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-3447"><a href="#Func.sql_name-3447"><span class="linenos">3447</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-3704"><a href="#Func.sql_name-3704"><span class="linenos">3704</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_name-3705"><a href="#Func.sql_name-3705"><span class="linenos">3705</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-3706"><a href="#Func.sql_name-3706"><span class="linenos">3706</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>
@@ -32018,9 +33638,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-3449"><a href="#Func.default_parser_mappings-3449"><span class="linenos">3449</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.default_parser_mappings-3450"><a href="#Func.default_parser_mappings-3450"><span class="linenos">3450</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-3451"><a href="#Func.default_parser_mappings-3451"><span class="linenos">3451</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-3708"><a href="#Func.default_parser_mappings-3708"><span class="linenos">3708</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.default_parser_mappings-3709"><a href="#Func.default_parser_mappings-3709"><span class="linenos">3709</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-3710"><a href="#Func.default_parser_mappings-3710"><span class="linenos">3710</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>
@@ -32043,6 +33663,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Func.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Func.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Func.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Func.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Func.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32074,8 +33695,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Func.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Func.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Func.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Func.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Func.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Func.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Func.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Func.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Func.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Func.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32097,8 +33720,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-3454"><a href="#AggFunc-3454"><span class="linenos">3454</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-3455"><a href="#AggFunc-3455"><span class="linenos">3455</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3713"><a href="#AggFunc-3713"><span class="linenos">3713</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-3714"><a href="#AggFunc-3714"><span class="linenos">3714</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32120,6 +33743,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AggFunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AggFunc.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AggFunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AggFunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AggFunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32158,8 +33782,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AggFunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="AggFunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="AggFunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="AggFunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="AggFunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="AggFunc.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="AggFunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="AggFunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="AggFunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="AggFunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32170,6 +33796,93 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="ParameterizedAgg">
+ <input id="ParameterizedAgg-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">ParameterizedAgg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
+
+ <label class="view-source-button" for="ParameterizedAgg-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#ParameterizedAgg"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ParameterizedAgg-3717"><a href="#ParameterizedAgg-3717"><span class="linenos">3717</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-3718"><a href="#ParameterizedAgg-3718"><span class="linenos">3718</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="ParameterizedAgg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="ParameterizedAgg.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="ParameterizedAgg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="ParameterizedAgg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="ParameterizedAgg.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="ParameterizedAgg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="ParameterizedAgg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="ParameterizedAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="ParameterizedAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="ParameterizedAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ParameterizedAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="ParameterizedAgg.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="ParameterizedAgg.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="ParameterizedAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="ParameterizedAgg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="ParameterizedAgg.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="ParameterizedAgg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="ParameterizedAgg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="ParameterizedAgg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="ParameterizedAgg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="ParameterizedAgg.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="ParameterizedAgg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="ParameterizedAgg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="ParameterizedAgg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="ParameterizedAgg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="ParameterizedAgg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="ParameterizedAgg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="ParameterizedAgg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="ParameterizedAgg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="ParameterizedAgg.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="ParameterizedAgg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="ParameterizedAgg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="ParameterizedAgg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="ParameterizedAgg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="ParameterizedAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="ParameterizedAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="ParameterizedAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ParameterizedAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="ParameterizedAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="ParameterizedAgg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ParameterizedAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="ParameterizedAgg.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="ParameterizedAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="ParameterizedAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="ParameterizedAgg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="ParameterizedAgg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Abs">
<input id="Abs-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -32181,8 +33894,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-3458"><a href="#Abs-3458"><span class="linenos">3458</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-3459"><a href="#Abs-3459"><span class="linenos">3459</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3721"><a href="#Abs-3721"><span class="linenos">3721</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-3722"><a href="#Abs-3722"><span class="linenos">3722</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32204,6 +33917,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Abs.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Abs.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Abs.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Abs.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Abs.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32242,8 +33956,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Abs.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Abs.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Abs.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Abs.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Abs.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Abs.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Abs.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Abs.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Abs.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Abs.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32265,9 +33981,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-3462"><a href="#Anonymous-3462"><span class="linenos">3462</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-3463"><a href="#Anonymous-3463"><span class="linenos">3463</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3464"><a href="#Anonymous-3464"><span class="linenos">3464</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-3725"><a href="#Anonymous-3725"><span class="linenos">3725</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-3726"><a href="#Anonymous-3726"><span class="linenos">3726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Anonymous-3727"><a href="#Anonymous-3727"><span class="linenos">3727</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -32289,6 +34005,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Anonymous.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Anonymous.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Anonymous.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Anonymous.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Anonymous.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32327,8 +34044,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Anonymous.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Anonymous.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Anonymous.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Anonymous.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Anonymous.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Anonymous.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Anonymous.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Anonymous.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Anonymous.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Anonymous.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32350,9 +34069,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-3469"><a href="#Hll-3469"><span class="linenos">3469</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-3470"><a href="#Hll-3470"><span class="linenos">3470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Hll-3471"><a href="#Hll-3471"><span class="linenos">3471</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-3732"><a href="#Hll-3732"><span class="linenos">3732</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-3733"><a href="#Hll-3733"><span class="linenos">3733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Hll-3734"><a href="#Hll-3734"><span class="linenos">3734</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -32374,6 +34093,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hll.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Hll.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Hll.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Hll.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Hll.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32412,8 +34132,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hll.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Hll.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Hll.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Hll.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Hll.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Hll.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Hll.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Hll.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Hll.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Hll.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32435,8 +34157,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-3474"><a href="#ApproxDistinct-3474"><span class="linenos">3474</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-3475"><a href="#ApproxDistinct-3475"><span class="linenos">3475</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3737"><a href="#ApproxDistinct-3737"><span class="linenos">3737</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-3738"><a href="#ApproxDistinct-3738"><span class="linenos">3738</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3739"><a href="#ApproxDistinct-3739"><span class="linenos">3739</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>
@@ -32458,6 +34181,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxDistinct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ApproxDistinct.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ApproxDistinct.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ApproxDistinct.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ApproxDistinct.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32496,8 +34220,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxDistinct.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ApproxDistinct.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ApproxDistinct.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ApproxDistinct.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ApproxDistinct.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ApproxDistinct.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ApproxDistinct.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ApproxDistinct.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ApproxDistinct.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ApproxDistinct.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32519,9 +34245,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-3478"><a href="#Array-3478"><span class="linenos">3478</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-3479"><a href="#Array-3479"><span class="linenos">3479</span></a> <span class="n">arg_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-3480"><a href="#Array-3480"><span class="linenos">3480</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-3742"><a href="#Array-3742"><span class="linenos">3742</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-3743"><a href="#Array-3743"><span class="linenos">3743</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Array-3744"><a href="#Array-3744"><span class="linenos">3744</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -32543,6 +34269,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Array.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Array.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Array.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Array.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Array.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32581,8 +34308,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Array.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Array.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Array.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Array.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Array.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Array.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Array.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Array.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Array.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Array.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32604,8 +34333,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-3484"><a href="#ToChar-3484"><span class="linenos">3484</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-3485"><a href="#ToChar-3485"><span class="linenos">3485</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToChar-3748"><a href="#ToChar-3748"><span class="linenos">3748</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-3749"><a href="#ToChar-3749"><span class="linenos">3749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -32627,6 +34356,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToChar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ToChar.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ToChar.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ToChar.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ToChar.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32665,8 +34395,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToChar.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ToChar.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ToChar.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ToChar.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ToChar.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ToChar.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ToChar.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ToChar.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ToChar.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ToChar.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32688,8 +34420,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-3488"><a href="#GenerateSeries-3488"><span class="linenos">3488</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-3489"><a href="#GenerateSeries-3489"><span class="linenos">3489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3752"><a href="#GenerateSeries-3752"><span class="linenos">3752</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-3753"><a href="#GenerateSeries-3753"><span class="linenos">3753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -32711,6 +34443,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GenerateSeries.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GenerateSeries.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="GenerateSeries.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GenerateSeries.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GenerateSeries.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32749,8 +34482,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GenerateSeries.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GenerateSeries.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GenerateSeries.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="GenerateSeries.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GenerateSeries.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GenerateSeries.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="GenerateSeries.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GenerateSeries.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GenerateSeries.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GenerateSeries.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32772,8 +34507,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-3492"><a href="#ArrayAgg-3492"><span class="linenos">3492</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-3493"><a href="#ArrayAgg-3493"><span class="linenos">3493</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3756"><a href="#ArrayAgg-3756"><span class="linenos">3756</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-3757"><a href="#ArrayAgg-3757"><span class="linenos">3757</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32795,6 +34530,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32833,8 +34569,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayAgg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32856,8 +34594,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-3496"><a href="#ArrayAll-3496"><span class="linenos">3496</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-3497"><a href="#ArrayAll-3497"><span class="linenos">3497</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3760"><a href="#ArrayAll-3760"><span class="linenos">3760</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-3761"><a href="#ArrayAll-3761"><span class="linenos">3761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -32879,6 +34617,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAll.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayAll.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayAll.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayAll.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayAll.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -32917,8 +34656,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAll.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayAll.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayAll.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayAll.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayAll.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayAll.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayAll.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayAll.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayAll.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayAll.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -32940,8 +34681,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-3500"><a href="#ArrayAny-3500"><span class="linenos">3500</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-3501"><a href="#ArrayAny-3501"><span class="linenos">3501</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAny-3764"><a href="#ArrayAny-3764"><span class="linenos">3764</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-3765"><a href="#ArrayAny-3765"><span class="linenos">3765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -32963,6 +34704,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayAny.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayAny.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayAny.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayAny.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33001,8 +34743,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAny.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayAny.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayAny.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayAny.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayAny.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayAny.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayAny.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayAny.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayAny.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayAny.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33024,9 +34768,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-3504"><a href="#ArrayConcat-3504"><span class="linenos">3504</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-3505"><a href="#ArrayConcat-3505"><span class="linenos">3505</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ArrayConcat-3506"><a href="#ArrayConcat-3506"><span class="linenos">3506</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-3768"><a href="#ArrayConcat-3768"><span class="linenos">3768</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-3769"><a href="#ArrayConcat-3769"><span class="linenos">3769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ArrayConcat-3770"><a href="#ArrayConcat-3770"><span class="linenos">3770</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -33048,6 +34792,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayConcat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayConcat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayConcat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33086,8 +34831,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayConcat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayConcat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayConcat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayConcat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayConcat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayConcat.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayConcat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayConcat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayConcat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayConcat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33109,8 +34856,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-3509"><a href="#ArrayContains-3509"><span class="linenos">3509</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-3510"><a href="#ArrayContains-3510"><span class="linenos">3510</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-3773"><a href="#ArrayContains-3773"><span class="linenos">3773</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-3774"><a href="#ArrayContains-3774"><span class="linenos">3774</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33132,6 +34879,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayContains.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayContains.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayContains.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayContains.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33170,8 +34918,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContains.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayContains.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayContains.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayContains.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayContains.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayContains.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayContains.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayContains.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayContains.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayContains.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33193,8 +34943,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-3513"><a href="#ArrayContained-3513"><span class="linenos">3513</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-3514"><a href="#ArrayContained-3514"><span class="linenos">3514</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-3777"><a href="#ArrayContained-3777"><span class="linenos">3777</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-3778"><a href="#ArrayContained-3778"><span class="linenos">3778</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33216,6 +34966,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContained.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayContained.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayContained.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="ArrayContained.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayContained.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayContained.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayContained.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33247,8 +34998,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContained.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayContained.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayContained.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayContained.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayContained.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayContained.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayContained.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayContained.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayContained.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayContained.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33270,9 +35023,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-3517"><a href="#ArrayFilter-3517"><span class="linenos">3517</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-3518"><a href="#ArrayFilter-3518"><span class="linenos">3518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="ArrayFilter-3519"><a href="#ArrayFilter-3519"><span class="linenos">3519</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-3781"><a href="#ArrayFilter-3781"><span class="linenos">3781</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-3782"><a href="#ArrayFilter-3782"><span class="linenos">3782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="ArrayFilter-3783"><a href="#ArrayFilter-3783"><span class="linenos">3783</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -33294,6 +35047,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayFilter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayFilter.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayFilter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayFilter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayFilter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33332,8 +35086,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayFilter.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayFilter.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayFilter.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayFilter.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayFilter.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayFilter.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayFilter.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayFilter.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayFilter.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayFilter.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33355,8 +35111,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-3522"><a href="#ArrayJoin-3522"><span class="linenos">3522</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-3523"><a href="#ArrayJoin-3523"><span class="linenos">3523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3786"><a href="#ArrayJoin-3786"><span class="linenos">3786</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-3787"><a href="#ArrayJoin-3787"><span class="linenos">3787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -33378,6 +35134,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayJoin.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayJoin.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayJoin.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayJoin.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayJoin.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33416,8 +35173,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayJoin.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayJoin.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayJoin.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayJoin.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayJoin.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayJoin.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayJoin.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayJoin.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayJoin.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayJoin.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33439,8 +35198,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-3526"><a href="#ArraySize-3526"><span class="linenos">3526</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-3527"><a href="#ArraySize-3527"><span class="linenos">3527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3790"><a href="#ArraySize-3790"><span class="linenos">3790</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-3791"><a href="#ArraySize-3791"><span class="linenos">3791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33462,6 +35221,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArraySize.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArraySize.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArraySize.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArraySize.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33500,8 +35260,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySize.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArraySize.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArraySize.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArraySize.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArraySize.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArraySize.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArraySize.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArraySize.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArraySize.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArraySize.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33523,8 +35285,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-3530"><a href="#ArraySort-3530"><span class="linenos">3530</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-3531"><a href="#ArraySort-3531"><span class="linenos">3531</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3794"><a href="#ArraySort-3794"><span class="linenos">3794</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-3795"><a href="#ArraySort-3795"><span class="linenos">3795</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33546,6 +35308,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySort.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArraySort.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArraySort.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArraySort.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArraySort.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33584,8 +35347,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySort.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArraySort.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArraySort.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArraySort.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArraySort.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArraySort.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArraySort.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArraySort.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArraySort.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArraySort.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33607,8 +35372,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-3534"><a href="#ArraySum-3534"><span class="linenos">3534</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-3535"><a href="#ArraySum-3535"><span class="linenos">3535</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3798"><a href="#ArraySum-3798"><span class="linenos">3798</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-3799"><a href="#ArraySum-3799"><span class="linenos">3799</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33630,6 +35395,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySum.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArraySum.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArraySum.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArraySum.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArraySum.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33668,8 +35434,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySum.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArraySum.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArraySum.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArraySum.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArraySum.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArraySum.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArraySum.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArraySum.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArraySum.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArraySum.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33691,8 +35459,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-3538"><a href="#ArrayUnionAgg-3538"><span class="linenos">3538</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-3539"><a href="#ArrayUnionAgg-3539"><span class="linenos">3539</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3802"><a href="#ArrayUnionAgg-3802"><span class="linenos">3802</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-3803"><a href="#ArrayUnionAgg-3803"><span class="linenos">3803</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33714,6 +35482,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUnionAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayUnionAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ArrayUnionAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayUnionAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayUnionAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33752,8 +35521,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUnionAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayUnionAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayUnionAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ArrayUnionAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayUnionAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayUnionAgg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ArrayUnionAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayUnionAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayUnionAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayUnionAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33775,8 +35546,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-3542"><a href="#Avg-3542"><span class="linenos">3542</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-3543"><a href="#Avg-3543"><span class="linenos">3543</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3806"><a href="#Avg-3806"><span class="linenos">3806</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-3807"><a href="#Avg-3807"><span class="linenos">3807</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33798,6 +35569,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Avg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Avg.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Avg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Avg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Avg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33836,8 +35608,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Avg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Avg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Avg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Avg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Avg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Avg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Avg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Avg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Avg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Avg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33859,8 +35633,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-3546"><a href="#AnyValue-3546"><span class="linenos">3546</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-3547"><a href="#AnyValue-3547"><span class="linenos">3547</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3810"><a href="#AnyValue-3810"><span class="linenos">3810</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-3811"><a href="#AnyValue-3811"><span class="linenos">3811</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33882,6 +35656,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AnyValue.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AnyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="AnyValue.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AnyValue.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AnyValue.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -33920,8 +35695,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AnyValue.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="AnyValue.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="AnyValue.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="AnyValue.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="AnyValue.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="AnyValue.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="AnyValue.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="AnyValue.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="AnyValue.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="AnyValue.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -33943,24 +35720,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-3550"><a href="#Case-3550"><span class="linenos">3550</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-3551"><a href="#Case-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">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-3552"><a href="#Case-3552"><span class="linenos">3552</span></a>
-</span><span id="Case-3553"><a href="#Case-3553"><span class="linenos">3553</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-3554"><a href="#Case-3554"><span class="linenos">3554</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-3555"><a href="#Case-3555"><span class="linenos">3555</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Case-3556"><a href="#Case-3556"><span class="linenos">3556</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="Case-3557"><a href="#Case-3557"><span class="linenos">3557</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="Case-3558"><a href="#Case-3558"><span class="linenos">3558</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-3559"><a href="#Case-3559"><span class="linenos">3559</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-3560"><a href="#Case-3560"><span class="linenos">3560</span></a> <span class="p">),</span>
-</span><span id="Case-3561"><a href="#Case-3561"><span class="linenos">3561</span></a> <span class="p">)</span>
-</span><span id="Case-3562"><a href="#Case-3562"><span class="linenos">3562</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Case-3563"><a href="#Case-3563"><span class="linenos">3563</span></a>
-</span><span id="Case-3564"><a href="#Case-3564"><span class="linenos">3564</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-3565"><a href="#Case-3565"><span class="linenos">3565</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-3566"><a href="#Case-3566"><span class="linenos">3566</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-3567"><a href="#Case-3567"><span class="linenos">3567</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case-3814"><a href="#Case-3814"><span class="linenos">3814</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-3815"><a href="#Case-3815"><span class="linenos">3815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3816"><a href="#Case-3816"><span class="linenos">3816</span></a>
+</span><span id="Case-3817"><a href="#Case-3817"><span class="linenos">3817</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-3818"><a href="#Case-3818"><span class="linenos">3818</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-3819"><a href="#Case-3819"><span class="linenos">3819</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Case-3820"><a href="#Case-3820"><span class="linenos">3820</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="Case-3821"><a href="#Case-3821"><span class="linenos">3821</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="Case-3822"><a href="#Case-3822"><span class="linenos">3822</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-3823"><a href="#Case-3823"><span class="linenos">3823</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-3824"><a href="#Case-3824"><span class="linenos">3824</span></a> <span class="p">),</span>
+</span><span id="Case-3825"><a href="#Case-3825"><span class="linenos">3825</span></a> <span class="p">)</span>
+</span><span id="Case-3826"><a href="#Case-3826"><span class="linenos">3826</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="Case-3827"><a href="#Case-3827"><span class="linenos">3827</span></a>
+</span><span id="Case-3828"><a href="#Case-3828"><span class="linenos">3828</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-3829"><a href="#Case-3829"><span class="linenos">3829</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-3830"><a href="#Case-3830"><span class="linenos">3830</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-3831"><a href="#Case-3831"><span class="linenos">3831</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -33977,16 +35754,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-3553"><a href="#Case.when-3553"><span class="linenos">3553</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-3554"><a href="#Case.when-3554"><span class="linenos">3554</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-3555"><a href="#Case.when-3555"><span class="linenos">3555</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-3556"><a href="#Case.when-3556"><span class="linenos">3556</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="Case.when-3557"><a href="#Case.when-3557"><span class="linenos">3557</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="Case.when-3558"><a href="#Case.when-3558"><span class="linenos">3558</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-3559"><a href="#Case.when-3559"><span class="linenos">3559</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-3560"><a href="#Case.when-3560"><span class="linenos">3560</span></a> <span class="p">),</span>
-</span><span id="Case.when-3561"><a href="#Case.when-3561"><span class="linenos">3561</span></a> <span class="p">)</span>
-</span><span id="Case.when-3562"><a href="#Case.when-3562"><span class="linenos">3562</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case.when-3817"><a href="#Case.when-3817"><span class="linenos">3817</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-3818"><a href="#Case.when-3818"><span class="linenos">3818</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-3819"><a href="#Case.when-3819"><span class="linenos">3819</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-3820"><a href="#Case.when-3820"><span class="linenos">3820</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="Case.when-3821"><a href="#Case.when-3821"><span class="linenos">3821</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="Case.when-3822"><a href="#Case.when-3822"><span class="linenos">3822</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-3823"><a href="#Case.when-3823"><span class="linenos">3823</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-3824"><a href="#Case.when-3824"><span class="linenos">3824</span></a> <span class="p">),</span>
+</span><span id="Case.when-3825"><a href="#Case.when-3825"><span class="linenos">3825</span></a> <span class="p">)</span>
+</span><span id="Case.when-3826"><a href="#Case.when-3826"><span class="linenos">3826</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -34004,10 +35781,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_-3564"><a href="#Case.else_-3564"><span class="linenos">3564</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_-3565"><a href="#Case.else_-3565"><span class="linenos">3565</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_-3566"><a href="#Case.else_-3566"><span class="linenos">3566</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_-3567"><a href="#Case.else_-3567"><span class="linenos">3567</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case.else_-3828"><a href="#Case.else_-3828"><span class="linenos">3828</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_-3829"><a href="#Case.else_-3829"><span class="linenos">3829</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_-3830"><a href="#Case.else_-3830"><span class="linenos">3830</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_-3831"><a href="#Case.else_-3831"><span class="linenos">3831</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -34030,6 +35807,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Case.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Case.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Case.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Case.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Case.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34068,8 +35846,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Case.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Case.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Case.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Case.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Case.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Case.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Case.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Case.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Case.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Case.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34091,23 +35871,23 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3570"><a href="#Cast-3570"><span class="linenos">3570</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-3571"><a href="#Cast-3571"><span class="linenos">3571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Cast-3572"><a href="#Cast-3572"><span class="linenos">3572</span></a>
-</span><span id="Cast-3573"><a href="#Cast-3573"><span class="linenos">3573</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3574"><a href="#Cast-3574"><span class="linenos">3574</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-3575"><a href="#Cast-3575"><span class="linenos">3575</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-3576"><a href="#Cast-3576"><span class="linenos">3576</span></a>
-</span><span id="Cast-3577"><a href="#Cast-3577"><span class="linenos">3577</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3578"><a href="#Cast-3578"><span class="linenos">3578</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Cast-3579"><a href="#Cast-3579"><span class="linenos">3579</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-3580"><a href="#Cast-3580"><span class="linenos">3580</span></a>
-</span><span id="Cast-3581"><a href="#Cast-3581"><span class="linenos">3581</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3582"><a href="#Cast-3582"><span class="linenos">3582</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Cast-3583"><a href="#Cast-3583"><span class="linenos">3583</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-3584"><a href="#Cast-3584"><span class="linenos">3584</span></a>
-</span><span id="Cast-3585"><a href="#Cast-3585"><span class="linenos">3585</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast-3586"><a href="#Cast-3586"><span class="linenos">3586</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3834"><a href="#Cast-3834"><span class="linenos">3834</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-3835"><a href="#Cast-3835"><span class="linenos">3835</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Cast-3836"><a href="#Cast-3836"><span class="linenos">3836</span></a>
+</span><span id="Cast-3837"><a href="#Cast-3837"><span class="linenos">3837</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3838"><a href="#Cast-3838"><span class="linenos">3838</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-3839"><a href="#Cast-3839"><span class="linenos">3839</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-3840"><a href="#Cast-3840"><span class="linenos">3840</span></a>
+</span><span id="Cast-3841"><a href="#Cast-3841"><span class="linenos">3841</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3842"><a href="#Cast-3842"><span class="linenos">3842</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-3843"><a href="#Cast-3843"><span class="linenos">3843</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-3844"><a href="#Cast-3844"><span class="linenos">3844</span></a>
+</span><span id="Cast-3845"><a href="#Cast-3845"><span class="linenos">3845</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3846"><a href="#Cast-3846"><span class="linenos">3846</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-3847"><a href="#Cast-3847"><span class="linenos">3847</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-3848"><a href="#Cast-3848"><span class="linenos">3848</span></a>
+</span><span id="Cast-3849"><a href="#Cast-3849"><span class="linenos">3849</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast-3850"><a href="#Cast-3850"><span class="linenos">3850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
@@ -34115,7 +35895,7 @@ name is set to the expression's class name transformed to snake case.</li>
<div id="Cast.output_name" class="classattr">
<div class="attr variable">
- <span class="name">output_name</span>
+ <span class="name">output_name</span><span class="annotation">: str</span>
</div>
@@ -34154,8 +35934,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3585"><a href="#Cast.is_type-3585"><span class="linenos">3585</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast.is_type-3586"><a href="#Cast.is_type-3586"><span class="linenos">3586</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3849"><a href="#Cast.is_type-3849"><span class="linenos">3849</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast.is_type-3850"><a href="#Cast.is_type-3850"><span class="linenos">3850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
@@ -34177,6 +35957,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Cast.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cast.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="Cast.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Cast.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Cast.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34215,8 +35996,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Cast.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Cast.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Cast.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Cast.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Cast.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Cast.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Cast.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Cast.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Cast.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Cast.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34227,6 +36010,93 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="CastToStrType">
+ <input id="CastToStrType-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr class">
+
+ <span class="def">class</span>
+ <span class="name">CastToStrType</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="CastToStrType-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#CastToStrType"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CastToStrType-3853"><a href="#CastToStrType-3853"><span class="linenos">3853</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-3854"><a href="#CastToStrType-3854"><span class="linenos">3854</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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 class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="CastToStrType.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="CastToStrType.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="CastToStrType.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="CastToStrType.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="CastToStrType.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="CastToStrType.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="CastToStrType.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="CastToStrType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="CastToStrType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="CastToStrType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CastToStrType.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="CastToStrType.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="CastToStrType.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="CastToStrType.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="CastToStrType.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="CastToStrType.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="CastToStrType.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="CastToStrType.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="CastToStrType.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="CastToStrType.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="CastToStrType.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="CastToStrType.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="CastToStrType.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="CastToStrType.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="CastToStrType.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="CastToStrType.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="CastToStrType.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="CastToStrType.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="CastToStrType.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="CastToStrType.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="CastToStrType.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="CastToStrType.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="CastToStrType.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="CastToStrType.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="CastToStrType.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="CastToStrType.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="CastToStrType.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CastToStrType.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="CastToStrType.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="CastToStrType.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CastToStrType.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="CastToStrType.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="CastToStrType.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="CastToStrType.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="CastToStrType.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="CastToStrType.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Collate">
<input id="Collate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -34238,8 +36108,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Collate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3589"><a href="#Collate-3589"><span class="linenos">3589</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Collate-3590"><a href="#Collate-3590"><span class="linenos">3590</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3857"><a href="#Collate-3857"><span class="linenos">3857</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Collate-3858"><a href="#Collate-3858"><span class="linenos">3858</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34261,6 +36131,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Collate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Collate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Collate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Collate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Collate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34292,8 +36163,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Collate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Collate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Collate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Collate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Collate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Collate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Collate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Collate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Collate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Collate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34315,8 +36188,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TryCast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3593"><a href="#TryCast-3593"><span class="linenos">3593</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-3594"><a href="#TryCast-3594"><span class="linenos">3594</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3861"><a href="#TryCast-3861"><span class="linenos">3861</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-3862"><a href="#TryCast-3862"><span class="linenos">3862</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34337,6 +36210,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TryCast.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TryCast.alias" class="variable"><a href="#Expression.alias">alias</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>
<dd id="TryCast.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TryCast.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TryCast.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34380,8 +36254,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TryCast.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TryCast.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TryCast.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TryCast.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TryCast.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TryCast.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TryCast.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TryCast.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TryCast.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TryCast.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34403,9 +36279,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Ceil"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3597"><a href="#Ceil-3597"><span class="linenos">3597</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-3598"><a href="#Ceil-3598"><span class="linenos">3598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Ceil-3599"><a href="#Ceil-3599"><span class="linenos">3599</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-3865"><a href="#Ceil-3865"><span class="linenos">3865</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-3866"><a href="#Ceil-3866"><span class="linenos">3866</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3867"><a href="#Ceil-3867"><span class="linenos">3867</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>
@@ -34427,6 +36303,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Ceil.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Ceil.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Ceil.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Ceil.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Ceil.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34465,8 +36342,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Ceil.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Ceil.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Ceil.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Ceil.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Ceil.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Ceil.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Ceil.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Ceil.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Ceil.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Ceil.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34488,9 +36367,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Coalesce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3602"><a href="#Coalesce-3602"><span class="linenos">3602</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-3603"><a href="#Coalesce-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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Coalesce-3604"><a href="#Coalesce-3604"><span class="linenos">3604</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3870"><a href="#Coalesce-3870"><span class="linenos">3870</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-3871"><a href="#Coalesce-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;this&quot;</span><span class="p">:</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-3872"><a href="#Coalesce-3872"><span class="linenos">3872</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -34512,6 +36391,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Coalesce.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Coalesce.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Coalesce.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Coalesce.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Coalesce.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34550,8 +36430,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Coalesce.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Coalesce.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Coalesce.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Coalesce.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Coalesce.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Coalesce.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Coalesce.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Coalesce.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Coalesce.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Coalesce.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34573,9 +36455,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Concat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-3607"><a href="#Concat-3607"><span class="linenos">3607</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-3608"><a href="#Concat-3608"><span class="linenos">3608</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Concat-3609"><a href="#Concat-3609"><span class="linenos">3609</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-3875"><a href="#Concat-3875"><span class="linenos">3875</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-3876"><a href="#Concat-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Concat-3877"><a href="#Concat-3877"><span class="linenos">3877</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -34597,6 +36479,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Concat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Concat.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Concat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Concat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Concat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34635,8 +36518,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Concat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Concat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Concat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Concat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Concat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Concat.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Concat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Concat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Concat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Concat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34658,8 +36543,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ConcatWs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3612"><a href="#ConcatWs-3612"><span class="linenos">3612</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-3613"><a href="#ConcatWs-3613"><span class="linenos">3613</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-3880"><a href="#ConcatWs-3880"><span class="linenos">3880</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-3881"><a href="#ConcatWs-3881"><span class="linenos">3881</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>
@@ -34681,6 +36566,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ConcatWs.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ConcatWs.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ConcatWs.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ConcatWs.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ConcatWs.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34719,8 +36605,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ConcatWs.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ConcatWs.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ConcatWs.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ConcatWs.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ConcatWs.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ConcatWs.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ConcatWs.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ConcatWs.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ConcatWs.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ConcatWs.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34742,8 +36630,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Count"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3616"><a href="#Count-3616"><span class="linenos">3616</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-3617"><a href="#Count-3617"><span class="linenos">3617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3884"><a href="#Count-3884"><span class="linenos">3884</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-3885"><a href="#Count-3885"><span class="linenos">3885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -34765,6 +36653,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Count.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Count.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Count.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Count.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Count.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34803,8 +36692,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Count.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Count.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Count.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Count.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Count.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Count.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Count.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Count.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Count.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Count.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34826,8 +36717,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CountIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-3620"><a href="#CountIf-3620"><span class="linenos">3620</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-3621"><a href="#CountIf-3621"><span class="linenos">3621</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-3888"><a href="#CountIf-3888"><span class="linenos">3888</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-3889"><a href="#CountIf-3889"><span class="linenos">3889</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34849,6 +36740,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CountIf.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CountIf.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CountIf.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CountIf.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CountIf.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34887,8 +36779,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CountIf.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CountIf.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CountIf.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CountIf.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CountIf.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CountIf.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CountIf.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CountIf.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CountIf.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CountIf.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34910,8 +36804,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3624"><a href="#CurrentDate-3624"><span class="linenos">3624</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-3625"><a href="#CurrentDate-3625"><span class="linenos">3625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-3892"><a href="#CurrentDate-3892"><span class="linenos">3892</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-3893"><a href="#CurrentDate-3893"><span class="linenos">3893</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -34933,6 +36827,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentDate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CurrentDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -34971,8 +36866,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CurrentDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentDate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CurrentDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -34994,8 +36891,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentDatetime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3628"><a href="#CurrentDatetime-3628"><span class="linenos">3628</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-3629"><a href="#CurrentDatetime-3629"><span class="linenos">3629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3896"><a href="#CurrentDatetime-3896"><span class="linenos">3896</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-3897"><a href="#CurrentDatetime-3897"><span class="linenos">3897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -35017,6 +36914,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentDatetime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentDatetime.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CurrentDatetime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentDatetime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentDatetime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35055,8 +36953,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentDatetime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentDatetime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentDatetime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CurrentDatetime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentDatetime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentDatetime.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CurrentDatetime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentDatetime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentDatetime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentDatetime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35078,8 +36978,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3632"><a href="#CurrentTime-3632"><span class="linenos">3632</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-3633"><a href="#CurrentTime-3633"><span class="linenos">3633</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-3900"><a href="#CurrentTime-3900"><span class="linenos">3900</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-3901"><a href="#CurrentTime-3901"><span class="linenos">3901</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -35101,6 +37001,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentTime.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CurrentTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35139,8 +37040,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CurrentTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentTime.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CurrentTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35162,8 +37065,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentTimestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3636"><a href="#CurrentTimestamp-3636"><span class="linenos">3636</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-3637"><a href="#CurrentTimestamp-3637"><span class="linenos">3637</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-3904"><a href="#CurrentTimestamp-3904"><span class="linenos">3904</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-3905"><a href="#CurrentTimestamp-3905"><span class="linenos">3905</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -35185,6 +37088,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentTimestamp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentTimestamp.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="CurrentTimestamp.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentTimestamp.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentTimestamp.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35223,8 +37127,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentTimestamp.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentTimestamp.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentTimestamp.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CurrentTimestamp.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentTimestamp.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentTimestamp.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CurrentTimestamp.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentTimestamp.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentTimestamp.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentTimestamp.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35246,8 +37152,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentUser"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-3640"><a href="#CurrentUser-3640"><span class="linenos">3640</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-3641"><a href="#CurrentUser-3641"><span class="linenos">3641</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-3908"><a href="#CurrentUser-3908"><span class="linenos">3908</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-3909"><a href="#CurrentUser-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">False</span><span class="p">}</span>
</span></pre></div>
@@ -35269,6 +37175,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentUser.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentUser.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentUser.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="CurrentUser.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CurrentUser.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentUser.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentUser.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35307,8 +37214,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentUser.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentUser.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentUser.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="CurrentUser.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentUser.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentUser.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="CurrentUser.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentUser.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentUser.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentUser.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35330,8 +37239,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-3644"><a href="#DateAdd-3644"><span class="linenos">3644</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DateAdd-3645"><a href="#DateAdd-3645"><span class="linenos">3645</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3912"><a href="#DateAdd-3912"><span class="linenos">3912</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DateAdd-3913"><a href="#DateAdd-3913"><span class="linenos">3913</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -35355,8 +37264,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateAdd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35376,6 +37287,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35417,8 +37329,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-3648"><a href="#DateSub-3648"><span class="linenos">3648</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DateSub-3649"><a href="#DateSub-3649"><span class="linenos">3649</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3916"><a href="#DateSub-3916"><span class="linenos">3916</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DateSub-3917"><a href="#DateSub-3917"><span class="linenos">3917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -35442,8 +37354,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateSub.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35463,6 +37377,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateSub.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35504,9 +37419,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-3652"><a href="#DateDiff-3652"><span class="linenos">3652</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-3653"><a href="#DateDiff-3653"><span class="linenos">3653</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-3654"><a href="#DateDiff-3654"><span class="linenos">3654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3920"><a href="#DateDiff-3920"><span class="linenos">3920</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-3921"><a href="#DateDiff-3921"><span class="linenos">3921</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-3922"><a href="#DateDiff-3922"><span class="linenos">3922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -35530,8 +37445,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateDiff.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35551,6 +37468,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35592,8 +37510,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3657"><a href="#DateTrunc-3657"><span class="linenos">3657</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-3658"><a href="#DateTrunc-3658"><span class="linenos">3658</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3925"><a href="#DateTrunc-3925"><span class="linenos">3925</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-3926"><a href="#DateTrunc-3926"><span class="linenos">3926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -35615,6 +37533,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35653,8 +37572,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35676,8 +37597,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-3661"><a href="#DatetimeAdd-3661"><span class="linenos">3661</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DatetimeAdd-3662"><a href="#DatetimeAdd-3662"><span class="linenos">3662</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span 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-3929"><a href="#DatetimeAdd-3929"><span class="linenos">3929</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DatetimeAdd-3930"><a href="#DatetimeAdd-3930"><span class="linenos">3930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -35701,8 +37622,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DatetimeAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeAdd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DatetimeAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35722,6 +37645,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DatetimeAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35763,8 +37687,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-3665"><a href="#DatetimeSub-3665"><span class="linenos">3665</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DatetimeSub-3666"><a href="#DatetimeSub-3666"><span class="linenos">3666</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3933"><a href="#DatetimeSub-3933"><span class="linenos">3933</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DatetimeSub-3934"><a href="#DatetimeSub-3934"><span class="linenos">3934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -35788,8 +37712,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DatetimeSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeSub.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DatetimeSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35809,6 +37735,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DatetimeSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35850,8 +37777,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-3669"><a href="#DatetimeDiff-3669"><span class="linenos">3669</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-3670"><a href="#DatetimeDiff-3670"><span class="linenos">3670</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3937"><a href="#DatetimeDiff-3937"><span class="linenos">3937</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-3938"><a href="#DatetimeDiff-3938"><span class="linenos">3938</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -35875,8 +37802,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DatetimeDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeDiff.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DatetimeDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35896,6 +37825,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DatetimeDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -35937,8 +37867,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-3673"><a href="#DatetimeTrunc-3673"><span class="linenos">3673</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-3674"><a href="#DatetimeTrunc-3674"><span class="linenos">3674</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3941"><a href="#DatetimeTrunc-3941"><span class="linenos">3941</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-3942"><a href="#DatetimeTrunc-3942"><span class="linenos">3942</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -35962,8 +37892,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DatetimeTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DatetimeTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -35983,6 +37915,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DatetimeTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36024,8 +37957,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfWeek"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3677"><a href="#DayOfWeek-3677"><span class="linenos">3677</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-3678"><a href="#DayOfWeek-3678"><span class="linenos">3678</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-3945"><a href="#DayOfWeek-3945"><span class="linenos">3945</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-3946"><a href="#DayOfWeek-3946"><span class="linenos">3946</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>
@@ -36047,6 +37980,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfWeek.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DayOfWeek.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DayOfWeek.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DayOfWeek.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DayOfWeek.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36085,8 +38019,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfWeek.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DayOfWeek.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DayOfWeek.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DayOfWeek.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DayOfWeek.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DayOfWeek.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DayOfWeek.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DayOfWeek.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DayOfWeek.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DayOfWeek.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36108,8 +38044,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3681"><a href="#DayOfMonth-3681"><span class="linenos">3681</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-3682"><a href="#DayOfMonth-3682"><span class="linenos">3682</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-3949"><a href="#DayOfMonth-3949"><span class="linenos">3949</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-3950"><a href="#DayOfMonth-3950"><span class="linenos">3950</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>
@@ -36131,6 +38067,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DayOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DayOfMonth.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DayOfMonth.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DayOfMonth.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36169,8 +38106,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfMonth.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DayOfMonth.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DayOfMonth.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DayOfMonth.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DayOfMonth.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DayOfMonth.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DayOfMonth.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DayOfMonth.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DayOfMonth.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DayOfMonth.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36192,8 +38131,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3685"><a href="#DayOfYear-3685"><span class="linenos">3685</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-3686"><a href="#DayOfYear-3686"><span class="linenos">3686</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-3953"><a href="#DayOfYear-3953"><span class="linenos">3953</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-3954"><a href="#DayOfYear-3954"><span class="linenos">3954</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>
@@ -36215,6 +38154,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfYear.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DayOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DayOfYear.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DayOfYear.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DayOfYear.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36253,8 +38193,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfYear.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DayOfYear.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DayOfYear.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DayOfYear.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DayOfYear.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DayOfYear.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DayOfYear.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DayOfYear.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DayOfYear.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DayOfYear.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36276,8 +38218,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#WeekOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3689"><a href="#WeekOfYear-3689"><span class="linenos">3689</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-3690"><a href="#WeekOfYear-3690"><span class="linenos">3690</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-3957"><a href="#WeekOfYear-3957"><span class="linenos">3957</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-3958"><a href="#WeekOfYear-3958"><span class="linenos">3958</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>
@@ -36299,6 +38241,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="WeekOfYear.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WeekOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="WeekOfYear.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WeekOfYear.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WeekOfYear.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36337,8 +38280,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="WeekOfYear.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="WeekOfYear.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="WeekOfYear.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="WeekOfYear.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="WeekOfYear.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="WeekOfYear.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="WeekOfYear.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="WeekOfYear.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="WeekOfYear.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="WeekOfYear.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36360,8 +38305,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LastDateOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3693"><a href="#LastDateOfMonth-3693"><span class="linenos">3693</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-3694"><a href="#LastDateOfMonth-3694"><span class="linenos">3694</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3961"><a href="#LastDateOfMonth-3961"><span class="linenos">3961</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-3962"><a href="#LastDateOfMonth-3962"><span class="linenos">3962</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36383,6 +38328,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LastDateOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LastDateOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
@@ -36421,8 +38367,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LastDateOfMonth.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LastDateOfMonth.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LastDateOfMonth.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="LastDateOfMonth.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LastDateOfMonth.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LastDateOfMonth.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="LastDateOfMonth.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LastDateOfMonth.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LastDateOfMonth.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LastDateOfMonth.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36444,8 +38392,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Extract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-3697"><a href="#Extract-3697"><span class="linenos">3697</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-3698"><a href="#Extract-3698"><span class="linenos">3698</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3965"><a href="#Extract-3965"><span class="linenos">3965</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-3966"><a href="#Extract-3966"><span class="linenos">3966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -36467,6 +38415,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Extract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Extract.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Extract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Extract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Extract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36505,8 +38454,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Extract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Extract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Extract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Extract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Extract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Extract.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Extract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Extract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Extract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Extract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36528,8 +38479,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-3701"><a href="#TimestampAdd-3701"><span class="linenos">3701</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-3702"><a href="#TimestampAdd-3702"><span class="linenos">3702</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3969"><a href="#TimestampAdd-3969"><span class="linenos">3969</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-3970"><a href="#TimestampAdd-3970"><span class="linenos">3970</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -36553,8 +38504,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimestampAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampAdd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimestampAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36574,6 +38527,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimestampAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36615,8 +38569,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-3705"><a href="#TimestampSub-3705"><span class="linenos">3705</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-3706"><a href="#TimestampSub-3706"><span class="linenos">3706</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3973"><a href="#TimestampSub-3973"><span class="linenos">3973</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-3974"><a href="#TimestampSub-3974"><span class="linenos">3974</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -36640,8 +38594,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimestampSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampSub.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimestampSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36661,6 +38617,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampSub.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimestampSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36702,8 +38659,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-3709"><a href="#TimestampDiff-3709"><span class="linenos">3709</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-3710"><a href="#TimestampDiff-3710"><span class="linenos">3710</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3977"><a href="#TimestampDiff-3977"><span class="linenos">3977</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-3978"><a href="#TimestampDiff-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;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -36727,8 +38684,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimestampDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampDiff.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimestampDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36748,6 +38707,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimestampDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36789,8 +38749,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-3713"><a href="#TimestampTrunc-3713"><span class="linenos">3713</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-3714"><a href="#TimestampTrunc-3714"><span class="linenos">3714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3981"><a href="#TimestampTrunc-3981"><span class="linenos">3981</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-3982"><a href="#TimestampTrunc-3982"><span class="linenos">3982</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -36814,8 +38774,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimestampTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimestampTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36835,6 +38797,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimestampTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36876,8 +38839,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-3717"><a href="#TimeAdd-3717"><span class="linenos">3717</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-3718"><a href="#TimeAdd-3718"><span class="linenos">3718</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3985"><a href="#TimeAdd-3985"><span class="linenos">3985</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-3986"><a href="#TimeAdd-3986"><span class="linenos">3986</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -36901,8 +38864,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeAdd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -36922,6 +38887,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -36963,8 +38929,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-3721"><a href="#TimeSub-3721"><span class="linenos">3721</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-3722"><a href="#TimeSub-3722"><span class="linenos">3722</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-3989"><a href="#TimeSub-3989"><span class="linenos">3989</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-3990"><a href="#TimeSub-3990"><span class="linenos">3990</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -36988,8 +38954,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeSub.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37009,6 +38977,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37050,8 +39019,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-3725"><a href="#TimeDiff-3725"><span class="linenos">3725</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-3726"><a href="#TimeDiff-3726"><span class="linenos">3726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3993"><a href="#TimeDiff-3993"><span class="linenos">3993</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-3994"><a href="#TimeDiff-3994"><span class="linenos">3994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -37075,8 +39044,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeDiff.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37096,6 +39067,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37137,8 +39109,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-3729"><a href="#TimeTrunc-3729"><span class="linenos">3729</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-3730"><a href="#TimeTrunc-3730"><span class="linenos">3730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3997"><a href="#TimeTrunc-3997"><span class="linenos">3997</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-3998"><a href="#TimeTrunc-3998"><span class="linenos">3998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -37162,8 +39134,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37183,6 +39157,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37224,9 +39199,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-3733"><a href="#DateFromParts-3733"><span class="linenos">3733</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-3734"><a href="#DateFromParts-3734"><span class="linenos">3734</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-3735"><a href="#DateFromParts-3735"><span class="linenos">3735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4001"><a href="#DateFromParts-4001"><span class="linenos">4001</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-4002"><a href="#DateFromParts-4002"><span class="linenos">4002</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-4003"><a href="#DateFromParts-4003"><span class="linenos">4003</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>
@@ -37248,6 +39223,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateFromParts.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateFromParts.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateFromParts.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateFromParts.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateFromParts.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37286,8 +39262,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateFromParts.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateFromParts.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateFromParts.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateFromParts.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateFromParts.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateFromParts.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateFromParts.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateFromParts.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateFromParts.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateFromParts.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37309,8 +39287,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3738"><a href="#DateStrToDate-3738"><span class="linenos">3738</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-3739"><a href="#DateStrToDate-3739"><span class="linenos">3739</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-4006"><a href="#DateStrToDate-4006"><span class="linenos">4006</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-4007"><a href="#DateStrToDate-4007"><span class="linenos">4007</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37332,6 +39310,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateStrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateStrToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateStrToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateStrToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37370,8 +39349,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateStrToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateStrToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateStrToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateStrToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateStrToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateStrToDate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateStrToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateStrToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateStrToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateStrToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37393,8 +39374,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3742"><a href="#DateToDateStr-3742"><span class="linenos">3742</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-3743"><a href="#DateToDateStr-3743"><span class="linenos">3743</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-4010"><a href="#DateToDateStr-4010"><span class="linenos">4010</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-4011"><a href="#DateToDateStr-4011"><span class="linenos">4011</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37416,6 +39397,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateToDateStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateToDateStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateToDateStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateToDateStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37454,8 +39436,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateToDateStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateToDateStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateToDateStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateToDateStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateToDateStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateToDateStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateToDateStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateToDateStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateToDateStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateToDateStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37477,8 +39461,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3746"><a href="#DateToDi-3746"><span class="linenos">3746</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-3747"><a href="#DateToDi-3747"><span class="linenos">3747</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-4014"><a href="#DateToDi-4014"><span class="linenos">4014</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-4015"><a href="#DateToDi-4015"><span class="linenos">4015</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37500,6 +39484,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateToDi.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DateToDi.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateToDi.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateToDi.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37538,8 +39523,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateToDi.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateToDi.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateToDi.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DateToDi.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateToDi.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateToDi.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DateToDi.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateToDi.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateToDi.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateToDi.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37561,8 +39548,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Day"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3750"><a href="#Day-3750"><span class="linenos">3750</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-3751"><a href="#Day-3751"><span class="linenos">3751</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Day-4018"><a href="#Day-4018"><span class="linenos">4018</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-4019"><a href="#Day-4019"><span class="linenos">4019</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37584,6 +39571,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Day.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Day.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Day.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Day.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Day.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37622,8 +39610,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Day.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Day.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Day.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Day.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Day.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Day.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Day.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Day.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Day.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Day.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37645,8 +39635,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Decode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-3754"><a href="#Decode-3754"><span class="linenos">3754</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-3755"><a href="#Decode-3755"><span class="linenos">3755</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4022"><a href="#Decode-4022"><span class="linenos">4022</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-4023"><a href="#Decode-4023"><span class="linenos">4023</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -37668,6 +39658,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Decode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Decode.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Decode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Decode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Decode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37706,8 +39697,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Decode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Decode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Decode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Decode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Decode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Decode.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Decode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Decode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Decode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Decode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37729,8 +39722,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DiToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3758"><a href="#DiToDate-3758"><span class="linenos">3758</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-3759"><a href="#DiToDate-3759"><span class="linenos">3759</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-4026"><a href="#DiToDate-4026"><span class="linenos">4026</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-4027"><a href="#DiToDate-4027"><span class="linenos">4027</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37752,6 +39745,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DiToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DiToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="DiToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DiToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DiToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37790,8 +39784,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DiToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DiToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DiToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="DiToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DiToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DiToDate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="DiToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DiToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DiToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DiToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37813,8 +39809,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Encode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-3762"><a href="#Encode-3762"><span class="linenos">3762</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-3763"><a href="#Encode-3763"><span class="linenos">3763</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4030"><a href="#Encode-4030"><span class="linenos">4030</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-4031"><a href="#Encode-4031"><span class="linenos">4031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -37836,6 +39832,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Encode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Encode.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Encode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Encode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Encode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37874,8 +39871,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Encode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Encode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Encode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Encode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Encode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Encode.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Encode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Encode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Encode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Encode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37897,8 +39896,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Exp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3766"><a href="#Exp-3766"><span class="linenos">3766</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-3767"><a href="#Exp-3767"><span class="linenos">3767</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-4034"><a href="#Exp-4034"><span class="linenos">4034</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-4035"><a href="#Exp-4035"><span class="linenos">4035</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37920,6 +39919,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Exp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Exp.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Exp.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Exp.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Exp.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -37958,8 +39958,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Exp.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Exp.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Exp.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Exp.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Exp.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Exp.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Exp.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Exp.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Exp.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Exp.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -37981,8 +39983,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Explode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3770"><a href="#Explode-3770"><span class="linenos">3770</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-3771"><a href="#Explode-3771"><span class="linenos">3771</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-4038"><a href="#Explode-4038"><span class="linenos">4038</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-4039"><a href="#Explode-4039"><span class="linenos">4039</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38004,6 +40006,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Explode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Explode.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Explode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Explode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Explode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38042,8 +40045,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Explode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Explode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Explode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Explode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Explode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Explode.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Explode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Explode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Explode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Explode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38054,90 +40059,6 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
- <section id="ExponentialTimeDecayedAvg">
- <input id="ExponentialTimeDecayedAvg-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">ExponentialTimeDecayedAvg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
-
- <label class="view-source-button" for="ExponentialTimeDecayedAvg-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#ExponentialTimeDecayedAvg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ExponentialTimeDecayedAvg-3774"><a href="#ExponentialTimeDecayedAvg-3774"><span class="linenos">3774</span></a><span class="k">class</span> <span class="nc">ExponentialTimeDecayedAvg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ExponentialTimeDecayedAvg-3775"><a href="#ExponentialTimeDecayedAvg-3775"><span class="linenos">3775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;decay&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="ExponentialTimeDecayedAvg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="ExponentialTimeDecayedAvg.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="ExponentialTimeDecayedAvg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="ExponentialTimeDecayedAvg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="ExponentialTimeDecayedAvg.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="ExponentialTimeDecayedAvg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="ExponentialTimeDecayedAvg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="ExponentialTimeDecayedAvg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="ExponentialTimeDecayedAvg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="ExponentialTimeDecayedAvg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="ExponentialTimeDecayedAvg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="ExponentialTimeDecayedAvg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="ExponentialTimeDecayedAvg.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="ExponentialTimeDecayedAvg.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="ExponentialTimeDecayedAvg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="ExponentialTimeDecayedAvg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="ExponentialTimeDecayedAvg.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="ExponentialTimeDecayedAvg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="ExponentialTimeDecayedAvg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="ExponentialTimeDecayedAvg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="ExponentialTimeDecayedAvg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="ExponentialTimeDecayedAvg.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="ExponentialTimeDecayedAvg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="ExponentialTimeDecayedAvg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="ExponentialTimeDecayedAvg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="ExponentialTimeDecayedAvg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="ExponentialTimeDecayedAvg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="ExponentialTimeDecayedAvg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="ExponentialTimeDecayedAvg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="ExponentialTimeDecayedAvg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="ExponentialTimeDecayedAvg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="ExponentialTimeDecayedAvg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="ExponentialTimeDecayedAvg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="ExponentialTimeDecayedAvg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="ExponentialTimeDecayedAvg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="ExponentialTimeDecayedAvg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="ExponentialTimeDecayedAvg.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="ExponentialTimeDecayedAvg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="ExponentialTimeDecayedAvg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="ExponentialTimeDecayedAvg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="ExponentialTimeDecayedAvg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
-
- </div>
- <div><dt><a href="#Condition">Condition</a></dt>
- <dd id="ExponentialTimeDecayedAvg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
- <dd id="ExponentialTimeDecayedAvg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
- <dd id="ExponentialTimeDecayedAvg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
- <dd id="ExponentialTimeDecayedAvg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
- <dd id="ExponentialTimeDecayedAvg.between" class="function"><a href="#Condition.between">between</a></dd>
- <dd id="ExponentialTimeDecayedAvg.like" class="function"><a href="#Condition.like">like</a></dd>
- <dd id="ExponentialTimeDecayedAvg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
- <dd id="ExponentialTimeDecayedAvg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
- <dd id="ExponentialTimeDecayedAvg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
- <dd id="ExponentialTimeDecayedAvg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="Floor">
<input id="Floor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -38149,8 +40070,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Floor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-3778"><a href="#Floor-3778"><span class="linenos">3778</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-3779"><a href="#Floor-3779"><span class="linenos">3779</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4042"><a href="#Floor-4042"><span class="linenos">4042</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-4043"><a href="#Floor-4043"><span class="linenos">4043</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -38172,6 +40093,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Floor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Floor.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Floor.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Floor.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Floor.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38210,8 +40132,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Floor.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Floor.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Floor.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Floor.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Floor.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Floor.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Floor.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Floor.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Floor.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Floor.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38222,6 +40146,180 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="FromBase64">
+ <input id="FromBase64-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">FromBase64</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="FromBase64-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#FromBase64"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-4046"><a href="#FromBase64-4046"><span class="linenos">4046</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-4047"><a href="#FromBase64-4047"><span class="linenos">4047</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="FromBase64.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="FromBase64.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="FromBase64.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="FromBase64.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="FromBase64.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="FromBase64.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="FromBase64.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="FromBase64.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="FromBase64.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="FromBase64.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="FromBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="FromBase64.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="FromBase64.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="FromBase64.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="FromBase64.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="FromBase64.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="FromBase64.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="FromBase64.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="FromBase64.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="FromBase64.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="FromBase64.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="FromBase64.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="FromBase64.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="FromBase64.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="FromBase64.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="FromBase64.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="FromBase64.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="FromBase64.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="FromBase64.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="FromBase64.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="FromBase64.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="FromBase64.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="FromBase64.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="FromBase64.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="FromBase64.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="FromBase64.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="FromBase64.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="FromBase64.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="FromBase64.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="FromBase64.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="FromBase64.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="FromBase64.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="FromBase64.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="FromBase64.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="FromBase64.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="FromBase64.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="ToBase64">
+ <input id="ToBase64-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">ToBase64</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="ToBase64-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#ToBase64"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-4050"><a href="#ToBase64-4050"><span class="linenos">4050</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-4051"><a href="#ToBase64-4051"><span class="linenos">4051</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="ToBase64.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="ToBase64.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="ToBase64.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="ToBase64.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="ToBase64.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="ToBase64.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="ToBase64.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="ToBase64.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="ToBase64.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="ToBase64.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ToBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="ToBase64.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="ToBase64.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="ToBase64.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="ToBase64.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="ToBase64.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="ToBase64.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="ToBase64.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="ToBase64.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="ToBase64.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="ToBase64.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="ToBase64.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="ToBase64.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="ToBase64.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="ToBase64.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="ToBase64.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="ToBase64.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="ToBase64.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="ToBase64.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="ToBase64.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="ToBase64.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="ToBase64.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="ToBase64.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="ToBase64.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="ToBase64.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="ToBase64.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="ToBase64.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ToBase64.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="ToBase64.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="ToBase64.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ToBase64.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="ToBase64.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="ToBase64.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="ToBase64.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="ToBase64.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="ToBase64.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Greatest">
<input id="Greatest-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -38233,9 +40331,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Greatest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-3782"><a href="#Greatest-3782"><span class="linenos">3782</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-3783"><a href="#Greatest-3783"><span class="linenos">3783</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Greatest-3784"><a href="#Greatest-3784"><span class="linenos">3784</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-4054"><a href="#Greatest-4054"><span class="linenos">4054</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-4055"><a href="#Greatest-4055"><span class="linenos">4055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Greatest-4056"><a href="#Greatest-4056"><span class="linenos">4056</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -38257,6 +40355,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Greatest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Greatest.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Greatest.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Greatest.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Greatest.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38295,8 +40394,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Greatest.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Greatest.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Greatest.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Greatest.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Greatest.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Greatest.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Greatest.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Greatest.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Greatest.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Greatest.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38318,8 +40419,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#GroupConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-3787"><a href="#GroupConcat-3787"><span class="linenos">3787</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="GroupConcat-3788"><a href="#GroupConcat-3788"><span class="linenos">3788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4059"><a href="#GroupConcat-4059"><span class="linenos">4059</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="GroupConcat-4060"><a href="#GroupConcat-4060"><span class="linenos">4060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -38341,6 +40442,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GroupConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GroupConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="GroupConcat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GroupConcat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GroupConcat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38379,8 +40481,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GroupConcat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GroupConcat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GroupConcat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="GroupConcat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GroupConcat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GroupConcat.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="GroupConcat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GroupConcat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GroupConcat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GroupConcat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38391,90 +40495,6 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
- <section id="GroupUniqArray">
- <input id="GroupUniqArray-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">GroupUniqArray</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
-
- <label class="view-source-button" for="GroupUniqArray-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#GroupUniqArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupUniqArray-3791"><a href="#GroupUniqArray-3791"><span class="linenos">3791</span></a><span class="k">class</span> <span class="nc">GroupUniqArray</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="GroupUniqArray-3792"><a href="#GroupUniqArray-3792"><span class="linenos">3792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="GroupUniqArray.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="GroupUniqArray.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="GroupUniqArray.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="GroupUniqArray.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="GroupUniqArray.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="GroupUniqArray.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="GroupUniqArray.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="GroupUniqArray.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="GroupUniqArray.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="GroupUniqArray.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="GroupUniqArray.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="GroupUniqArray.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="GroupUniqArray.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="GroupUniqArray.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="GroupUniqArray.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="GroupUniqArray.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="GroupUniqArray.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="GroupUniqArray.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="GroupUniqArray.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="GroupUniqArray.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="GroupUniqArray.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="GroupUniqArray.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="GroupUniqArray.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="GroupUniqArray.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="GroupUniqArray.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="GroupUniqArray.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="GroupUniqArray.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="GroupUniqArray.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="GroupUniqArray.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="GroupUniqArray.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="GroupUniqArray.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="GroupUniqArray.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="GroupUniqArray.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="GroupUniqArray.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="GroupUniqArray.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="GroupUniqArray.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="GroupUniqArray.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="GroupUniqArray.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="GroupUniqArray.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="GroupUniqArray.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="GroupUniqArray.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
-
- </div>
- <div><dt><a href="#Condition">Condition</a></dt>
- <dd id="GroupUniqArray.and_" class="function"><a href="#Condition.and_">and_</a></dd>
- <dd id="GroupUniqArray.or_" class="function"><a href="#Condition.or_">or_</a></dd>
- <dd id="GroupUniqArray.not_" class="function"><a href="#Condition.not_">not_</a></dd>
- <dd id="GroupUniqArray.isin" class="function"><a href="#Condition.isin">isin</a></dd>
- <dd id="GroupUniqArray.between" class="function"><a href="#Condition.between">between</a></dd>
- <dd id="GroupUniqArray.like" class="function"><a href="#Condition.like">like</a></dd>
- <dd id="GroupUniqArray.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
- <dd id="GroupUniqArray.eq" class="function"><a href="#Condition.eq">eq</a></dd>
- <dd id="GroupUniqArray.neq" class="function"><a href="#Condition.neq">neq</a></dd>
- <dd id="GroupUniqArray.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="Hex">
<input id="Hex-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -38486,8 +40506,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Hex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3795"><a href="#Hex-3795"><span class="linenos">3795</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-3796"><a href="#Hex-3796"><span class="linenos">3796</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-4063"><a href="#Hex-4063"><span class="linenos">4063</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-4064"><a href="#Hex-4064"><span class="linenos">4064</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38509,6 +40529,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Hex.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Hex.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Hex.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Hex.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38547,8 +40568,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hex.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Hex.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Hex.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Hex.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Hex.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Hex.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Hex.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Hex.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Hex.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Hex.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38559,90 +40582,6 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
- <section id="Histogram">
- <input id="Histogram-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">Histogram</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
-
- <label class="view-source-button" for="Histogram-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#Histogram"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Histogram-3799"><a href="#Histogram-3799"><span class="linenos">3799</span></a><span class="k">class</span> <span class="nc">Histogram</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Histogram-3800"><a href="#Histogram-3800"><span class="linenos">3800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;bins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="Histogram.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="Histogram.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="Histogram.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="Histogram.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="Histogram.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="Histogram.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="Histogram.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="Histogram.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="Histogram.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="Histogram.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="Histogram.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="Histogram.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="Histogram.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="Histogram.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="Histogram.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="Histogram.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="Histogram.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="Histogram.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="Histogram.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="Histogram.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="Histogram.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="Histogram.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="Histogram.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="Histogram.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="Histogram.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="Histogram.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="Histogram.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="Histogram.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="Histogram.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="Histogram.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="Histogram.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="Histogram.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="Histogram.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="Histogram.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="Histogram.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="Histogram.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="Histogram.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="Histogram.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="Histogram.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="Histogram.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="Histogram.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
-
- </div>
- <div><dt><a href="#Condition">Condition</a></dt>
- <dd id="Histogram.and_" class="function"><a href="#Condition.and_">and_</a></dd>
- <dd id="Histogram.or_" class="function"><a href="#Condition.or_">or_</a></dd>
- <dd id="Histogram.not_" class="function"><a href="#Condition.not_">not_</a></dd>
- <dd id="Histogram.isin" class="function"><a href="#Condition.isin">isin</a></dd>
- <dd id="Histogram.between" class="function"><a href="#Condition.between">between</a></dd>
- <dd id="Histogram.like" class="function"><a href="#Condition.like">like</a></dd>
- <dd id="Histogram.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
- <dd id="Histogram.eq" class="function"><a href="#Condition.eq">eq</a></dd>
- <dd id="Histogram.neq" class="function"><a href="#Condition.neq">neq</a></dd>
- <dd id="Histogram.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="If">
<input id="If-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -38654,8 +40593,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#If"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="If-3803"><a href="#If-3803"><span class="linenos">3803</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-3804"><a href="#If-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 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-4067"><a href="#If-4067"><span class="linenos">4067</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-4068"><a href="#If-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;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>
@@ -38677,6 +40616,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="If.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="If.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="If.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="If.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="If.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38715,8 +40655,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="If.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="If.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="If.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="If.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="If.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="If.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="If.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="If.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="If.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="If.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38738,9 +40680,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#IfNull"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3807"><a href="#IfNull-3807"><span class="linenos">3807</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IfNull-3808"><a href="#IfNull-3808"><span class="linenos">3808</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="IfNull-3809"><a href="#IfNull-3809"><span class="linenos">3809</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-4071"><a href="#IfNull-4071"><span class="linenos">4071</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IfNull-4072"><a href="#IfNull-4072"><span class="linenos">4072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="IfNull-4073"><a href="#IfNull-4073"><span class="linenos">4073</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -38762,6 +40704,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="IfNull.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IfNull.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IfNull.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="IfNull.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="IfNull.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IfNull.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IfNull.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38800,8 +40743,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="IfNull.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="IfNull.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="IfNull.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="IfNull.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="IfNull.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="IfNull.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="IfNull.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="IfNull.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="IfNull.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="IfNull.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38823,8 +40768,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Initcap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3812"><a href="#Initcap-3812"><span class="linenos">3812</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-3813"><a href="#Initcap-3813"><span class="linenos">3813</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-4076"><a href="#Initcap-4076"><span class="linenos">4076</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-4077"><a href="#Initcap-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">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>
@@ -38846,6 +40791,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Initcap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Initcap.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Initcap.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Initcap.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Initcap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38884,8 +40830,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Initcap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Initcap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Initcap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Initcap.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Initcap.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Initcap.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Initcap.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Initcap.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Initcap.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Initcap.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -38907,8 +40855,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONKeyValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-3816"><a href="#JSONKeyValue-3816"><span class="linenos">3816</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-3817"><a href="#JSONKeyValue-3817"><span class="linenos">3817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-4080"><a href="#JSONKeyValue-4080"><span class="linenos">4080</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-4081"><a href="#JSONKeyValue-4081"><span class="linenos">4081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -38930,6 +40878,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONKeyValue.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONKeyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONKeyValue.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONKeyValue.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONKeyValue.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -38971,15 +40920,15 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONObject"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-3820"><a href="#JSONObject-3820"><span class="linenos">3820</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-3821"><a href="#JSONObject-3821"><span class="linenos">3821</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONObject-3822"><a href="#JSONObject-3822"><span class="linenos">3822</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-3823"><a href="#JSONObject-3823"><span class="linenos">3823</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-3824"><a href="#JSONObject-3824"><span class="linenos">3824</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-3825"><a href="#JSONObject-3825"><span class="linenos">3825</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-3826"><a href="#JSONObject-3826"><span class="linenos">3826</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-3827"><a href="#JSONObject-3827"><span class="linenos">3827</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-3828"><a href="#JSONObject-3828"><span class="linenos">3828</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-4084"><a href="#JSONObject-4084"><span class="linenos">4084</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-4085"><a href="#JSONObject-4085"><span class="linenos">4085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONObject-4086"><a href="#JSONObject-4086"><span class="linenos">4086</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-4087"><a href="#JSONObject-4087"><span class="linenos">4087</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-4088"><a href="#JSONObject-4088"><span class="linenos">4088</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-4089"><a href="#JSONObject-4089"><span class="linenos">4089</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-4090"><a href="#JSONObject-4090"><span class="linenos">4090</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-4091"><a href="#JSONObject-4091"><span class="linenos">4091</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-4092"><a href="#JSONObject-4092"><span class="linenos">4092</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39001,6 +40950,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONObject.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONObject.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONObject.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONObject.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONObject.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39039,8 +40989,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONObject.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONObject.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONObject.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONObject.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONObject.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONObject.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONObject.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONObject.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONObject.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONObject.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39051,6 +41003,158 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="OpenJSONColumnDef">
+ <input id="OpenJSONColumnDef-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">OpenJSONColumnDef</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="OpenJSONColumnDef-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#OpenJSONColumnDef"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-4095"><a href="#OpenJSONColumnDef-4095"><span class="linenos">4095</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-4096"><a href="#OpenJSONColumnDef-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;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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="OpenJSONColumnDef.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="OpenJSONColumnDef.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="OpenJSONColumnDef.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="OpenJSONColumnDef.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="OpenJSONColumnDef.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="OpenJSONColumnDef.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="OpenJSONColumnDef.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="OpenJSONColumnDef.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="OpenJSONColumnDef.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="OpenJSONColumnDef.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OpenJSONColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="OpenJSONColumnDef.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="OpenJSONColumnDef.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="OpenJSONColumnDef.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="OpenJSONColumnDef.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="OpenJSONColumnDef.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="OpenJSONColumnDef.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="OpenJSONColumnDef.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="OpenJSONColumnDef.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="OpenJSONColumnDef.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="OpenJSONColumnDef.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="OpenJSONColumnDef.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="OpenJSONColumnDef.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="OpenJSONColumnDef.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="OpenJSONColumnDef.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="OpenJSONColumnDef.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="OpenJSONColumnDef.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="OpenJSONColumnDef.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="OpenJSONColumnDef.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="OpenJSONColumnDef.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="OpenJSON">
+ <input id="OpenJSON-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">OpenJSON</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="OpenJSON-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#OpenJSON"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-4099"><a href="#OpenJSON-4099"><span class="linenos">4099</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-4100"><a href="#OpenJSON-4100"><span class="linenos">4100</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span 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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="OpenJSON.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="OpenJSON.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="OpenJSON.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="OpenJSON.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="OpenJSON.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="OpenJSON.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="OpenJSON.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="OpenJSON.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="OpenJSON.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="OpenJSON.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OpenJSON.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="OpenJSON.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="OpenJSON.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="OpenJSON.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="OpenJSON.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="OpenJSON.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="OpenJSON.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="OpenJSON.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="OpenJSON.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="OpenJSON.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="OpenJSON.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="OpenJSON.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="OpenJSON.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="OpenJSON.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="OpenJSON.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="OpenJSON.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="OpenJSON.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="OpenJSON.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="OpenJSON.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="OpenJSON.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="OpenJSON.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="OpenJSON.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="OpenJSON.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="OpenJSON.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="OpenJSON.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="OpenJSON.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="OpenJSON.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="OpenJSON.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="OpenJSON.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="OpenJSON.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="OpenJSON.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="OpenJSON.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="OpenJSON.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="OpenJSON.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="OpenJSON.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="OpenJSON.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="JSONBContains">
<input id="JSONBContains-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -39062,8 +41166,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-3831"><a href="#JSONBContains-3831"><span class="linenos">3831</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-3832"><a href="#JSONBContains-3832"><span class="linenos">3832</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-4103"><a href="#JSONBContains-4103"><span class="linenos">4103</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-4104"><a href="#JSONBContains-4104"><span class="linenos">4104</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>
@@ -39085,6 +41189,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONBContains.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONBContains.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONBContains.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONBContains.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39116,8 +41221,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBContains.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONBContains.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONBContains.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONBContains.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONBContains.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONBContains.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONBContains.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONBContains.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONBContains.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONBContains.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39139,8 +41246,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-3835"><a href="#JSONExtract-3835"><span class="linenos">3835</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-3836"><a href="#JSONExtract-3836"><span class="linenos">3836</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-4107"><a href="#JSONExtract-4107"><span class="linenos">4107</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-4108"><a href="#JSONExtract-4108"><span class="linenos">4108</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>
@@ -39162,6 +41269,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39200,8 +41308,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONExtract.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39223,8 +41333,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-3839"><a href="#JSONExtractScalar-3839"><span class="linenos">3839</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-3840"><a href="#JSONExtractScalar-3840"><span class="linenos">3840</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-4111"><a href="#JSONExtractScalar-4111"><span class="linenos">4111</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-4112"><a href="#JSONExtractScalar-4112"><span class="linenos">4112</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>
@@ -39246,6 +41356,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONExtractScalar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONExtractScalar.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONExtractScalar.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONExtractScalar.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39284,8 +41395,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONExtractScalar.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONExtractScalar.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONExtractScalar.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONExtractScalar.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONExtractScalar.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONExtractScalar.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONExtractScalar.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONExtractScalar.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONExtractScalar.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONExtractScalar.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39307,8 +41420,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-3843"><a href="#JSONBExtract-3843"><span class="linenos">3843</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-3844"><a href="#JSONBExtract-3844"><span class="linenos">3844</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-4115"><a href="#JSONBExtract-4115"><span class="linenos">4115</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-4116"><a href="#JSONBExtract-4116"><span class="linenos">4116</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>
@@ -39330,6 +41443,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONBExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONBExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONBExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONBExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39368,8 +41482,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONBExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONBExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONBExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONBExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONBExtract.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONBExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONBExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONBExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONBExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39391,8 +41507,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-3847"><a href="#JSONBExtractScalar-3847"><span class="linenos">3847</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-3848"><a href="#JSONBExtractScalar-3848"><span class="linenos">3848</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-4119"><a href="#JSONBExtractScalar-4119"><span class="linenos">4119</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-4120"><a href="#JSONBExtractScalar-4120"><span class="linenos">4120</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>
@@ -39414,6 +41530,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBExtractScalar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONBExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONBExtractScalar.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONBExtractScalar.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONBExtractScalar.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39452,8 +41569,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBExtractScalar.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONBExtractScalar.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONBExtractScalar.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONBExtractScalar.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONBExtractScalar.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONBExtractScalar.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONBExtractScalar.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONBExtractScalar.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONBExtractScalar.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONBExtractScalar.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39475,9 +41594,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-3851"><a href="#JSONFormat-3851"><span class="linenos">3851</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-3852"><a href="#JSONFormat-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;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="JSONFormat-3853"><a href="#JSONFormat-3853"><span class="linenos">3853</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-4123"><a href="#JSONFormat-4123"><span class="linenos">4123</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-4124"><a href="#JSONFormat-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;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-4125"><a href="#JSONFormat-4125"><span class="linenos">4125</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>
@@ -39499,6 +41618,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="JSONFormat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONFormat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONFormat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39537,8 +41657,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONFormat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONFormat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONFormat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="JSONFormat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONFormat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONFormat.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="JSONFormat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONFormat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONFormat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONFormat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39560,9 +41682,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Least"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Least-3856"><a href="#Least-3856"><span class="linenos">3856</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-3857"><a href="#Least-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">False</span><span class="p">}</span>
-</span><span id="Least-3858"><a href="#Least-3858"><span class="linenos">3858</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-4128"><a href="#Least-4128"><span class="linenos">4128</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-4129"><a href="#Least-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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Least-4130"><a href="#Least-4130"><span class="linenos">4130</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -39584,6 +41706,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Least.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Least.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Least.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Least.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Least.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39622,8 +41745,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Least.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Least.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Least.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Least.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Least.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Least.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Least.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Least.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Least.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Least.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39645,8 +41770,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Length"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3861"><a href="#Length-3861"><span class="linenos">3861</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-3862"><a href="#Length-3862"><span class="linenos">3862</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Length-4133"><a href="#Length-4133"><span class="linenos">4133</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-4134"><a href="#Length-4134"><span class="linenos">4134</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39668,6 +41793,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Length.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Length.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Length.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Length.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Length.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39706,8 +41832,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Length.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Length.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Length.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Length.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Length.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Length.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Length.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Length.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Length.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Length.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39729,14 +41857,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Levenshtein"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3865"><a href="#Levenshtein-3865"><span class="linenos">3865</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-3866"><a href="#Levenshtein-3866"><span class="linenos">3866</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Levenshtein-3867"><a href="#Levenshtein-3867"><span class="linenos">3867</span></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-3868"><a href="#Levenshtein-3868"><span class="linenos">3868</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-3869"><a href="#Levenshtein-3869"><span class="linenos">3869</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-3870"><a href="#Levenshtein-3870"><span class="linenos">3870</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-3871"><a href="#Levenshtein-3871"><span class="linenos">3871</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-3872"><a href="#Levenshtein-3872"><span class="linenos">3872</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-4137"><a href="#Levenshtein-4137"><span class="linenos">4137</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-4138"><a href="#Levenshtein-4138"><span class="linenos">4138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Levenshtein-4139"><a href="#Levenshtein-4139"><span class="linenos">4139</span></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-4140"><a href="#Levenshtein-4140"><span class="linenos">4140</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-4141"><a href="#Levenshtein-4141"><span class="linenos">4141</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-4142"><a href="#Levenshtein-4142"><span class="linenos">4142</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-4143"><a href="#Levenshtein-4143"><span class="linenos">4143</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-4144"><a href="#Levenshtein-4144"><span class="linenos">4144</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39758,6 +41886,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Levenshtein.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Levenshtein.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Levenshtein.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Levenshtein.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Levenshtein.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39796,8 +41925,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Levenshtein.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Levenshtein.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Levenshtein.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Levenshtein.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Levenshtein.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Levenshtein.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Levenshtein.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Levenshtein.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Levenshtein.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Levenshtein.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39819,8 +41950,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Ln"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3875"><a href="#Ln-3875"><span class="linenos">3875</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-3876"><a href="#Ln-3876"><span class="linenos">3876</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-4147"><a href="#Ln-4147"><span class="linenos">4147</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-4148"><a href="#Ln-4148"><span class="linenos">4148</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39842,6 +41973,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Ln.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Ln.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Ln.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Ln.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Ln.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39880,8 +42012,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Ln.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Ln.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Ln.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Ln.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Ln.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Ln.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Ln.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Ln.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Ln.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Ln.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39903,8 +42037,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log-3879"><a href="#Log-3879"><span class="linenos">3879</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-3880"><a href="#Log-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">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-4151"><a href="#Log-4151"><span class="linenos">4151</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-4152"><a href="#Log-4152"><span class="linenos">4152</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -39926,6 +42060,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Log.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Log.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Log.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Log.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -39964,8 +42099,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Log.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Log.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Log.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Log.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Log.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Log.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Log.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Log.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Log.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -39987,8 +42124,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3883"><a href="#Log2-3883"><span class="linenos">3883</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-3884"><a href="#Log2-3884"><span class="linenos">3884</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-4155"><a href="#Log2-4155"><span class="linenos">4155</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-4156"><a href="#Log2-4156"><span class="linenos">4156</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -40010,6 +42147,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Log2.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Log2.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Log2.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Log2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40048,8 +42186,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Log2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Log2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Log2.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Log2.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Log2.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Log2.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Log2.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Log2.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Log2.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40071,8 +42211,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log10"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3887"><a href="#Log10-3887"><span class="linenos">3887</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-3888"><a href="#Log10-3888"><span class="linenos">3888</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-4159"><a href="#Log10-4159"><span class="linenos">4159</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-4160"><a href="#Log10-4160"><span class="linenos">4160</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -40094,6 +42234,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log10.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Log10.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Log10.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Log10.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Log10.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40132,8 +42273,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log10.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Log10.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Log10.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Log10.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Log10.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Log10.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Log10.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Log10.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Log10.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Log10.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40155,8 +42298,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LogicalOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-3891"><a href="#LogicalOr-3891"><span class="linenos">3891</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-3892"><a href="#LogicalOr-3892"><span class="linenos">3892</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-4163"><a href="#LogicalOr-4163"><span class="linenos">4163</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-4164"><a href="#LogicalOr-4164"><span class="linenos">4164</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>
@@ -40178,6 +42321,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LogicalOr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LogicalOr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LogicalOr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LogicalOr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LogicalOr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40216,8 +42360,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LogicalOr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LogicalOr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LogicalOr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="LogicalOr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LogicalOr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LogicalOr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="LogicalOr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LogicalOr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LogicalOr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LogicalOr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40239,8 +42385,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LogicalAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-3895"><a href="#LogicalAnd-3895"><span class="linenos">3895</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-3896"><a href="#LogicalAnd-3896"><span class="linenos">3896</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-4167"><a href="#LogicalAnd-4167"><span class="linenos">4167</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-4168"><a href="#LogicalAnd-4168"><span class="linenos">4168</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>
@@ -40262,6 +42408,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LogicalAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LogicalAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="LogicalAnd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LogicalAnd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LogicalAnd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40300,8 +42447,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LogicalAnd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LogicalAnd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LogicalAnd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="LogicalAnd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LogicalAnd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LogicalAnd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="LogicalAnd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LogicalAnd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LogicalAnd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LogicalAnd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40323,8 +42472,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Lower"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-3899"><a href="#Lower-3899"><span class="linenos">3899</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-3900"><a href="#Lower-3900"><span class="linenos">3900</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-4171"><a href="#Lower-4171"><span class="linenos">4171</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-4172"><a href="#Lower-4172"><span class="linenos">4172</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>
@@ -40346,6 +42495,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Lower.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lower.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Lower.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lower.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lower.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40384,8 +42534,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Lower.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Lower.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Lower.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Lower.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Lower.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Lower.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Lower.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Lower.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Lower.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Lower.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40407,8 +42559,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Map"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map-3903"><a href="#Map-3903"><span class="linenos">3903</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-3904"><a href="#Map-3904"><span class="linenos">3904</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map-4175"><a href="#Map-4175"><span class="linenos">4175</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-4176"><a href="#Map-4176"><span class="linenos">4176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -40430,6 +42582,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Map.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Map.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Map.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Map.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Map.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40468,8 +42621,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Map.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Map.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Map.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Map.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Map.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Map.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Map.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Map.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Map.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Map.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40491,8 +42646,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-3907"><a href="#StarMap-3907"><span class="linenos">3907</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-3908"><a href="#StarMap-3908"><span class="linenos">3908</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-4179"><a href="#StarMap-4179"><span class="linenos">4179</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-4180"><a href="#StarMap-4180"><span class="linenos">4180</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -40514,6 +42669,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StarMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="StarMap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StarMap.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StarMap.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StarMap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40552,8 +42708,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StarMap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StarMap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StarMap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StarMap.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StarMap.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StarMap.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StarMap.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StarMap.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StarMap.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StarMap.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40575,9 +42733,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#VarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-3911"><a href="#VarMap-3911"><span class="linenos">3911</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-3912"><a href="#VarMap-3912"><span class="linenos">3912</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3913"><a href="#VarMap-3913"><span class="linenos">3913</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-4183"><a href="#VarMap-4183"><span class="linenos">4183</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-4184"><a href="#VarMap-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;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-4185"><a href="#VarMap-4185"><span class="linenos">4185</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -40599,6 +42757,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="VarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="VarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="VarMap.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="VarMap.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="VarMap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40637,8 +42796,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="VarMap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="VarMap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="VarMap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="VarMap.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="VarMap.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="VarMap.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="VarMap.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="VarMap.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="VarMap.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="VarMap.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40660,8 +42821,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#MatchAgainst"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-3917"><a href="#MatchAgainst-3917"><span class="linenos">3917</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-3918"><a href="#MatchAgainst-3918"><span class="linenos">3918</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4189"><a href="#MatchAgainst-4189"><span class="linenos">4189</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-4190"><a href="#MatchAgainst-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;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>
@@ -40683,6 +42844,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MatchAgainst.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MatchAgainst.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="MatchAgainst.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MatchAgainst.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MatchAgainst.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40721,8 +42883,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MatchAgainst.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="MatchAgainst.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="MatchAgainst.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="MatchAgainst.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="MatchAgainst.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="MatchAgainst.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="MatchAgainst.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="MatchAgainst.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="MatchAgainst.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="MatchAgainst.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40744,9 +42908,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Max"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Max-3921"><a href="#Max-3921"><span class="linenos">3921</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-3922"><a href="#Max-3922"><span class="linenos">3922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3923"><a href="#Max-3923"><span class="linenos">3923</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-4193"><a href="#Max-4193"><span class="linenos">4193</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-4194"><a href="#Max-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">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-4195"><a href="#Max-4195"><span class="linenos">4195</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -40768,6 +42932,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Max.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Max.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Max.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Max.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Max.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40806,8 +42971,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Max.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Max.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Max.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Max.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Max.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Max.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Max.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Max.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Max.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Max.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40829,8 +42996,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#MD5"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-3926"><a href="#MD5-3926"><span class="linenos">3926</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-3927"><a href="#MD5-3927"><span class="linenos">3927</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-4198"><a href="#MD5-4198"><span class="linenos">4198</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-4199"><a href="#MD5-4199"><span class="linenos">4199</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>
@@ -40852,6 +43019,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MD5.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MD5.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MD5.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="MD5.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MD5.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MD5.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MD5.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40890,8 +43058,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MD5.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="MD5.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="MD5.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="MD5.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="MD5.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="MD5.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="MD5.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="MD5.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="MD5.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="MD5.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40913,9 +43083,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Min"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Min-3930"><a href="#Min-3930"><span class="linenos">3930</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-3931"><a href="#Min-3931"><span class="linenos">3931</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3932"><a href="#Min-3932"><span class="linenos">3932</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-4202"><a href="#Min-4202"><span class="linenos">4202</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-4203"><a href="#Min-4203"><span class="linenos">4203</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4204"><a href="#Min-4204"><span class="linenos">4204</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -40937,6 +43107,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Min.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Min.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Min.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Min.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Min.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -40975,8 +43146,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Min.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Min.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Min.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Min.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Min.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Min.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Min.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Min.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Min.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Min.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -40998,8 +43171,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Month"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3935"><a href="#Month-3935"><span class="linenos">3935</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-3936"><a href="#Month-3936"><span class="linenos">3936</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Month-4207"><a href="#Month-4207"><span class="linenos">4207</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-4208"><a href="#Month-4208"><span class="linenos">4208</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41021,6 +43194,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Month.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Month.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Month.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Month.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Month.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41059,8 +43233,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Month.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Month.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Month.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Month.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Month.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Month.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Month.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Month.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Month.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Month.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41082,8 +43258,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Nvl2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-3939"><a href="#Nvl2-3939"><span class="linenos">3939</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-3940"><a href="#Nvl2-3940"><span class="linenos">3940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4211"><a href="#Nvl2-4211"><span class="linenos">4211</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-4212"><a href="#Nvl2-4212"><span class="linenos">4212</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -41105,6 +43281,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Nvl2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Nvl2.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Nvl2.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Nvl2.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Nvl2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41143,8 +43320,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Nvl2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Nvl2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Nvl2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Nvl2.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Nvl2.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Nvl2.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Nvl2.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Nvl2.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Nvl2.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Nvl2.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41166,8 +43345,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Posexplode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3943"><a href="#Posexplode-3943"><span class="linenos">3943</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Posexplode-3944"><a href="#Posexplode-3944"><span class="linenos">3944</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-4215"><a href="#Posexplode-4215"><span class="linenos">4215</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Posexplode-4216"><a href="#Posexplode-4216"><span class="linenos">4216</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41189,6 +43368,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Posexplode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Posexplode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Posexplode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Posexplode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Posexplode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Posexplode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Posexplode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41227,8 +43407,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Posexplode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Posexplode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Posexplode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Posexplode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Posexplode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Posexplode.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Posexplode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Posexplode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Posexplode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Posexplode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41250,8 +43432,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Pow"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-3947"><a href="#Pow-3947"><span class="linenos">3947</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-3948"><a href="#Pow-3948"><span class="linenos">3948</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-4219"><a href="#Pow-4219"><span class="linenos">4219</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-4220"><a href="#Pow-4220"><span class="linenos">4220</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>
@@ -41273,6 +43455,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Pow.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Pow.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Pow.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Pow.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Pow.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41311,8 +43494,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Pow.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Pow.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Pow.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Pow.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Pow.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Pow.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Pow.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Pow.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Pow.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Pow.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41334,8 +43519,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#PercentileCont"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3951"><a href="#PercentileCont-3951"><span class="linenos">3951</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-3952"><a href="#PercentileCont-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">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-4223"><a href="#PercentileCont-4223"><span class="linenos">4223</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-4224"><a href="#PercentileCont-4224"><span class="linenos">4224</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -41357,6 +43542,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="PercentileCont.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PercentileCont.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PercentileCont.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PercentileCont.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PercentileCont.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41395,8 +43581,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="PercentileCont.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="PercentileCont.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="PercentileCont.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="PercentileCont.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="PercentileCont.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="PercentileCont.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="PercentileCont.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="PercentileCont.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="PercentileCont.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="PercentileCont.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41418,8 +43606,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3955"><a href="#PercentileDisc-3955"><span class="linenos">3955</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-3956"><a href="#PercentileDisc-3956"><span class="linenos">3956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4227"><a href="#PercentileDisc-4227"><span class="linenos">4227</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-4228"><a href="#PercentileDisc-4228"><span class="linenos">4228</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -41441,6 +43629,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="PercentileDisc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PercentileDisc.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="PercentileDisc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PercentileDisc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PercentileDisc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41479,8 +43668,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="PercentileDisc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="PercentileDisc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="PercentileDisc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="PercentileDisc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="PercentileDisc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="PercentileDisc.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="PercentileDisc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="PercentileDisc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="PercentileDisc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="PercentileDisc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41502,8 +43693,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Quantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-3959"><a href="#Quantile-3959"><span class="linenos">3959</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-3960"><a href="#Quantile-3960"><span class="linenos">3960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4231"><a href="#Quantile-4231"><span class="linenos">4231</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-4232"><a href="#Quantile-4232"><span class="linenos">4232</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -41525,6 +43716,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Quantile.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Quantile.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Quantile.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Quantile.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Quantile.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41563,8 +43755,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Quantile.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Quantile.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Quantile.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Quantile.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Quantile.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Quantile.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Quantile.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Quantile.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Quantile.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Quantile.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41575,175 +43769,6 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
- <section id="Quantiles">
- <input id="Quantiles-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">Quantiles</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
-
- <label class="view-source-button" for="Quantiles-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#Quantiles"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantiles-3965"><a href="#Quantiles-3965"><span class="linenos">3965</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Quantiles-3966"><a href="#Quantiles-3966"><span class="linenos">3966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Quantiles-3967"><a href="#Quantiles-3967"><span class="linenos">3967</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="Quantiles.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="Quantiles.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="Quantiles.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="Quantiles.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="Quantiles.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="Quantiles.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="Quantiles.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="Quantiles.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="Quantiles.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="Quantiles.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="Quantiles.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="Quantiles.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="Quantiles.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="Quantiles.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="Quantiles.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="Quantiles.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="Quantiles.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="Quantiles.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="Quantiles.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="Quantiles.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="Quantiles.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="Quantiles.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="Quantiles.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="Quantiles.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="Quantiles.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="Quantiles.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="Quantiles.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="Quantiles.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="Quantiles.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="Quantiles.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="Quantiles.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="Quantiles.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="Quantiles.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="Quantiles.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="Quantiles.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="Quantiles.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="Quantiles.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="Quantiles.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="Quantiles.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="Quantiles.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="Quantiles.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
-
- </div>
- <div><dt><a href="#Condition">Condition</a></dt>
- <dd id="Quantiles.and_" class="function"><a href="#Condition.and_">and_</a></dd>
- <dd id="Quantiles.or_" class="function"><a href="#Condition.or_">or_</a></dd>
- <dd id="Quantiles.not_" class="function"><a href="#Condition.not_">not_</a></dd>
- <dd id="Quantiles.isin" class="function"><a href="#Condition.isin">isin</a></dd>
- <dd id="Quantiles.between" class="function"><a href="#Condition.between">between</a></dd>
- <dd id="Quantiles.like" class="function"><a href="#Condition.like">like</a></dd>
- <dd id="Quantiles.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
- <dd id="Quantiles.eq" class="function"><a href="#Condition.eq">eq</a></dd>
- <dd id="Quantiles.neq" class="function"><a href="#Condition.neq">neq</a></dd>
- <dd id="Quantiles.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
- <section id="QuantileIf">
- <input id="QuantileIf-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">QuantileIf</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
-
- <label class="view-source-button" for="QuantileIf-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#QuantileIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="QuantileIf-3970"><a href="#QuantileIf-3970"><span class="linenos">3970</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="QuantileIf-3971"><a href="#QuantileIf-3971"><span class="linenos">3971</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span></pre></div>
-
-
-
-
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="QuantileIf.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="QuantileIf.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="QuantileIf.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="QuantileIf.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="QuantileIf.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="QuantileIf.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="QuantileIf.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="QuantileIf.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="QuantileIf.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="QuantileIf.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="QuantileIf.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="QuantileIf.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="QuantileIf.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="QuantileIf.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="QuantileIf.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="QuantileIf.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="QuantileIf.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="QuantileIf.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="QuantileIf.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="QuantileIf.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="QuantileIf.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="QuantileIf.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="QuantileIf.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="QuantileIf.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="QuantileIf.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="QuantileIf.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="QuantileIf.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="QuantileIf.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="QuantileIf.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="QuantileIf.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="QuantileIf.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="QuantileIf.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="QuantileIf.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="QuantileIf.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="QuantileIf.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="QuantileIf.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="QuantileIf.load" class="function"><a href="#Expression.load">load</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="QuantileIf.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="QuantileIf.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="QuantileIf.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="QuantileIf.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
-
- </div>
- <div><dt><a href="#Condition">Condition</a></dt>
- <dd id="QuantileIf.and_" class="function"><a href="#Condition.and_">and_</a></dd>
- <dd id="QuantileIf.or_" class="function"><a href="#Condition.or_">or_</a></dd>
- <dd id="QuantileIf.not_" class="function"><a href="#Condition.not_">not_</a></dd>
- <dd id="QuantileIf.isin" class="function"><a href="#Condition.isin">isin</a></dd>
- <dd id="QuantileIf.between" class="function"><a href="#Condition.between">between</a></dd>
- <dd id="QuantileIf.like" class="function"><a href="#Condition.like">like</a></dd>
- <dd id="QuantileIf.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
- <dd id="QuantileIf.eq" class="function"><a href="#Condition.eq">eq</a></dd>
- <dd id="QuantileIf.neq" class="function"><a href="#Condition.neq">neq</a></dd>
- <dd id="QuantileIf.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="ApproxQuantile">
<input id="ApproxQuantile-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -41755,8 +43780,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-3974"><a href="#ApproxQuantile-3974"><span class="linenos">3974</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-3975"><a href="#ApproxQuantile-3975"><span class="linenos">3975</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4235"><a href="#ApproxQuantile-4235"><span class="linenos">4235</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-4236"><a href="#ApproxQuantile-4236"><span class="linenos">4236</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -41778,6 +43803,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxQuantile.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ApproxQuantile.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ApproxQuantile.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ApproxQuantile.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ApproxQuantile.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41816,8 +43842,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxQuantile.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ApproxQuantile.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ApproxQuantile.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ApproxQuantile.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ApproxQuantile.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ApproxQuantile.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ApproxQuantile.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ApproxQuantile.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ApproxQuantile.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ApproxQuantile.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41839,8 +43867,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RangeN"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-3978"><a href="#RangeN-3978"><span class="linenos">3978</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-3979"><a href="#RangeN-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;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-4239"><a href="#RangeN-4239"><span class="linenos">4239</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-4240"><a href="#RangeN-4240"><span class="linenos">4240</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -41862,6 +43890,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RangeN.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RangeN.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RangeN.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RangeN.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RangeN.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41900,8 +43929,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RangeN.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RangeN.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RangeN.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RangeN.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RangeN.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RangeN.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RangeN.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RangeN.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RangeN.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RangeN.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -41923,10 +43954,10 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ReadCSV"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-3982"><a href="#ReadCSV-3982"><span class="linenos">3982</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-3983"><a href="#ReadCSV-3983"><span class="linenos">3983</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-3984"><a href="#ReadCSV-3984"><span class="linenos">3984</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="ReadCSV-3985"><a href="#ReadCSV-3985"><span class="linenos">3985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4243"><a href="#ReadCSV-4243"><span class="linenos">4243</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-4244"><a href="#ReadCSV-4244"><span class="linenos">4244</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-4245"><a href="#ReadCSV-4245"><span class="linenos">4245</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="ReadCSV-4246"><a href="#ReadCSV-4246"><span class="linenos">4246</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -41948,6 +43979,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ReadCSV.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ReadCSV.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="ReadCSV.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ReadCSV.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ReadCSV.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -41986,8 +44018,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ReadCSV.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ReadCSV.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ReadCSV.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="ReadCSV.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ReadCSV.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ReadCSV.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="ReadCSV.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ReadCSV.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ReadCSV.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ReadCSV.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42009,8 +44043,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Reduce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-3988"><a href="#Reduce-3988"><span class="linenos">3988</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-3989"><a href="#Reduce-3989"><span class="linenos">3989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4249"><a href="#Reduce-4249"><span class="linenos">4249</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-4250"><a href="#Reduce-4250"><span class="linenos">4250</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42032,6 +44066,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Reduce.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Reduce.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Reduce.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Reduce.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Reduce.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42070,8 +44105,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Reduce.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Reduce.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Reduce.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Reduce.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Reduce.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Reduce.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Reduce.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Reduce.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Reduce.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Reduce.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42093,14 +44130,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3992"><a href="#RegexpExtract-3992"><span class="linenos">3992</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-3993"><a href="#RegexpExtract-3993"><span class="linenos">3993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpExtract-3994"><a href="#RegexpExtract-3994"><span class="linenos">3994</span></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-3995"><a href="#RegexpExtract-3995"><span class="linenos">3995</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-3996"><a href="#RegexpExtract-3996"><span class="linenos">3996</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-3997"><a href="#RegexpExtract-3997"><span class="linenos">3997</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-3998"><a href="#RegexpExtract-3998"><span class="linenos">3998</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-3999"><a href="#RegexpExtract-3999"><span class="linenos">3999</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-4253"><a href="#RegexpExtract-4253"><span class="linenos">4253</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-4254"><a href="#RegexpExtract-4254"><span class="linenos">4254</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpExtract-4255"><a href="#RegexpExtract-4255"><span class="linenos">4255</span></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-4256"><a href="#RegexpExtract-4256"><span class="linenos">4256</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-4257"><a href="#RegexpExtract-4257"><span class="linenos">4257</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-4258"><a href="#RegexpExtract-4258"><span class="linenos">4258</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-4259"><a href="#RegexpExtract-4259"><span class="linenos">4259</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-4260"><a href="#RegexpExtract-4260"><span class="linenos">4260</span></a> <span class="p">}</span>
</span></pre></div>
@@ -42122,6 +44159,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RegexpExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42160,8 +44198,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RegexpExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpExtract.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RegexpExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42183,8 +44223,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpLike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-4002"><a href="#RegexpLike-4002"><span class="linenos">4002</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpLike-4003"><a href="#RegexpLike-4003"><span class="linenos">4003</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4263"><a href="#RegexpLike-4263"><span class="linenos">4263</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpLike-4264"><a href="#RegexpLike-4264"><span class="linenos">4264</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -42206,6 +44246,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpLike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpLike.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RegexpLike.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpLike.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpLike.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42244,8 +44285,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpLike.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpLike.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpLike.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RegexpLike.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpLike.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpLike.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RegexpLike.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpLike.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpLike.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpLike.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42267,8 +44310,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-4006"><a href="#RegexpILike-4006"><span class="linenos">4006</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpILike-4007"><a href="#RegexpILike-4007"><span class="linenos">4007</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4267"><a href="#RegexpILike-4267"><span class="linenos">4267</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpILike-4268"><a href="#RegexpILike-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;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -42290,6 +44333,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpILike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpILike.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RegexpILike.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpILike.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpILike.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42328,8 +44372,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpILike.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpILike.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpILike.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RegexpILike.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpILike.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpILike.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RegexpILike.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpILike.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpILike.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpILike.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42351,8 +44397,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-4012"><a href="#RegexpSplit-4012"><span class="linenos">4012</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-4013"><a href="#RegexpSplit-4013"><span class="linenos">4013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4273"><a href="#RegexpSplit-4273"><span class="linenos">4273</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-4274"><a href="#RegexpSplit-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;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -42374,6 +44420,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpSplit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpSplit.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RegexpSplit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpSplit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpSplit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42412,8 +44459,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpSplit.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpSplit.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpSplit.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RegexpSplit.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpSplit.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpSplit.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RegexpSplit.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpSplit.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpSplit.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpSplit.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42435,8 +44484,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Repeat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-4016"><a href="#Repeat-4016"><span class="linenos">4016</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-4017"><a href="#Repeat-4017"><span class="linenos">4017</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4277"><a href="#Repeat-4277"><span class="linenos">4277</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-4278"><a href="#Repeat-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;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42458,6 +44507,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Repeat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Repeat.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Repeat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Repeat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Repeat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42496,8 +44546,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Repeat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Repeat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Repeat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Repeat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Repeat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Repeat.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Repeat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Repeat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Repeat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Repeat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42519,8 +44571,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Round"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Round-4020"><a href="#Round-4020"><span class="linenos">4020</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-4021"><a href="#Round-4021"><span class="linenos">4021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4281"><a href="#Round-4281"><span class="linenos">4281</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-4282"><a href="#Round-4282"><span class="linenos">4282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42542,6 +44594,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Round.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Round.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Round.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Round.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Round.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42580,8 +44633,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Round.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Round.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Round.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Round.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Round.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Round.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Round.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Round.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Round.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Round.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42603,8 +44658,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RowNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-4024"><a href="#RowNumber-4024"><span class="linenos">4024</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-4025"><a href="#RowNumber-4025"><span class="linenos">4025</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-4285"><a href="#RowNumber-4285"><span class="linenos">4285</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-4286"><a href="#RowNumber-4286"><span class="linenos">4286</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>
@@ -42626,6 +44681,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RowNumber.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowNumber.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="RowNumber.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowNumber.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowNumber.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42664,8 +44720,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RowNumber.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RowNumber.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RowNumber.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="RowNumber.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RowNumber.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RowNumber.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="RowNumber.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RowNumber.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RowNumber.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RowNumber.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42687,8 +44745,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SafeDivide"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-4028"><a href="#SafeDivide-4028"><span class="linenos">4028</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-4029"><a href="#SafeDivide-4029"><span class="linenos">4029</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-4289"><a href="#SafeDivide-4289"><span class="linenos">4289</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-4290"><a href="#SafeDivide-4290"><span class="linenos">4290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42710,6 +44768,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SafeDivide.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SafeDivide.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SafeDivide.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SafeDivide.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SafeDivide.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42748,8 +44807,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SafeDivide.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SafeDivide.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SafeDivide.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SafeDivide.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SafeDivide.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SafeDivide.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SafeDivide.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SafeDivide.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SafeDivide.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SafeDivide.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42771,8 +44832,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SetAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-4032"><a href="#SetAgg-4032"><span class="linenos">4032</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="SetAgg-4033"><a href="#SetAgg-4033"><span class="linenos">4033</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-4293"><a href="#SetAgg-4293"><span class="linenos">4293</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="SetAgg-4294"><a href="#SetAgg-4294"><span class="linenos">4294</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -42794,6 +44855,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SetAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SetAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SetAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42832,8 +44894,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SetAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SetAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SetAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SetAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SetAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SetAgg.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SetAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SetAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SetAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SetAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42855,8 +44919,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SHA"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-4036"><a href="#SHA-4036"><span class="linenos">4036</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-4037"><a href="#SHA-4037"><span class="linenos">4037</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-4297"><a href="#SHA-4297"><span class="linenos">4297</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-4298"><a href="#SHA-4298"><span class="linenos">4298</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>
@@ -42878,6 +44942,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SHA.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SHA.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SHA.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SHA.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SHA.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SHA.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SHA.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -42916,8 +44981,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SHA.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SHA.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SHA.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SHA.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SHA.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SHA.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SHA.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SHA.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SHA.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SHA.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -42939,9 +45006,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SHA2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-4040"><a href="#SHA2-4040"><span class="linenos">4040</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-4041"><a href="#SHA2-4041"><span class="linenos">4041</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-4042"><a href="#SHA2-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;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-4301"><a href="#SHA2-4301"><span class="linenos">4301</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-4302"><a href="#SHA2-4302"><span class="linenos">4302</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-4303"><a href="#SHA2-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;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -42963,6 +45030,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SHA2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SHA2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SHA2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SHA2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SHA2.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SHA2.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SHA2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43001,8 +45069,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SHA2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SHA2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SHA2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SHA2.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SHA2.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SHA2.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SHA2.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SHA2.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SHA2.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SHA2.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43024,8 +45094,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SortArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-4045"><a href="#SortArray-4045"><span class="linenos">4045</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-4046"><a href="#SortArray-4046"><span class="linenos">4046</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4306"><a href="#SortArray-4306"><span class="linenos">4306</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-4307"><a href="#SortArray-4307"><span class="linenos">4307</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -43047,6 +45117,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SortArray.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SortArray.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="SortArray.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SortArray.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SortArray.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43085,8 +45156,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SortArray.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SortArray.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SortArray.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="SortArray.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SortArray.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SortArray.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="SortArray.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SortArray.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SortArray.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SortArray.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43108,8 +45181,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Split"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Split-4049"><a href="#Split-4049"><span class="linenos">4049</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-4050"><a href="#Split-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">True</span><span class="p">,</span> <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-4310"><a href="#Split-4310"><span class="linenos">4310</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-4311"><a href="#Split-4311"><span class="linenos">4311</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -43131,6 +45204,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Split.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Split.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Split.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Split.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Split.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43169,8 +45243,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Split.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Split.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Split.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Split.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Split.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Split.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Split.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Split.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Split.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Split.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43192,8 +45268,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Substring"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-4055"><a href="#Substring-4055"><span class="linenos">4055</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-4056"><a href="#Substring-4056"><span class="linenos">4056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4316"><a href="#Substring-4316"><span class="linenos">4316</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-4317"><a href="#Substring-4317"><span class="linenos">4317</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -43215,6 +45291,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Substring.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Substring.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Substring.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Substring.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Substring.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43253,8 +45330,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Substring.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Substring.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Substring.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Substring.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Substring.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Substring.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Substring.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Substring.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Substring.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Substring.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43265,6 +45344,93 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="StandardHash">
+ <input id="StandardHash-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">StandardHash</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="StandardHash-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#StandardHash"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-4320"><a href="#StandardHash-4320"><span class="linenos">4320</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-4321"><a href="#StandardHash-4321"><span class="linenos">4321</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="StandardHash.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="StandardHash.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="StandardHash.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="StandardHash.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="StandardHash.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="StandardHash.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="StandardHash.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="StandardHash.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="StandardHash.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="StandardHash.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StandardHash.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
+ <dd id="StandardHash.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="StandardHash.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="StandardHash.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="StandardHash.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="StandardHash.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="StandardHash.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="StandardHash.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="StandardHash.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="StandardHash.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="StandardHash.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="StandardHash.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="StandardHash.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="StandardHash.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="StandardHash.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <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.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>
+ <dd id="StandardHash.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="StandardHash.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="StandardHash.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="StandardHash.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="StandardHash.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="StandardHash.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="StandardHash.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="StandardHash.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="StandardHash.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="StandardHash.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="StandardHash.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="StandardHash.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StandardHash.as_" class="function"><a href="#Condition.as_">as_</a></dd>
+ <dd id="StandardHash.isin" class="function"><a href="#Condition.isin">isin</a></dd>
+ <dd id="StandardHash.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StandardHash.is_" class="function"><a href="#Condition.is_">is_</a></dd>
+ <dd id="StandardHash.like" class="function"><a href="#Condition.like">like</a></dd>
+ <dd id="StandardHash.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
+ <dd id="StandardHash.eq" class="function"><a href="#Condition.eq">eq</a></dd>
+ <dd id="StandardHash.neq" class="function"><a href="#Condition.neq">neq</a></dd>
+ <dd id="StandardHash.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="StrPosition">
<input id="StrPosition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -43276,13 +45442,13 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-4059"><a href="#StrPosition-4059"><span class="linenos">4059</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-4060"><a href="#StrPosition-4060"><span class="linenos">4060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrPosition-4061"><a href="#StrPosition-4061"><span class="linenos">4061</span></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-4062"><a href="#StrPosition-4062"><span class="linenos">4062</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-4063"><a href="#StrPosition-4063"><span class="linenos">4063</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-4064"><a href="#StrPosition-4064"><span class="linenos">4064</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-4065"><a href="#StrPosition-4065"><span class="linenos">4065</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-4324"><a href="#StrPosition-4324"><span class="linenos">4324</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-4325"><a href="#StrPosition-4325"><span class="linenos">4325</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrPosition-4326"><a href="#StrPosition-4326"><span class="linenos">4326</span></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-4327"><a href="#StrPosition-4327"><span class="linenos">4327</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-4328"><a href="#StrPosition-4328"><span class="linenos">4328</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-4329"><a href="#StrPosition-4329"><span class="linenos">4329</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-4330"><a href="#StrPosition-4330"><span class="linenos">4330</span></a> <span class="p">}</span>
</span></pre></div>
@@ -43304,6 +45470,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrPosition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StrPosition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrPosition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrPosition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43342,8 +45509,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrPosition.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrPosition.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrPosition.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StrPosition.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrPosition.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrPosition.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StrPosition.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrPosition.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrPosition.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrPosition.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43365,8 +45534,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-4068"><a href="#StrToDate-4068"><span class="linenos">4068</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-4069"><a href="#StrToDate-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;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-4333"><a href="#StrToDate-4333"><span class="linenos">4333</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-4334"><a href="#StrToDate-4334"><span class="linenos">4334</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -43388,6 +45557,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StrToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43426,8 +45596,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StrToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrToDate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StrToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43449,8 +45621,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-4072"><a href="#StrToTime-4072"><span class="linenos">4072</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-4073"><a href="#StrToTime-4073"><span class="linenos">4073</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-4337"><a href="#StrToTime-4337"><span class="linenos">4337</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-4338"><a href="#StrToTime-4338"><span class="linenos">4338</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -43472,6 +45644,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StrToTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrToTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43510,8 +45683,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrToTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrToTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StrToTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrToTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrToTime.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StrToTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrToTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrToTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrToTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43533,8 +45708,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-4078"><a href="#StrToUnix-4078"><span class="linenos">4078</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-4079"><a href="#StrToUnix-4079"><span class="linenos">4079</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4343"><a href="#StrToUnix-4343"><span class="linenos">4343</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-4344"><a href="#StrToUnix-4344"><span class="linenos">4344</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -43556,6 +45731,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StrToUnix.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrToUnix.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrToUnix.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43594,8 +45770,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToUnix.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrToUnix.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrToUnix.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StrToUnix.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrToUnix.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrToUnix.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StrToUnix.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrToUnix.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrToUnix.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrToUnix.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43617,8 +45795,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#NumberToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-4082"><a href="#NumberToStr-4082"><span class="linenos">4082</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-4083"><a href="#NumberToStr-4083"><span class="linenos">4083</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-4347"><a href="#NumberToStr-4347"><span class="linenos">4347</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-4348"><a href="#NumberToStr-4348"><span class="linenos">4348</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -43640,6 +45818,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="NumberToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NumberToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NumberToStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NumberToStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NumberToStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43678,8 +45857,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="NumberToStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NumberToStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NumberToStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="NumberToStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NumberToStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NumberToStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="NumberToStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NumberToStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NumberToStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NumberToStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43701,9 +45882,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Struct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-4086"><a href="#Struct-4086"><span class="linenos">4086</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-4087"><a href="#Struct-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Struct-4088"><a href="#Struct-4088"><span class="linenos">4088</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-4351"><a href="#Struct-4351"><span class="linenos">4351</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-4352"><a href="#Struct-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Struct-4353"><a href="#Struct-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></pre></div>
@@ -43725,6 +45906,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Struct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Struct.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Struct.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Struct.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Struct.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43763,8 +45945,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Struct.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Struct.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Struct.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Struct.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Struct.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Struct.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Struct.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Struct.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Struct.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Struct.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43786,8 +45970,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StructExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-4091"><a href="#StructExtract-4091"><span class="linenos">4091</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-4092"><a href="#StructExtract-4092"><span class="linenos">4092</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-4356"><a href="#StructExtract-4356"><span class="linenos">4356</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-4357"><a href="#StructExtract-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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -43809,6 +45993,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StructExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StructExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StructExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StructExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StructExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43847,8 +46032,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StructExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StructExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StructExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StructExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StructExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StructExtract.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StructExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StructExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StructExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StructExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43870,8 +46057,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Sum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-4095"><a href="#Sum-4095"><span class="linenos">4095</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-4096"><a href="#Sum-4096"><span class="linenos">4096</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-4360"><a href="#Sum-4360"><span class="linenos">4360</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-4361"><a href="#Sum-4361"><span class="linenos">4361</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -43893,6 +46080,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Sum.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sum.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Sum.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sum.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sum.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -43931,8 +46119,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Sum.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Sum.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Sum.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Sum.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Sum.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Sum.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Sum.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Sum.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Sum.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Sum.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -43954,8 +46144,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Sqrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-4099"><a href="#Sqrt-4099"><span class="linenos">4099</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-4100"><a href="#Sqrt-4100"><span class="linenos">4100</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-4364"><a href="#Sqrt-4364"><span class="linenos">4364</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-4365"><a href="#Sqrt-4365"><span class="linenos">4365</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -43977,6 +46167,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Sqrt.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sqrt.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Sqrt.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sqrt.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sqrt.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44015,8 +46206,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Sqrt.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Sqrt.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Sqrt.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Sqrt.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Sqrt.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Sqrt.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Sqrt.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Sqrt.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Sqrt.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Sqrt.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44038,8 +46231,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Stddev"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-4103"><a href="#Stddev-4103"><span class="linenos">4103</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-4104"><a href="#Stddev-4104"><span class="linenos">4104</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-4368"><a href="#Stddev-4368"><span class="linenos">4368</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-4369"><a href="#Stddev-4369"><span class="linenos">4369</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44061,6 +46254,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Stddev.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Stddev.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Stddev.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Stddev.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Stddev.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44099,8 +46293,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Stddev.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Stddev.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Stddev.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Stddev.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Stddev.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Stddev.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Stddev.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Stddev.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Stddev.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Stddev.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44122,8 +46318,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StddevPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-4107"><a href="#StddevPop-4107"><span class="linenos">4107</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-4108"><a href="#StddevPop-4108"><span class="linenos">4108</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-4372"><a href="#StddevPop-4372"><span class="linenos">4372</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-4373"><a href="#StddevPop-4373"><span class="linenos">4373</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44145,6 +46341,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StddevPop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StddevPop.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StddevPop.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StddevPop.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StddevPop.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44183,8 +46380,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StddevPop.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StddevPop.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StddevPop.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StddevPop.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StddevPop.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StddevPop.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StddevPop.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StddevPop.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StddevPop.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StddevPop.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44206,8 +46405,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StddevSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-4111"><a href="#StddevSamp-4111"><span class="linenos">4111</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-4112"><a href="#StddevSamp-4112"><span class="linenos">4112</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-4376"><a href="#StddevSamp-4376"><span class="linenos">4376</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-4377"><a href="#StddevSamp-4377"><span class="linenos">4377</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44229,6 +46428,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StddevSamp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StddevSamp.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="StddevSamp.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StddevSamp.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StddevSamp.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44267,8 +46467,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StddevSamp.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StddevSamp.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StddevSamp.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="StddevSamp.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StddevSamp.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StddevSamp.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="StddevSamp.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StddevSamp.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StddevSamp.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StddevSamp.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44290,8 +46492,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-4115"><a href="#TimeToStr-4115"><span class="linenos">4115</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-4116"><a href="#TimeToStr-4116"><span class="linenos">4116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-4380"><a href="#TimeToStr-4380"><span class="linenos">4380</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-4381"><a href="#TimeToStr-4381"><span class="linenos">4381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -44313,6 +46515,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeToStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeToStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeToStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44351,8 +46554,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeToStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeToStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeToStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeToStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeToStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeToStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeToStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeToStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeToStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44374,8 +46579,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-4119"><a href="#TimeToTimeStr-4119"><span class="linenos">4119</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-4120"><a href="#TimeToTimeStr-4120"><span class="linenos">4120</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-4384"><a href="#TimeToTimeStr-4384"><span class="linenos">4384</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-4385"><a href="#TimeToTimeStr-4385"><span class="linenos">4385</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44397,6 +46602,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToTimeStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeToTimeStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeToTimeStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeToTimeStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44435,8 +46641,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToTimeStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeToTimeStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeToTimeStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeToTimeStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeToTimeStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeToTimeStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeToTimeStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeToTimeStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeToTimeStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeToTimeStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44458,8 +46666,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-4123"><a href="#TimeToUnix-4123"><span class="linenos">4123</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-4124"><a href="#TimeToUnix-4124"><span class="linenos">4124</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-4388"><a href="#TimeToUnix-4388"><span class="linenos">4388</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-4389"><a href="#TimeToUnix-4389"><span class="linenos">4389</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44481,6 +46689,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeToUnix.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeToUnix.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeToUnix.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44519,8 +46728,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToUnix.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeToUnix.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeToUnix.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeToUnix.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeToUnix.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeToUnix.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeToUnix.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeToUnix.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeToUnix.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeToUnix.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44542,8 +46753,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-4127"><a href="#TimeStrToDate-4127"><span class="linenos">4127</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-4128"><a href="#TimeStrToDate-4128"><span class="linenos">4128</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-4392"><a href="#TimeStrToDate-4392"><span class="linenos">4392</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-4393"><a href="#TimeStrToDate-4393"><span class="linenos">4393</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44565,6 +46776,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeStrToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeStrToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeStrToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44603,8 +46815,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeStrToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeStrToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeStrToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeStrToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeStrToDate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeStrToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeStrToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeStrToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeStrToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44626,8 +46840,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-4131"><a href="#TimeStrToTime-4131"><span class="linenos">4131</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-4132"><a href="#TimeStrToTime-4132"><span class="linenos">4132</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-4396"><a href="#TimeStrToTime-4396"><span class="linenos">4396</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-4397"><a href="#TimeStrToTime-4397"><span class="linenos">4397</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44649,6 +46863,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeStrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeStrToTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeStrToTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeStrToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44687,8 +46902,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeStrToTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeStrToTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeStrToTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeStrToTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeStrToTime.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeStrToTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeStrToTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeStrToTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeStrToTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44710,8 +46927,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-4135"><a href="#TimeStrToUnix-4135"><span class="linenos">4135</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-4136"><a href="#TimeStrToUnix-4136"><span class="linenos">4136</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-4400"><a href="#TimeStrToUnix-4400"><span class="linenos">4400</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-4401"><a href="#TimeStrToUnix-4401"><span class="linenos">4401</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44733,6 +46950,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeStrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TimeStrToUnix.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeStrToUnix.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeStrToUnix.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44771,8 +46989,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToUnix.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeStrToUnix.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeStrToUnix.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TimeStrToUnix.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeStrToUnix.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeStrToUnix.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TimeStrToUnix.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeStrToUnix.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeStrToUnix.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeStrToUnix.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44794,13 +47014,13 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Trim"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-4139"><a href="#Trim-4139"><span class="linenos">4139</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-4140"><a href="#Trim-4140"><span class="linenos">4140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Trim-4141"><a href="#Trim-4141"><span class="linenos">4141</span></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-4142"><a href="#Trim-4142"><span class="linenos">4142</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-4143"><a href="#Trim-4143"><span class="linenos">4143</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-4144"><a href="#Trim-4144"><span class="linenos">4144</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-4145"><a href="#Trim-4145"><span class="linenos">4145</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-4404"><a href="#Trim-4404"><span class="linenos">4404</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-4405"><a href="#Trim-4405"><span class="linenos">4405</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Trim-4406"><a href="#Trim-4406"><span class="linenos">4406</span></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-4407"><a href="#Trim-4407"><span class="linenos">4407</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-4408"><a href="#Trim-4408"><span class="linenos">4408</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-4409"><a href="#Trim-4409"><span class="linenos">4409</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-4410"><a href="#Trim-4410"><span class="linenos">4410</span></a> <span class="p">}</span>
</span></pre></div>
@@ -44822,6 +47042,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Trim.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Trim.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Trim.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Trim.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Trim.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44860,8 +47081,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Trim.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Trim.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Trim.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Trim.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Trim.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Trim.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Trim.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Trim.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Trim.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Trim.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44883,8 +47106,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-4148"><a href="#TsOrDsAdd-4148"><span class="linenos">4148</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-4149"><a href="#TsOrDsAdd-4149"><span class="linenos">4149</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-4413"><a href="#TsOrDsAdd-4413"><span class="linenos">4413</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-4414"><a href="#TsOrDsAdd-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;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>
@@ -44908,8 +47131,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDsAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDsAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TsOrDsAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDsAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDsAdd.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TsOrDsAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDsAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDsAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDsAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -44929,6 +47154,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDsAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TsOrDsAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDsAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDsAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -44970,8 +47196,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-4152"><a href="#TsOrDsToDateStr-4152"><span class="linenos">4152</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-4153"><a href="#TsOrDsToDateStr-4153"><span class="linenos">4153</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-4417"><a href="#TsOrDsToDateStr-4417"><span class="linenos">4417</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-4418"><a href="#TsOrDsToDateStr-4418"><span class="linenos">4418</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44993,6 +47219,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsToDateStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDsToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TsOrDsToDateStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDsToDateStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDsToDateStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45031,8 +47258,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsToDateStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDsToDateStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDsToDateStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TsOrDsToDateStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDsToDateStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDsToDateStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TsOrDsToDateStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDsToDateStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDsToDateStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDsToDateStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45054,8 +47283,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-4156"><a href="#TsOrDsToDate-4156"><span class="linenos">4156</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-4157"><a href="#TsOrDsToDate-4157"><span class="linenos">4157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4421"><a href="#TsOrDsToDate-4421"><span class="linenos">4421</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-4422"><a href="#TsOrDsToDate-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;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -45077,6 +47306,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDsToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TsOrDsToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDsToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDsToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45115,8 +47345,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDsToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDsToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TsOrDsToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDsToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDsToDate.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TsOrDsToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDsToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDsToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDsToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45138,8 +47370,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-4160"><a href="#TsOrDiToDi-4160"><span class="linenos">4160</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-4161"><a href="#TsOrDiToDi-4161"><span class="linenos">4161</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-4425"><a href="#TsOrDiToDi-4425"><span class="linenos">4425</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-4426"><a href="#TsOrDiToDi-4426"><span class="linenos">4426</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -45161,6 +47393,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDiToDi.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDiToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="TsOrDiToDi.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDiToDi.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDiToDi.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45199,8 +47432,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDiToDi.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDiToDi.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDiToDi.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="TsOrDiToDi.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDiToDi.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDiToDi.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="TsOrDiToDi.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDiToDi.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDiToDi.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDiToDi.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45222,8 +47457,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Unhex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-4164"><a href="#Unhex-4164"><span class="linenos">4164</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-4165"><a href="#Unhex-4165"><span class="linenos">4165</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-4429"><a href="#Unhex-4429"><span class="linenos">4429</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-4430"><a href="#Unhex-4430"><span class="linenos">4430</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -45245,6 +47480,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Unhex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unhex.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Unhex.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unhex.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unhex.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45283,8 +47519,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Unhex.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Unhex.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Unhex.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Unhex.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Unhex.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Unhex.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Unhex.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Unhex.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Unhex.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Unhex.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45306,8 +47544,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#UnixToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-4168"><a href="#UnixToStr-4168"><span class="linenos">4168</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-4169"><a href="#UnixToStr-4169"><span class="linenos">4169</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4433"><a href="#UnixToStr-4433"><span class="linenos">4433</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-4434"><a href="#UnixToStr-4434"><span class="linenos">4434</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -45329,6 +47567,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UnixToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UnixToStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UnixToStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UnixToStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45367,8 +47606,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="UnixToStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="UnixToStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="UnixToStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="UnixToStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="UnixToStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="UnixToStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="UnixToStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="UnixToStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="UnixToStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45390,12 +47631,12 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#UnixToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-4174"><a href="#UnixToTime-4174"><span class="linenos">4174</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-4175"><a href="#UnixToTime-4175"><span class="linenos">4175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4176"><a href="#UnixToTime-4176"><span class="linenos">4176</span></a>
-</span><span id="UnixToTime-4177"><a href="#UnixToTime-4177"><span class="linenos">4177</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-4178"><a href="#UnixToTime-4178"><span class="linenos">4178</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-4179"><a href="#UnixToTime-4179"><span class="linenos">4179</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-4439"><a href="#UnixToTime-4439"><span class="linenos">4439</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-4440"><a href="#UnixToTime-4440"><span class="linenos">4440</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4441"><a href="#UnixToTime-4441"><span class="linenos">4441</span></a>
+</span><span id="UnixToTime-4442"><a href="#UnixToTime-4442"><span class="linenos">4442</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-4443"><a href="#UnixToTime-4443"><span class="linenos">4443</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-4444"><a href="#UnixToTime-4444"><span class="linenos">4444</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -45417,6 +47658,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UnixToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UnixToTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UnixToTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UnixToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45455,8 +47697,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="UnixToTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="UnixToTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="UnixToTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="UnixToTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="UnixToTime.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="UnixToTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="UnixToTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="UnixToTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="UnixToTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45478,8 +47722,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-4182"><a href="#UnixToTimeStr-4182"><span class="linenos">4182</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-4183"><a href="#UnixToTimeStr-4183"><span class="linenos">4183</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-4447"><a href="#UnixToTimeStr-4447"><span class="linenos">4447</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-4448"><a href="#UnixToTimeStr-4448"><span class="linenos">4448</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -45501,6 +47745,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToTimeStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UnixToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="UnixToTimeStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UnixToTimeStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UnixToTimeStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45539,8 +47784,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToTimeStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="UnixToTimeStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="UnixToTimeStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="UnixToTimeStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="UnixToTimeStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="UnixToTimeStr.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="UnixToTimeStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="UnixToTimeStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="UnixToTimeStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="UnixToTimeStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45562,8 +47809,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Upper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-4186"><a href="#Upper-4186"><span class="linenos">4186</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-4187"><a href="#Upper-4187"><span class="linenos">4187</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-4451"><a href="#Upper-4451"><span class="linenos">4451</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-4452"><a href="#Upper-4452"><span class="linenos">4452</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>
@@ -45585,6 +47832,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Upper.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Upper.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Upper.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Upper.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Upper.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45623,8 +47871,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Upper.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Upper.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Upper.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Upper.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Upper.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Upper.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Upper.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Upper.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Upper.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Upper.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45646,8 +47896,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Variance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-4190"><a href="#Variance-4190"><span class="linenos">4190</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-4191"><a href="#Variance-4191"><span class="linenos">4191</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-4455"><a href="#Variance-4455"><span class="linenos">4455</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-4456"><a href="#Variance-4456"><span class="linenos">4456</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>
@@ -45669,6 +47919,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Variance.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Variance.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Variance.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Variance.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Variance.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45707,8 +47958,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Variance.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Variance.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Variance.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Variance.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Variance.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Variance.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Variance.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Variance.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Variance.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Variance.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45730,8 +47983,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#VariancePop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-4194"><a href="#VariancePop-4194"><span class="linenos">4194</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-4195"><a href="#VariancePop-4195"><span class="linenos">4195</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-4459"><a href="#VariancePop-4459"><span class="linenos">4459</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-4460"><a href="#VariancePop-4460"><span class="linenos">4460</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>
@@ -45753,6 +48006,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="VariancePop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="VariancePop.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="VariancePop.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="VariancePop.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="VariancePop.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45791,8 +48045,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="VariancePop.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="VariancePop.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="VariancePop.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="VariancePop.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="VariancePop.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="VariancePop.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="VariancePop.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="VariancePop.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="VariancePop.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="VariancePop.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45814,8 +48070,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Week"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Week-4198"><a href="#Week-4198"><span class="linenos">4198</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-4199"><a href="#Week-4199"><span class="linenos">4199</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4463"><a href="#Week-4463"><span class="linenos">4463</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-4464"><a href="#Week-4464"><span class="linenos">4464</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -45837,6 +48093,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Week.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Week.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Week.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Week.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Week.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45875,8 +48132,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Week.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Week.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Week.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Week.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Week.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Week.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Week.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Week.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Week.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Week.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45898,8 +48157,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#XMLTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-4202"><a href="#XMLTable-4202"><span class="linenos">4202</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-4203"><a href="#XMLTable-4203"><span class="linenos">4203</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4467"><a href="#XMLTable-4467"><span class="linenos">4467</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-4468"><a href="#XMLTable-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;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>
@@ -45921,6 +48180,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="XMLTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="XMLTable.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="XMLTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="XMLTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="XMLTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -45959,8 +48219,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="XMLTable.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="XMLTable.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="XMLTable.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="XMLTable.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="XMLTable.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="XMLTable.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="XMLTable.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="XMLTable.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="XMLTable.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="XMLTable.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -45982,8 +48244,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Year"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Year-4206"><a href="#Year-4206"><span class="linenos">4206</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-4207"><a href="#Year-4207"><span class="linenos">4207</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Year-4471"><a href="#Year-4471"><span class="linenos">4471</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-4472"><a href="#Year-4472"><span class="linenos">4472</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46005,6 +48267,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Year.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Year.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Year.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Year.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Year.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -46043,8 +48306,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Year.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Year.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Year.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="Year.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Year.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Year.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="Year.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Year.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Year.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Year.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -46066,8 +48331,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Use"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Use-4210"><a href="#Use-4210"><span class="linenos">4210</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-4211"><a href="#Use-4211"><span class="linenos">4211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4475"><a href="#Use-4475"><span class="linenos">4475</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-4476"><a href="#Use-4476"><span class="linenos">4476</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -46089,6 +48354,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Use.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Use.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Use.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Use.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Use.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -46130,8 +48396,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Merge"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-4214"><a href="#Merge-4214"><span class="linenos">4214</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-4215"><a href="#Merge-4215"><span class="linenos">4215</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-4479"><a href="#Merge-4479"><span class="linenos">4479</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-4480"><a href="#Merge-4480"><span class="linenos">4480</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -46153,6 +48419,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Merge.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Merge.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="Merge.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Merge.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Merge.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -46194,8 +48461,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#When"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="When-4218"><a href="#When-4218"><span class="linenos">4218</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-4219"><a href="#When-4219"><span class="linenos">4219</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-4483"><a href="#When-4483"><span class="linenos">4483</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-4484"><a href="#When-4484"><span class="linenos">4484</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>
@@ -46217,6 +48484,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="When.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="When.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="When.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="When.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="When.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -46255,8 +48523,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="When.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="When.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="When.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="When.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="When.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="When.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="When.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="When.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="When.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="When.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -46278,8 +48548,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#NextValueFor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-4224"><a href="#NextValueFor-4224"><span class="linenos">4224</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-4225"><a href="#NextValueFor-4225"><span class="linenos">4225</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4489"><a href="#NextValueFor-4489"><span class="linenos">4489</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-4490"><a href="#NextValueFor-4490"><span class="linenos">4490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -46301,6 +48571,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="NextValueFor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NextValueFor.output_name" class="variable"><a href="#Expression.output_name">output_name</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>
<dd id="NextValueFor.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NextValueFor.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NextValueFor.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
@@ -46339,8 +48610,10 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="NextValueFor.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NextValueFor.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NextValueFor.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+ <dd id="NextValueFor.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NextValueFor.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NextValueFor.between" class="function"><a href="#Condition.between">between</a></dd>
+ <dd id="NextValueFor.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NextValueFor.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NextValueFor.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NextValueFor.eq" class="function"><a href="#Condition.eq">eq</a></dd>
@@ -46362,48 +48635,48 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#maybe_parse"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-4262"><a href="#maybe_parse-4262"><span class="linenos">4262</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="maybe_parse-4263"><a href="#maybe_parse-4263"><span class="linenos">4263</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-4264"><a href="#maybe_parse-4264"><span class="linenos">4264</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="maybe_parse-4265"><a href="#maybe_parse-4265"><span class="linenos">4265</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-4266"><a href="#maybe_parse-4266"><span class="linenos">4266</span></a> <span class="n">dialect</span><span 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-4267"><a href="#maybe_parse-4267"><span class="linenos">4267</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-4268"><a href="#maybe_parse-4268"><span class="linenos">4268</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-4269"><a href="#maybe_parse-4269"><span class="linenos">4269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="maybe_parse-4270"><a href="#maybe_parse-4270"><span class="linenos">4270</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-4271"><a href="#maybe_parse-4271"><span class="linenos">4271</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-4272"><a href="#maybe_parse-4272"><span class="linenos">4272</span></a>
-</span><span id="maybe_parse-4273"><a href="#maybe_parse-4273"><span class="linenos">4273</span></a><span class="sd"> Example:</span>
-</span><span id="maybe_parse-4274"><a href="#maybe_parse-4274"><span class="linenos">4274</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="maybe_parse-4275"><a href="#maybe_parse-4275"><span class="linenos">4275</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="maybe_parse-4276"><a href="#maybe_parse-4276"><span class="linenos">4276</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="maybe_parse-4277"><a href="#maybe_parse-4277"><span class="linenos">4277</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="maybe_parse-4278"><a href="#maybe_parse-4278"><span class="linenos">4278</span></a>
-</span><span id="maybe_parse-4279"><a href="#maybe_parse-4279"><span class="linenos">4279</span></a><span class="sd"> Args:</span>
-</span><span id="maybe_parse-4280"><a href="#maybe_parse-4280"><span class="linenos">4280</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="maybe_parse-4281"><a href="#maybe_parse-4281"><span class="linenos">4281</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="maybe_parse-4282"><a href="#maybe_parse-4282"><span class="linenos">4282</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-4283"><a href="#maybe_parse-4283"><span class="linenos">4283</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="maybe_parse-4284"><a href="#maybe_parse-4284"><span class="linenos">4284</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="maybe_parse-4285"><a href="#maybe_parse-4285"><span class="linenos">4285</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="maybe_parse-4286"><a href="#maybe_parse-4286"><span class="linenos">4286</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="maybe_parse-4287"><a href="#maybe_parse-4287"><span class="linenos">4287</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-4288"><a href="#maybe_parse-4288"><span class="linenos">4288</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="maybe_parse-4289"><a href="#maybe_parse-4289"><span class="linenos">4289</span></a>
-</span><span id="maybe_parse-4290"><a href="#maybe_parse-4290"><span class="linenos">4290</span></a><span class="sd"> Returns:</span>
-</span><span id="maybe_parse-4291"><a href="#maybe_parse-4291"><span class="linenos">4291</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="maybe_parse-4292"><a href="#maybe_parse-4292"><span class="linenos">4292</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="maybe_parse-4293"><a href="#maybe_parse-4293"><span class="linenos">4293</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-4294"><a href="#maybe_parse-4294"><span class="linenos">4294</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="maybe_parse-4295"><a href="#maybe_parse-4295"><span class="linenos">4295</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-4296"><a href="#maybe_parse-4296"><span class="linenos">4296</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="maybe_parse-4297"><a href="#maybe_parse-4297"><span class="linenos">4297</span></a>
-</span><span id="maybe_parse-4298"><a href="#maybe_parse-4298"><span class="linenos">4298</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="maybe_parse-4299"><a href="#maybe_parse-4299"><span class="linenos">4299</span></a>
-</span><span id="maybe_parse-4300"><a href="#maybe_parse-4300"><span class="linenos">4300</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-4301"><a href="#maybe_parse-4301"><span class="linenos">4301</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="maybe_parse-4302"><a href="#maybe_parse-4302"><span class="linenos">4302</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-4303"><a href="#maybe_parse-4303"><span class="linenos">4303</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-4527"><a href="#maybe_parse-4527"><span class="linenos">4527</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="maybe_parse-4528"><a href="#maybe_parse-4528"><span class="linenos">4528</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-4529"><a href="#maybe_parse-4529"><span class="linenos">4529</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="maybe_parse-4530"><a href="#maybe_parse-4530"><span class="linenos">4530</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-4531"><a href="#maybe_parse-4531"><span class="linenos">4531</span></a> <span class="n">dialect</span><span 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-4532"><a href="#maybe_parse-4532"><span class="linenos">4532</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-4533"><a href="#maybe_parse-4533"><span class="linenos">4533</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-4534"><a href="#maybe_parse-4534"><span class="linenos">4534</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="maybe_parse-4535"><a href="#maybe_parse-4535"><span class="linenos">4535</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-4536"><a href="#maybe_parse-4536"><span class="linenos">4536</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-4537"><a href="#maybe_parse-4537"><span class="linenos">4537</span></a>
+</span><span id="maybe_parse-4538"><a href="#maybe_parse-4538"><span class="linenos">4538</span></a><span class="sd"> Example:</span>
+</span><span id="maybe_parse-4539"><a href="#maybe_parse-4539"><span class="linenos">4539</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="maybe_parse-4540"><a href="#maybe_parse-4540"><span class="linenos">4540</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="maybe_parse-4541"><a href="#maybe_parse-4541"><span class="linenos">4541</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="maybe_parse-4542"><a href="#maybe_parse-4542"><span class="linenos">4542</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="maybe_parse-4543"><a href="#maybe_parse-4543"><span class="linenos">4543</span></a>
+</span><span id="maybe_parse-4544"><a href="#maybe_parse-4544"><span class="linenos">4544</span></a><span class="sd"> Args:</span>
+</span><span id="maybe_parse-4545"><a href="#maybe_parse-4545"><span class="linenos">4545</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="maybe_parse-4546"><a href="#maybe_parse-4546"><span class="linenos">4546</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="maybe_parse-4547"><a href="#maybe_parse-4547"><span class="linenos">4547</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-4548"><a href="#maybe_parse-4548"><span class="linenos">4548</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="maybe_parse-4549"><a href="#maybe_parse-4549"><span class="linenos">4549</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="maybe_parse-4550"><a href="#maybe_parse-4550"><span class="linenos">4550</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="maybe_parse-4551"><a href="#maybe_parse-4551"><span class="linenos">4551</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="maybe_parse-4552"><a href="#maybe_parse-4552"><span class="linenos">4552</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-4553"><a href="#maybe_parse-4553"><span class="linenos">4553</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="maybe_parse-4554"><a href="#maybe_parse-4554"><span class="linenos">4554</span></a>
+</span><span id="maybe_parse-4555"><a href="#maybe_parse-4555"><span class="linenos">4555</span></a><span class="sd"> Returns:</span>
+</span><span id="maybe_parse-4556"><a href="#maybe_parse-4556"><span class="linenos">4556</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="maybe_parse-4557"><a href="#maybe_parse-4557"><span class="linenos">4557</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="maybe_parse-4558"><a href="#maybe_parse-4558"><span class="linenos">4558</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-4559"><a href="#maybe_parse-4559"><span class="linenos">4559</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="maybe_parse-4560"><a href="#maybe_parse-4560"><span class="linenos">4560</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-4561"><a href="#maybe_parse-4561"><span class="linenos">4561</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="maybe_parse-4562"><a href="#maybe_parse-4562"><span class="linenos">4562</span></a>
+</span><span id="maybe_parse-4563"><a href="#maybe_parse-4563"><span class="linenos">4563</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="maybe_parse-4564"><a href="#maybe_parse-4564"><span class="linenos">4564</span></a>
+</span><span id="maybe_parse-4565"><a href="#maybe_parse-4565"><span class="linenos">4565</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-4566"><a href="#maybe_parse-4566"><span class="linenos">4566</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="maybe_parse-4567"><a href="#maybe_parse-4567"><span class="linenos">4567</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-4568"><a href="#maybe_parse-4568"><span class="linenos">4568</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>
@@ -46449,35 +48722,38 @@ that an input expression is a SQL string).</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">union</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">left</span>, </span><span class="param"><span class="n">right</span>, </span><span class="param"><span class="n">distinct</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">union</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">left</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">right</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span>
<label class="view-source-button" for="union-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="union-4451"><a href="#union-4451"><span class="linenos">4451</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="union-4452"><a href="#union-4452"><span class="linenos">4452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-4453"><a href="#union-4453"><span class="linenos">4453</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-4454"><a href="#union-4454"><span class="linenos">4454</span></a>
-</span><span id="union-4455"><a href="#union-4455"><span class="linenos">4455</span></a><span class="sd"> Example:</span>
-</span><span id="union-4456"><a href="#union-4456"><span class="linenos">4456</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-4457"><a href="#union-4457"><span class="linenos">4457</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-4458"><a href="#union-4458"><span class="linenos">4458</span></a>
-</span><span id="union-4459"><a href="#union-4459"><span class="linenos">4459</span></a><span class="sd"> Args:</span>
-</span><span id="union-4460"><a href="#union-4460"><span class="linenos">4460</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-4461"><a href="#union-4461"><span class="linenos">4461</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-4462"><a href="#union-4462"><span class="linenos">4462</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-4463"><a href="#union-4463"><span class="linenos">4463</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-4464"><a href="#union-4464"><span class="linenos">4464</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-4465"><a href="#union-4465"><span class="linenos">4465</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="union-4466"><a href="#union-4466"><span class="linenos">4466</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="union-4467"><a href="#union-4467"><span class="linenos">4467</span></a><span class="sd"> Returns:</span>
-</span><span id="union-4468"><a href="#union-4468"><span class="linenos">4468</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
-</span><span id="union-4469"><a href="#union-4469"><span class="linenos">4469</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-4470"><a href="#union-4470"><span class="linenos">4470</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-4471"><a href="#union-4471"><span class="linenos">4471</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-4472"><a href="#union-4472"><span class="linenos">4472</span></a>
-</span><span id="union-4473"><a href="#union-4473"><span class="linenos">4473</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-4752"><a href="#union-4752"><span class="linenos">4752</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="union-4753"><a href="#union-4753"><span class="linenos">4753</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="union-4754"><a href="#union-4754"><span class="linenos">4754</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="union-4755"><a href="#union-4755"><span class="linenos">4755</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-4756"><a href="#union-4756"><span class="linenos">4756</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-4757"><a href="#union-4757"><span class="linenos">4757</span></a>
+</span><span id="union-4758"><a href="#union-4758"><span class="linenos">4758</span></a><span class="sd"> Example:</span>
+</span><span id="union-4759"><a href="#union-4759"><span class="linenos">4759</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-4760"><a href="#union-4760"><span class="linenos">4760</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="union-4761"><a href="#union-4761"><span class="linenos">4761</span></a>
+</span><span id="union-4762"><a href="#union-4762"><span class="linenos">4762</span></a><span class="sd"> Args:</span>
+</span><span id="union-4763"><a href="#union-4763"><span class="linenos">4763</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-4764"><a href="#union-4764"><span class="linenos">4764</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-4765"><a href="#union-4765"><span class="linenos">4765</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-4766"><a href="#union-4766"><span class="linenos">4766</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-4767"><a href="#union-4767"><span class="linenos">4767</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-4768"><a href="#union-4768"><span class="linenos">4768</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="union-4769"><a href="#union-4769"><span class="linenos">4769</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="union-4770"><a href="#union-4770"><span class="linenos">4770</span></a>
+</span><span id="union-4771"><a href="#union-4771"><span class="linenos">4771</span></a><span class="sd"> Returns:</span>
+</span><span id="union-4772"><a href="#union-4772"><span class="linenos">4772</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="union-4773"><a href="#union-4773"><span class="linenos">4773</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-4774"><a href="#union-4774"><span class="linenos">4774</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-4775"><a href="#union-4775"><span class="linenos">4775</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-4776"><a href="#union-4776"><span class="linenos">4776</span></a>
+</span><span id="union-4777"><a href="#union-4777"><span class="linenos">4777</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>
@@ -46496,19 +48772,19 @@ that an input expression is a SQL string).</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.
+<li><strong>left:</strong> the SQL code string corresponding to the left-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.
+<li><strong>right:</strong> the SQL code string corresponding to the right-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Union: the syntax tree for the UNION expression.</p>
+ <p>The new Union instance.</p>
</blockquote>
</div>
@@ -46519,35 +48795,38 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">intersect</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">left</span>, </span><span class="param"><span class="n">right</span>, </span><span class="param"><span class="n">distinct</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">intersect</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">left</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">right</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Intersect">sqlglot.expressions.Intersect</a></span>:</span></span>
<label class="view-source-button" for="intersect-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-4476"><a href="#intersect-4476"><span class="linenos">4476</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="intersect-4477"><a href="#intersect-4477"><span class="linenos">4477</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-4478"><a href="#intersect-4478"><span class="linenos">4478</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-4479"><a href="#intersect-4479"><span class="linenos">4479</span></a>
-</span><span id="intersect-4480"><a href="#intersect-4480"><span class="linenos">4480</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-4481"><a href="#intersect-4481"><span class="linenos">4481</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-4482"><a href="#intersect-4482"><span class="linenos">4482</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-4483"><a href="#intersect-4483"><span class="linenos">4483</span></a>
-</span><span id="intersect-4484"><a href="#intersect-4484"><span class="linenos">4484</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-4485"><a href="#intersect-4485"><span class="linenos">4485</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-4486"><a href="#intersect-4486"><span class="linenos">4486</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-4487"><a href="#intersect-4487"><span class="linenos">4487</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-4488"><a href="#intersect-4488"><span class="linenos">4488</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-4489"><a href="#intersect-4489"><span class="linenos">4489</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-4490"><a href="#intersect-4490"><span class="linenos">4490</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="intersect-4491"><a href="#intersect-4491"><span class="linenos">4491</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="intersect-4492"><a href="#intersect-4492"><span class="linenos">4492</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-4493"><a href="#intersect-4493"><span class="linenos">4493</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
-</span><span id="intersect-4494"><a href="#intersect-4494"><span class="linenos">4494</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-4495"><a href="#intersect-4495"><span class="linenos">4495</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-4496"><a href="#intersect-4496"><span class="linenos">4496</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-4497"><a href="#intersect-4497"><span class="linenos">4497</span></a>
-</span><span id="intersect-4498"><a href="#intersect-4498"><span class="linenos">4498</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-4780"><a href="#intersect-4780"><span class="linenos">4780</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="intersect-4781"><a href="#intersect-4781"><span class="linenos">4781</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="intersect-4782"><a href="#intersect-4782"><span class="linenos">4782</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="intersect-4783"><a href="#intersect-4783"><span class="linenos">4783</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-4784"><a href="#intersect-4784"><span class="linenos">4784</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-4785"><a href="#intersect-4785"><span class="linenos">4785</span></a>
+</span><span id="intersect-4786"><a href="#intersect-4786"><span class="linenos">4786</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-4787"><a href="#intersect-4787"><span class="linenos">4787</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-4788"><a href="#intersect-4788"><span class="linenos">4788</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="intersect-4789"><a href="#intersect-4789"><span class="linenos">4789</span></a>
+</span><span id="intersect-4790"><a href="#intersect-4790"><span class="linenos">4790</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-4791"><a href="#intersect-4791"><span class="linenos">4791</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-4792"><a href="#intersect-4792"><span class="linenos">4792</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-4793"><a href="#intersect-4793"><span class="linenos">4793</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-4794"><a href="#intersect-4794"><span class="linenos">4794</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-4795"><a href="#intersect-4795"><span class="linenos">4795</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-4796"><a href="#intersect-4796"><span class="linenos">4796</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="intersect-4797"><a href="#intersect-4797"><span class="linenos">4797</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="intersect-4798"><a href="#intersect-4798"><span class="linenos">4798</span></a>
+</span><span id="intersect-4799"><a href="#intersect-4799"><span class="linenos">4799</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-4800"><a href="#intersect-4800"><span class="linenos">4800</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="intersect-4801"><a href="#intersect-4801"><span class="linenos">4801</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-4802"><a href="#intersect-4802"><span class="linenos">4802</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-4803"><a href="#intersect-4803"><span class="linenos">4803</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-4804"><a href="#intersect-4804"><span class="linenos">4804</span></a>
+</span><span id="intersect-4805"><a href="#intersect-4805"><span class="linenos">4805</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>
@@ -46566,19 +48845,19 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.
+<li><strong>left:</strong> the SQL code string corresponding to the left-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.
+<li><strong>right:</strong> the SQL code string corresponding to the right-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Intersect: the syntax tree for the INTERSECT expression.</p>
+ <p>The new Intersect instance.</p>
</blockquote>
</div>
@@ -46589,35 +48868,38 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr function">
<span class="def">def</span>
- <span class="name">except_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">left</span>, </span><span class="param"><span class="n">right</span>, </span><span class="param"><span class="n">distinct</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">except_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">left</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">right</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Except">sqlglot.expressions.Except</a></span>:</span></span>
<label class="view-source-button" for="except_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#except_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="except_-4501"><a href="#except_-4501"><span class="linenos">4501</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="except_-4502"><a href="#except_-4502"><span class="linenos">4502</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-4503"><a href="#except_-4503"><span class="linenos">4503</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-4504"><a href="#except_-4504"><span class="linenos">4504</span></a>
-</span><span id="except_-4505"><a href="#except_-4505"><span class="linenos">4505</span></a><span class="sd"> Example:</span>
-</span><span id="except_-4506"><a href="#except_-4506"><span class="linenos">4506</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_-4507"><a href="#except_-4507"><span class="linenos">4507</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-4508"><a href="#except_-4508"><span class="linenos">4508</span></a>
-</span><span id="except_-4509"><a href="#except_-4509"><span class="linenos">4509</span></a><span class="sd"> Args:</span>
-</span><span id="except_-4510"><a href="#except_-4510"><span class="linenos">4510</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-4511"><a href="#except_-4511"><span class="linenos">4511</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-4512"><a href="#except_-4512"><span class="linenos">4512</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-4513"><a href="#except_-4513"><span class="linenos">4513</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-4514"><a href="#except_-4514"><span class="linenos">4514</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-4515"><a href="#except_-4515"><span class="linenos">4515</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="except_-4516"><a href="#except_-4516"><span class="linenos">4516</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="except_-4517"><a href="#except_-4517"><span class="linenos">4517</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-4518"><a href="#except_-4518"><span class="linenos">4518</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
-</span><span id="except_-4519"><a href="#except_-4519"><span class="linenos">4519</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-4520"><a href="#except_-4520"><span class="linenos">4520</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-4521"><a href="#except_-4521"><span class="linenos">4521</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-4522"><a href="#except_-4522"><span class="linenos">4522</span></a>
-</span><span id="except_-4523"><a href="#except_-4523"><span class="linenos">4523</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_-4808"><a href="#except_-4808"><span class="linenos">4808</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="except_-4809"><a href="#except_-4809"><span class="linenos">4809</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="except_-4810"><a href="#except_-4810"><span class="linenos">4810</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="except_-4811"><a href="#except_-4811"><span class="linenos">4811</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-4812"><a href="#except_-4812"><span class="linenos">4812</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-4813"><a href="#except_-4813"><span class="linenos">4813</span></a>
+</span><span id="except_-4814"><a href="#except_-4814"><span class="linenos">4814</span></a><span class="sd"> Example:</span>
+</span><span id="except_-4815"><a href="#except_-4815"><span class="linenos">4815</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_-4816"><a href="#except_-4816"><span class="linenos">4816</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="except_-4817"><a href="#except_-4817"><span class="linenos">4817</span></a>
+</span><span id="except_-4818"><a href="#except_-4818"><span class="linenos">4818</span></a><span class="sd"> Args:</span>
+</span><span id="except_-4819"><a href="#except_-4819"><span class="linenos">4819</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-4820"><a href="#except_-4820"><span class="linenos">4820</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-4821"><a href="#except_-4821"><span class="linenos">4821</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-4822"><a href="#except_-4822"><span class="linenos">4822</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-4823"><a href="#except_-4823"><span class="linenos">4823</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-4824"><a href="#except_-4824"><span class="linenos">4824</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="except_-4825"><a href="#except_-4825"><span class="linenos">4825</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="except_-4826"><a href="#except_-4826"><span class="linenos">4826</span></a>
+</span><span id="except_-4827"><a href="#except_-4827"><span class="linenos">4827</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-4828"><a href="#except_-4828"><span class="linenos">4828</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="except_-4829"><a href="#except_-4829"><span class="linenos">4829</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-4830"><a href="#except_-4830"><span class="linenos">4830</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-4831"><a href="#except_-4831"><span class="linenos">4831</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-4832"><a href="#except_-4832"><span class="linenos">4832</span></a>
+</span><span id="except_-4833"><a href="#except_-4833"><span class="linenos">4833</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>
@@ -46636,19 +48918,19 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.
+<li><strong>left:</strong> the SQL code string corresponding to the left-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.
+<li><strong>right:</strong> the SQL code string corresponding to the right-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
-<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>
+<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Except: the syntax tree for the EXCEPT statement.</p>
+ <p>The new Except instance.</p>
</blockquote>
</div>
@@ -46665,26 +48947,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-4526"><a href="#select-4526"><span class="linenos">4526</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-4527"><a href="#select-4527"><span class="linenos">4527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-4528"><a href="#select-4528"><span class="linenos">4528</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-4529"><a href="#select-4529"><span class="linenos">4529</span></a>
-</span><span id="select-4530"><a href="#select-4530"><span class="linenos">4530</span></a><span class="sd"> Example:</span>
-</span><span id="select-4531"><a href="#select-4531"><span class="linenos">4531</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-4532"><a href="#select-4532"><span class="linenos">4532</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-4533"><a href="#select-4533"><span class="linenos">4533</span></a>
-</span><span id="select-4534"><a href="#select-4534"><span class="linenos">4534</span></a><span class="sd"> Args:</span>
-</span><span id="select-4535"><a href="#select-4535"><span class="linenos">4535</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-4536"><a href="#select-4536"><span class="linenos">4536</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-4537"><a href="#select-4537"><span class="linenos">4537</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-4538"><a href="#select-4538"><span class="linenos">4538</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-4539"><a href="#select-4539"><span class="linenos">4539</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-4540"><a href="#select-4540"><span class="linenos">4540</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="select-4541"><a href="#select-4541"><span class="linenos">4541</span></a>
-</span><span id="select-4542"><a href="#select-4542"><span class="linenos">4542</span></a><span class="sd"> Returns:</span>
-</span><span id="select-4543"><a href="#select-4543"><span class="linenos">4543</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-4544"><a href="#select-4544"><span class="linenos">4544</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-4545"><a href="#select-4545"><span class="linenos">4545</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-4836"><a href="#select-4836"><span class="linenos">4836</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-4837"><a href="#select-4837"><span class="linenos">4837</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-4838"><a href="#select-4838"><span class="linenos">4838</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="select-4839"><a href="#select-4839"><span class="linenos">4839</span></a>
+</span><span id="select-4840"><a href="#select-4840"><span class="linenos">4840</span></a><span class="sd"> Example:</span>
+</span><span id="select-4841"><a href="#select-4841"><span class="linenos">4841</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-4842"><a href="#select-4842"><span class="linenos">4842</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-4843"><a href="#select-4843"><span class="linenos">4843</span></a>
+</span><span id="select-4844"><a href="#select-4844"><span class="linenos">4844</span></a><span class="sd"> Args:</span>
+</span><span id="select-4845"><a href="#select-4845"><span class="linenos">4845</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-4846"><a href="#select-4846"><span class="linenos">4846</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-4847"><a href="#select-4847"><span class="linenos">4847</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-4848"><a href="#select-4848"><span class="linenos">4848</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-4849"><a href="#select-4849"><span class="linenos">4849</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-4850"><a href="#select-4850"><span class="linenos">4850</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-4851"><a href="#select-4851"><span class="linenos">4851</span></a>
+</span><span id="select-4852"><a href="#select-4852"><span class="linenos">4852</span></a><span class="sd"> Returns:</span>
+</span><span id="select-4853"><a href="#select-4853"><span class="linenos">4853</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-4854"><a href="#select-4854"><span class="linenos">4854</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-4855"><a href="#select-4855"><span class="linenos">4855</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>
@@ -46725,32 +49007,32 @@ that an input expression is a SQL string).</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">from_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
+ <span class="name">from_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="from_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#from_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="from_-4548"><a href="#from_-4548"><span class="linenos">4548</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="from_-4549"><a href="#from_-4549"><span class="linenos">4549</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-4550"><a href="#from_-4550"><span class="linenos">4550</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-4551"><a href="#from_-4551"><span class="linenos">4551</span></a>
-</span><span id="from_-4552"><a href="#from_-4552"><span class="linenos">4552</span></a><span class="sd"> Example:</span>
-</span><span id="from_-4553"><a href="#from_-4553"><span class="linenos">4553</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_-4554"><a href="#from_-4554"><span class="linenos">4554</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-4555"><a href="#from_-4555"><span class="linenos">4555</span></a>
-</span><span id="from_-4556"><a href="#from_-4556"><span class="linenos">4556</span></a><span class="sd"> Args:</span>
-</span><span id="from_-4557"><a href="#from_-4557"><span class="linenos">4557</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-4558"><a href="#from_-4558"><span class="linenos">4558</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-4559"><a href="#from_-4559"><span class="linenos">4559</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-4560"><a href="#from_-4560"><span class="linenos">4560</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-4561"><a href="#from_-4561"><span class="linenos">4561</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-4562"><a href="#from_-4562"><span class="linenos">4562</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="from_-4563"><a href="#from_-4563"><span class="linenos">4563</span></a>
-</span><span id="from_-4564"><a href="#from_-4564"><span class="linenos">4564</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-4565"><a href="#from_-4565"><span class="linenos">4565</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-4566"><a href="#from_-4566"><span class="linenos">4566</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-4567"><a href="#from_-4567"><span class="linenos">4567</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-4858"><a href="#from_-4858"><span class="linenos">4858</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_-4859"><a href="#from_-4859"><span class="linenos">4859</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-4860"><a href="#from_-4860"><span class="linenos">4860</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="from_-4861"><a href="#from_-4861"><span class="linenos">4861</span></a>
+</span><span id="from_-4862"><a href="#from_-4862"><span class="linenos">4862</span></a><span class="sd"> Example:</span>
+</span><span id="from_-4863"><a href="#from_-4863"><span class="linenos">4863</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_-4864"><a href="#from_-4864"><span class="linenos">4864</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-4865"><a href="#from_-4865"><span class="linenos">4865</span></a>
+</span><span id="from_-4866"><a href="#from_-4866"><span class="linenos">4866</span></a><span class="sd"> Args:</span>
+</span><span id="from_-4867"><a href="#from_-4867"><span class="linenos">4867</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-4868"><a href="#from_-4868"><span class="linenos">4868</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-4869"><a href="#from_-4869"><span class="linenos">4869</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-4870"><a href="#from_-4870"><span class="linenos">4870</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-4871"><a href="#from_-4871"><span class="linenos">4871</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-4872"><a href="#from_-4872"><span class="linenos">4872</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-4873"><a href="#from_-4873"><span class="linenos">4873</span></a>
+</span><span id="from_-4874"><a href="#from_-4874"><span class="linenos">4874</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-4875"><a href="#from_-4875"><span class="linenos">4875</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-4876"><a href="#from_-4876"><span class="linenos">4876</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-4877"><a href="#from_-4877"><span class="linenos">4877</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>
@@ -46769,9 +49051,9 @@ that an input expression is a SQL string).</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code string to parse as the FROM expressions of a
+<li><strong>*expression:</strong> the SQL code string to parse as the FROM expressions of a
SELECT statement. If an Expression instance is passed, this is used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression (in the case that the
+<li><strong>dialect:</strong> the dialect used to parse the input expression (in the case that the
input expression is a SQL string).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case
that the input expression is a SQL string).</li>
@@ -46797,53 +49079,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-4570"><a href="#update-4570"><span class="linenos">4570</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="update-4571"><a href="#update-4571"><span class="linenos">4571</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-4572"><a href="#update-4572"><span class="linenos">4572</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="update-4573"><a href="#update-4573"><span class="linenos">4573</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-4574"><a href="#update-4574"><span class="linenos">4574</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-4575"><a href="#update-4575"><span class="linenos">4575</span></a> <span class="n">dialect</span><span 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-4576"><a href="#update-4576"><span class="linenos">4576</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="update-4577"><a href="#update-4577"><span class="linenos">4577</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="update-4578"><a href="#update-4578"><span class="linenos">4578</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-4579"><a href="#update-4579"><span class="linenos">4579</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-4580"><a href="#update-4580"><span class="linenos">4580</span></a>
-</span><span id="update-4581"><a href="#update-4581"><span class="linenos">4581</span></a><span class="sd"> Example:</span>
-</span><span id="update-4582"><a href="#update-4582"><span class="linenos">4582</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-4583"><a href="#update-4583"><span class="linenos">4583</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-4584"><a href="#update-4584"><span class="linenos">4584</span></a>
-</span><span id="update-4585"><a href="#update-4585"><span class="linenos">4585</span></a><span class="sd"> Args:</span>
-</span><span id="update-4586"><a href="#update-4586"><span class="linenos">4586</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="update-4587"><a href="#update-4587"><span class="linenos">4587</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-4588"><a href="#update-4588"><span class="linenos">4588</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="update-4589"><a href="#update-4589"><span class="linenos">4589</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="update-4590"><a href="#update-4590"><span class="linenos">4590</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="update-4591"><a href="#update-4591"><span class="linenos">4591</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="update-4592"><a href="#update-4592"><span class="linenos">4592</span></a>
-</span><span id="update-4593"><a href="#update-4593"><span class="linenos">4593</span></a><span class="sd"> Returns:</span>
-</span><span id="update-4594"><a href="#update-4594"><span class="linenos">4594</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-4595"><a href="#update-4595"><span class="linenos">4595</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-4596"><a href="#update-4596"><span class="linenos">4596</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-4597"><a href="#update-4597"><span class="linenos">4597</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-4598"><a href="#update-4598"><span class="linenos">4598</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-4599"><a href="#update-4599"><span class="linenos">4599</span></a> <span class="p">[</span>
-</span><span id="update-4600"><a href="#update-4600"><span class="linenos">4600</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-4601"><a href="#update-4601"><span class="linenos">4601</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-4602"><a href="#update-4602"><span class="linenos">4602</span></a> <span class="p">],</span>
-</span><span id="update-4603"><a href="#update-4603"><span class="linenos">4603</span></a> <span class="p">)</span>
-</span><span id="update-4604"><a href="#update-4604"><span class="linenos">4604</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-4605"><a href="#update-4605"><span class="linenos">4605</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-4606"><a href="#update-4606"><span class="linenos">4606</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-4607"><a href="#update-4607"><span class="linenos">4607</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-4608"><a href="#update-4608"><span class="linenos">4608</span></a> <span class="p">)</span>
-</span><span id="update-4609"><a href="#update-4609"><span class="linenos">4609</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-4610"><a href="#update-4610"><span class="linenos">4610</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-4611"><a href="#update-4611"><span class="linenos">4611</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-4612"><a href="#update-4612"><span class="linenos">4612</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-4613"><a href="#update-4613"><span class="linenos">4613</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-4614"><a href="#update-4614"><span class="linenos">4614</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-4615"><a href="#update-4615"><span class="linenos">4615</span></a> <span class="p">)</span>
-</span><span id="update-4616"><a href="#update-4616"><span class="linenos">4616</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="update-4880"><a href="#update-4880"><span class="linenos">4880</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="update-4881"><a href="#update-4881"><span class="linenos">4881</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-4882"><a href="#update-4882"><span class="linenos">4882</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="update-4883"><a href="#update-4883"><span class="linenos">4883</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-4884"><a href="#update-4884"><span class="linenos">4884</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-4885"><a href="#update-4885"><span class="linenos">4885</span></a> <span class="n">dialect</span><span 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-4886"><a href="#update-4886"><span class="linenos">4886</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="update-4887"><a href="#update-4887"><span class="linenos">4887</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="update-4888"><a href="#update-4888"><span class="linenos">4888</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-4889"><a href="#update-4889"><span class="linenos">4889</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="update-4890"><a href="#update-4890"><span class="linenos">4890</span></a>
+</span><span id="update-4891"><a href="#update-4891"><span class="linenos">4891</span></a><span class="sd"> Example:</span>
+</span><span id="update-4892"><a href="#update-4892"><span class="linenos">4892</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-4893"><a href="#update-4893"><span class="linenos">4893</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-4894"><a href="#update-4894"><span class="linenos">4894</span></a>
+</span><span id="update-4895"><a href="#update-4895"><span class="linenos">4895</span></a><span class="sd"> Args:</span>
+</span><span id="update-4896"><a href="#update-4896"><span class="linenos">4896</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="update-4897"><a href="#update-4897"><span class="linenos">4897</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-4898"><a href="#update-4898"><span class="linenos">4898</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="update-4899"><a href="#update-4899"><span class="linenos">4899</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="update-4900"><a href="#update-4900"><span class="linenos">4900</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="update-4901"><a href="#update-4901"><span class="linenos">4901</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-4902"><a href="#update-4902"><span class="linenos">4902</span></a>
+</span><span id="update-4903"><a href="#update-4903"><span class="linenos">4903</span></a><span class="sd"> Returns:</span>
+</span><span id="update-4904"><a href="#update-4904"><span class="linenos">4904</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-4905"><a href="#update-4905"><span class="linenos">4905</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-4906"><a href="#update-4906"><span class="linenos">4906</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-4907"><a href="#update-4907"><span class="linenos">4907</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-4908"><a href="#update-4908"><span class="linenos">4908</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-4909"><a href="#update-4909"><span class="linenos">4909</span></a> <span class="p">[</span>
+</span><span id="update-4910"><a href="#update-4910"><span class="linenos">4910</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-4911"><a href="#update-4911"><span class="linenos">4911</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-4912"><a href="#update-4912"><span class="linenos">4912</span></a> <span class="p">],</span>
+</span><span id="update-4913"><a href="#update-4913"><span class="linenos">4913</span></a> <span class="p">)</span>
+</span><span id="update-4914"><a href="#update-4914"><span class="linenos">4914</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-4915"><a href="#update-4915"><span class="linenos">4915</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-4916"><a href="#update-4916"><span class="linenos">4916</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-4917"><a href="#update-4917"><span class="linenos">4917</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-4918"><a href="#update-4918"><span class="linenos">4918</span></a> <span class="p">)</span>
+</span><span id="update-4919"><a href="#update-4919"><span class="linenos">4919</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-4920"><a href="#update-4920"><span class="linenos">4920</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-4921"><a href="#update-4921"><span class="linenos">4921</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-4922"><a href="#update-4922"><span class="linenos">4922</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-4923"><a href="#update-4923"><span class="linenos">4923</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-4924"><a href="#update-4924"><span class="linenos">4924</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-4925"><a href="#update-4925"><span class="linenos">4925</span></a> <span class="p">)</span>
+</span><span id="update-4926"><a href="#update-4926"><span class="linenos">4926</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
@@ -46890,35 +49172,35 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4619"><a href="#delete-4619"><span class="linenos">4619</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="delete-4620"><a href="#delete-4620"><span class="linenos">4620</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="delete-4621"><a href="#delete-4621"><span class="linenos">4621</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-4622"><a href="#delete-4622"><span class="linenos">4622</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-4623"><a href="#delete-4623"><span class="linenos">4623</span></a> <span class="n">dialect</span><span 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-4624"><a href="#delete-4624"><span class="linenos">4624</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="delete-4625"><a href="#delete-4625"><span class="linenos">4625</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="delete-4626"><a href="#delete-4626"><span class="linenos">4626</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-4627"><a href="#delete-4627"><span class="linenos">4627</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-4628"><a href="#delete-4628"><span class="linenos">4628</span></a>
-</span><span id="delete-4629"><a href="#delete-4629"><span class="linenos">4629</span></a><span class="sd"> Example:</span>
-</span><span id="delete-4630"><a href="#delete-4630"><span class="linenos">4630</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-4631"><a href="#delete-4631"><span class="linenos">4631</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-4632"><a href="#delete-4632"><span class="linenos">4632</span></a>
-</span><span id="delete-4633"><a href="#delete-4633"><span class="linenos">4633</span></a><span class="sd"> Args:</span>
-</span><span id="delete-4634"><a href="#delete-4634"><span class="linenos">4634</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-4635"><a href="#delete-4635"><span class="linenos">4635</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="delete-4636"><a href="#delete-4636"><span class="linenos">4636</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="delete-4637"><a href="#delete-4637"><span class="linenos">4637</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="delete-4638"><a href="#delete-4638"><span class="linenos">4638</span></a>
-</span><span id="delete-4639"><a href="#delete-4639"><span class="linenos">4639</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-4640"><a href="#delete-4640"><span class="linenos">4640</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-4641"><a href="#delete-4641"><span class="linenos">4641</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-4642"><a href="#delete-4642"><span class="linenos">4642</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-4643"><a href="#delete-4643"><span class="linenos">4643</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="delete-4644"><a href="#delete-4644"><span class="linenos">4644</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-4645"><a href="#delete-4645"><span class="linenos">4645</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="delete-4646"><a href="#delete-4646"><span class="linenos">4646</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-4647"><a href="#delete-4647"><span class="linenos">4647</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4929"><a href="#delete-4929"><span class="linenos">4929</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="delete-4930"><a href="#delete-4930"><span class="linenos">4930</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="delete-4931"><a href="#delete-4931"><span class="linenos">4931</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-4932"><a href="#delete-4932"><span class="linenos">4932</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-4933"><a href="#delete-4933"><span class="linenos">4933</span></a> <span class="n">dialect</span><span 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-4934"><a href="#delete-4934"><span class="linenos">4934</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="delete-4935"><a href="#delete-4935"><span class="linenos">4935</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="delete-4936"><a href="#delete-4936"><span class="linenos">4936</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-4937"><a href="#delete-4937"><span class="linenos">4937</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="delete-4938"><a href="#delete-4938"><span class="linenos">4938</span></a>
+</span><span id="delete-4939"><a href="#delete-4939"><span class="linenos">4939</span></a><span class="sd"> Example:</span>
+</span><span id="delete-4940"><a href="#delete-4940"><span class="linenos">4940</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-4941"><a href="#delete-4941"><span class="linenos">4941</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-4942"><a href="#delete-4942"><span class="linenos">4942</span></a>
+</span><span id="delete-4943"><a href="#delete-4943"><span class="linenos">4943</span></a><span class="sd"> Args:</span>
+</span><span id="delete-4944"><a href="#delete-4944"><span class="linenos">4944</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-4945"><a href="#delete-4945"><span class="linenos">4945</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="delete-4946"><a href="#delete-4946"><span class="linenos">4946</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="delete-4947"><a href="#delete-4947"><span class="linenos">4947</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-4948"><a href="#delete-4948"><span class="linenos">4948</span></a>
+</span><span id="delete-4949"><a href="#delete-4949"><span class="linenos">4949</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-4950"><a href="#delete-4950"><span class="linenos">4950</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-4951"><a href="#delete-4951"><span class="linenos">4951</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-4952"><a href="#delete-4952"><span class="linenos">4952</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-4953"><a href="#delete-4953"><span class="linenos">4953</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="delete-4954"><a href="#delete-4954"><span class="linenos">4954</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-4955"><a href="#delete-4955"><span class="linenos">4955</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="delete-4956"><a href="#delete-4956"><span class="linenos">4956</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-4957"><a href="#delete-4957"><span class="linenos">4957</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
@@ -46952,50 +49234,142 @@ auto converted to sql objects eg None -> NULL</li>
</section>
+ <section id="insert">
+ <input id="insert-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">insert</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">into</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">columns</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">overwrite</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="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Insert">sqlglot.expressions.Insert</a></span>:</span></span>
+
+ <label class="view-source-button" for="insert-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#insert"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="insert-4960"><a href="#insert-4960"><span class="linenos">4960</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="insert-4961"><a href="#insert-4961"><span class="linenos">4961</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-4962"><a href="#insert-4962"><span class="linenos">4962</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-4963"><a href="#insert-4963"><span class="linenos">4963</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-4964"><a href="#insert-4964"><span class="linenos">4964</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-4965"><a href="#insert-4965"><span class="linenos">4965</span></a> <span class="n">dialect</span><span 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-4966"><a href="#insert-4966"><span class="linenos">4966</span></a> <span class="n">copy</span><span 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-4967"><a href="#insert-4967"><span class="linenos">4967</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-4968"><a href="#insert-4968"><span class="linenos">4968</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="insert-4969"><a href="#insert-4969"><span class="linenos">4969</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="insert-4970"><a href="#insert-4970"><span class="linenos">4970</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="insert-4971"><a href="#insert-4971"><span class="linenos">4971</span></a>
+</span><span id="insert-4972"><a href="#insert-4972"><span class="linenos">4972</span></a><span class="sd"> Example:</span>
+</span><span id="insert-4973"><a href="#insert-4973"><span class="linenos">4973</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="insert-4974"><a href="#insert-4974"><span class="linenos">4974</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="insert-4975"><a href="#insert-4975"><span class="linenos">4975</span></a>
+</span><span id="insert-4976"><a href="#insert-4976"><span class="linenos">4976</span></a><span class="sd"> Args:</span>
+</span><span id="insert-4977"><a href="#insert-4977"><span class="linenos">4977</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="insert-4978"><a href="#insert-4978"><span class="linenos">4978</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="insert-4979"><a href="#insert-4979"><span class="linenos">4979</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="insert-4980"><a href="#insert-4980"><span class="linenos">4980</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="insert-4981"><a href="#insert-4981"><span class="linenos">4981</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="insert-4982"><a href="#insert-4982"><span class="linenos">4982</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="insert-4983"><a href="#insert-4983"><span class="linenos">4983</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="insert-4984"><a href="#insert-4984"><span class="linenos">4984</span></a>
+</span><span id="insert-4985"><a href="#insert-4985"><span class="linenos">4985</span></a><span class="sd"> Returns:</span>
+</span><span id="insert-4986"><a href="#insert-4986"><span class="linenos">4986</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="insert-4987"><a href="#insert-4987"><span class="linenos">4987</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="insert-4988"><a href="#insert-4988"><span class="linenos">4988</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-4989"><a href="#insert-4989"><span class="linenos">4989</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-4990"><a href="#insert-4990"><span class="linenos">4990</span></a>
+</span><span id="insert-4991"><a href="#insert-4991"><span class="linenos">4991</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="insert-4992"><a href="#insert-4992"><span class="linenos">4992</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-4993"><a href="#insert-4993"><span class="linenos">4993</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="insert-4994"><a href="#insert-4994"><span class="linenos">4994</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-4995"><a href="#insert-4995"><span class="linenos">4995</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-4996"><a href="#insert-4996"><span class="linenos">4996</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="insert-4997"><a href="#insert-4997"><span class="linenos">4997</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="insert-4998"><a href="#insert-4998"><span class="linenos">4998</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="insert-4999"><a href="#insert-4999"><span class="linenos">4999</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5000"><a href="#insert-5000"><span class="linenos">5000</span></a> <span class="p">)</span>
+</span><span id="insert-5001"><a href="#insert-5001"><span class="linenos">5001</span></a>
+</span><span id="insert-5002"><a href="#insert-5002"><span class="linenos">5002</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+</span></pre></div>
+
+
+ <div class="docstring"><p>Builds an INSERT statement.</p>
+
+<h6 id="example">Example:</h6>
+
+<blockquote>
+ <div class="pdoc-code codehilite">
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">insert</span><span class="p">(</span><span class="s2">&quot;VALUES (1, 2, 3)&quot;</span><span class="p">,</span> <span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<span class="go">&#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</code></pre>
+ </div>
+</blockquote>
+
+<h6 id="arguments">Arguments:</h6>
+
+<ul>
+<li><strong>expression:</strong> the sql string or expression of the INSERT statement</li>
+<li><strong>into:</strong> the tbl to insert data to.</li>
+<li><strong>columns:</strong> optionally the table's column names.</li>
+<li><strong>overwrite:</strong> whether to INSERT OVERWRITE or not.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
+<li><strong>copy:</strong> whether or not to copy the expression.</li>
+<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
+</ul>
+
+<h6 id="returns">Returns:</h6>
+
+<blockquote>
+ <p>Insert: the syntax tree for the INSERT statement.</p>
+</blockquote>
+</div>
+
+
+ </section>
<section id="condition">
<input id="condition-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">condition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span>,</span><span class="param"> <span class="n">dialect</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="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
+ <span class="name">condition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
<label class="view-source-button" for="condition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="condition-4650"><a href="#condition-4650"><span class="linenos">4650</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="condition-4651"><a href="#condition-4651"><span class="linenos">4651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-4652"><a href="#condition-4652"><span class="linenos">4652</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-4653"><a href="#condition-4653"><span class="linenos">4653</span></a>
-</span><span id="condition-4654"><a href="#condition-4654"><span class="linenos">4654</span></a><span class="sd"> Example:</span>
-</span><span id="condition-4655"><a href="#condition-4655"><span class="linenos">4655</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-4656"><a href="#condition-4656"><span class="linenos">4656</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-4657"><a href="#condition-4657"><span class="linenos">4657</span></a>
-</span><span id="condition-4658"><a href="#condition-4658"><span class="linenos">4658</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-4659"><a href="#condition-4659"><span class="linenos">4659</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-4660"><a href="#condition-4660"><span class="linenos">4660</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-4661"><a href="#condition-4661"><span class="linenos">4661</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-4662"><a href="#condition-4662"><span class="linenos">4662</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="condition-4663"><a href="#condition-4663"><span class="linenos">4663</span></a>
-</span><span id="condition-4664"><a href="#condition-4664"><span class="linenos">4664</span></a><span class="sd"> Args:</span>
-</span><span id="condition-4665"><a href="#condition-4665"><span class="linenos">4665</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="condition-4666"><a href="#condition-4666"><span class="linenos">4666</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-4667"><a href="#condition-4667"><span class="linenos">4667</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-4668"><a href="#condition-4668"><span class="linenos">4668</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-4669"><a href="#condition-4669"><span class="linenos">4669</span></a><span class="sd"> copy (bool): Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="condition-4670"><a href="#condition-4670"><span class="linenos">4670</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-4671"><a href="#condition-4671"><span class="linenos">4671</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="condition-4672"><a href="#condition-4672"><span class="linenos">4672</span></a>
-</span><span id="condition-4673"><a href="#condition-4673"><span class="linenos">4673</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-4674"><a href="#condition-4674"><span class="linenos">4674</span></a><span class="sd"> Condition: the expression</span>
-</span><span id="condition-4675"><a href="#condition-4675"><span class="linenos">4675</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-4676"><a href="#condition-4676"><span class="linenos">4676</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
-</span><span id="condition-4677"><a href="#condition-4677"><span class="linenos">4677</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-4678"><a href="#condition-4678"><span class="linenos">4678</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-4679"><a href="#condition-4679"><span class="linenos">4679</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-4680"><a href="#condition-4680"><span class="linenos">4680</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="condition-4681"><a href="#condition-4681"><span class="linenos">4681</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-4682"><a href="#condition-4682"><span class="linenos">4682</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-5005"><a href="#condition-5005"><span class="linenos">5005</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="condition-5006"><a href="#condition-5006"><span class="linenos">5006</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-5007"><a href="#condition-5007"><span class="linenos">5007</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="condition-5008"><a href="#condition-5008"><span class="linenos">5008</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-5009"><a href="#condition-5009"><span class="linenos">5009</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="condition-5010"><a href="#condition-5010"><span class="linenos">5010</span></a>
+</span><span id="condition-5011"><a href="#condition-5011"><span class="linenos">5011</span></a><span class="sd"> Example:</span>
+</span><span id="condition-5012"><a href="#condition-5012"><span class="linenos">5012</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-5013"><a href="#condition-5013"><span class="linenos">5013</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="condition-5014"><a href="#condition-5014"><span class="linenos">5014</span></a>
+</span><span id="condition-5015"><a href="#condition-5015"><span class="linenos">5015</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-5016"><a href="#condition-5016"><span class="linenos">5016</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-5017"><a href="#condition-5017"><span class="linenos">5017</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-5018"><a href="#condition-5018"><span class="linenos">5018</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-5019"><a href="#condition-5019"><span class="linenos">5019</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-5020"><a href="#condition-5020"><span class="linenos">5020</span></a>
+</span><span id="condition-5021"><a href="#condition-5021"><span class="linenos">5021</span></a><span class="sd"> Args:</span>
+</span><span id="condition-5022"><a href="#condition-5022"><span class="linenos">5022</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="condition-5023"><a href="#condition-5023"><span class="linenos">5023</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-5024"><a href="#condition-5024"><span class="linenos">5024</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-5025"><a href="#condition-5025"><span class="linenos">5025</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-5026"><a href="#condition-5026"><span class="linenos">5026</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="condition-5027"><a href="#condition-5027"><span class="linenos">5027</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-5028"><a href="#condition-5028"><span class="linenos">5028</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-5029"><a href="#condition-5029"><span class="linenos">5029</span></a>
+</span><span id="condition-5030"><a href="#condition-5030"><span class="linenos">5030</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-5031"><a href="#condition-5031"><span class="linenos">5031</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="condition-5032"><a href="#condition-5032"><span class="linenos">5032</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-5033"><a href="#condition-5033"><span class="linenos">5033</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="condition-5034"><a href="#condition-5034"><span class="linenos">5034</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-5035"><a href="#condition-5035"><span class="linenos">5035</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-5036"><a href="#condition-5036"><span class="linenos">5036</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-5037"><a href="#condition-5037"><span class="linenos">5037</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="condition-5038"><a href="#condition-5038"><span class="linenos">5038</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-5039"><a href="#condition-5039"><span class="linenos">5039</span></a> <span class="p">)</span>
</span></pre></div>
@@ -47024,11 +49398,11 @@ auto converted to sql objects eg None -> NULL</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expression (str | Expression):</strong> the SQL code string to parse.
+<li><strong>*expression:</strong> the SQL code string to parse.
If an Expression instance is passed, this is used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression (in the case that the
+<li><strong>dialect:</strong> the dialect used to parse the input expression (in the case that the
input expression is a SQL string).</li>
-<li><strong>copy (bool):</strong> Whether or not to copy <code>expression</code> (only applies to expressions).</li>
+<li><strong>copy:</strong> Whether or not to copy <code>expression</code> (only applies to expressions).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case
that the input expression is a SQL string).</li>
</ul>
@@ -47036,7 +49410,7 @@ that the input expression is a SQL string).</li>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Condition: the expression</p>
+ <p>The new Condition instance</p>
</blockquote>
</div>
@@ -47047,31 +49421,33 @@ that the input expression is a SQL string).</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">and_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#And">sqlglot.expressions.And</a></span>:</span></span>
+ <span class="name">and_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
<label class="view-source-button" for="and_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="and_-4685"><a href="#and_-4685"><span class="linenos">4685</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="and_-4686"><a href="#and_-4686"><span class="linenos">4686</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-4687"><a href="#and_-4687"><span class="linenos">4687</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-4688"><a href="#and_-4688"><span class="linenos">4688</span></a>
-</span><span id="and_-4689"><a href="#and_-4689"><span class="linenos">4689</span></a><span class="sd"> Example:</span>
-</span><span id="and_-4690"><a href="#and_-4690"><span class="linenos">4690</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_-4691"><a href="#and_-4691"><span class="linenos">4691</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-4692"><a href="#and_-4692"><span class="linenos">4692</span></a>
-</span><span id="and_-4693"><a href="#and_-4693"><span class="linenos">4693</span></a><span class="sd"> Args:</span>
-</span><span id="and_-4694"><a href="#and_-4694"><span class="linenos">4694</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="and_-4695"><a href="#and_-4695"><span class="linenos">4695</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-4696"><a href="#and_-4696"><span class="linenos">4696</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="and_-4697"><a href="#and_-4697"><span class="linenos">4697</span></a><span class="sd"> copy (bool): whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="and_-4698"><a href="#and_-4698"><span class="linenos">4698</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-4699"><a href="#and_-4699"><span class="linenos">4699</span></a>
-</span><span id="and_-4700"><a href="#and_-4700"><span class="linenos">4700</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-4701"><a href="#and_-4701"><span class="linenos">4701</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-4702"><a href="#and_-4702"><span class="linenos">4702</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-4703"><a href="#and_-4703"><span class="linenos">4703</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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_-5042"><a href="#and_-5042"><span class="linenos">5042</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="and_-5043"><a href="#and_-5043"><span class="linenos">5043</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_-5044"><a href="#and_-5044"><span class="linenos">5044</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="and_-5045"><a href="#and_-5045"><span class="linenos">5045</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-5046"><a href="#and_-5046"><span class="linenos">5046</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-5047"><a href="#and_-5047"><span class="linenos">5047</span></a>
+</span><span id="and_-5048"><a href="#and_-5048"><span class="linenos">5048</span></a><span class="sd"> Example:</span>
+</span><span id="and_-5049"><a href="#and_-5049"><span class="linenos">5049</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_-5050"><a href="#and_-5050"><span class="linenos">5050</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-5051"><a href="#and_-5051"><span class="linenos">5051</span></a>
+</span><span id="and_-5052"><a href="#and_-5052"><span class="linenos">5052</span></a><span class="sd"> Args:</span>
+</span><span id="and_-5053"><a href="#and_-5053"><span class="linenos">5053</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="and_-5054"><a href="#and_-5054"><span class="linenos">5054</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-5055"><a href="#and_-5055"><span class="linenos">5055</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="and_-5056"><a href="#and_-5056"><span class="linenos">5056</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="and_-5057"><a href="#and_-5057"><span class="linenos">5057</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-5058"><a href="#and_-5058"><span class="linenos">5058</span></a>
+</span><span id="and_-5059"><a href="#and_-5059"><span class="linenos">5059</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-5060"><a href="#and_-5060"><span class="linenos">5060</span></a><span class="sd"> And: the new condition</span>
+</span><span id="and_-5061"><a href="#and_-5061"><span class="linenos">5061</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-5062"><a href="#and_-5062"><span class="linenos">5062</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>
@@ -47090,10 +49466,10 @@ that the input expression is a SQL string).</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> whether or not to copy <code>expressions</code> (only applies to Expressions).</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> whether or not to copy <code>expressions</code> (only applies to Expressions).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
@@ -47111,31 +49487,33 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">or_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">*</span><span class="n">expressions</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Or">sqlglot.expressions.Or</a></span>:</span></span>
+ <span class="name">or_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
<label class="view-source-button" for="or_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="or_-4706"><a href="#or_-4706"><span class="linenos">4706</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="or_-4707"><a href="#or_-4707"><span class="linenos">4707</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-4708"><a href="#or_-4708"><span class="linenos">4708</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-4709"><a href="#or_-4709"><span class="linenos">4709</span></a>
-</span><span id="or_-4710"><a href="#or_-4710"><span class="linenos">4710</span></a><span class="sd"> Example:</span>
-</span><span id="or_-4711"><a href="#or_-4711"><span class="linenos">4711</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_-4712"><a href="#or_-4712"><span class="linenos">4712</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-4713"><a href="#or_-4713"><span class="linenos">4713</span></a>
-</span><span id="or_-4714"><a href="#or_-4714"><span class="linenos">4714</span></a><span class="sd"> Args:</span>
-</span><span id="or_-4715"><a href="#or_-4715"><span class="linenos">4715</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="or_-4716"><a href="#or_-4716"><span class="linenos">4716</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-4717"><a href="#or_-4717"><span class="linenos">4717</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="or_-4718"><a href="#or_-4718"><span class="linenos">4718</span></a><span class="sd"> copy (bool): whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="or_-4719"><a href="#or_-4719"><span class="linenos">4719</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-4720"><a href="#or_-4720"><span class="linenos">4720</span></a>
-</span><span id="or_-4721"><a href="#or_-4721"><span class="linenos">4721</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-4722"><a href="#or_-4722"><span class="linenos">4722</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-4723"><a href="#or_-4723"><span class="linenos">4723</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-4724"><a href="#or_-4724"><span class="linenos">4724</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</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_-5065"><a href="#or_-5065"><span class="linenos">5065</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="or_-5066"><a href="#or_-5066"><span class="linenos">5066</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_-5067"><a href="#or_-5067"><span class="linenos">5067</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="or_-5068"><a href="#or_-5068"><span class="linenos">5068</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-5069"><a href="#or_-5069"><span class="linenos">5069</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-5070"><a href="#or_-5070"><span class="linenos">5070</span></a>
+</span><span id="or_-5071"><a href="#or_-5071"><span class="linenos">5071</span></a><span class="sd"> Example:</span>
+</span><span id="or_-5072"><a href="#or_-5072"><span class="linenos">5072</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_-5073"><a href="#or_-5073"><span class="linenos">5073</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-5074"><a href="#or_-5074"><span class="linenos">5074</span></a>
+</span><span id="or_-5075"><a href="#or_-5075"><span class="linenos">5075</span></a><span class="sd"> Args:</span>
+</span><span id="or_-5076"><a href="#or_-5076"><span class="linenos">5076</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="or_-5077"><a href="#or_-5077"><span class="linenos">5077</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-5078"><a href="#or_-5078"><span class="linenos">5078</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="or_-5079"><a href="#or_-5079"><span class="linenos">5079</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="or_-5080"><a href="#or_-5080"><span class="linenos">5080</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-5081"><a href="#or_-5081"><span class="linenos">5081</span></a>
+</span><span id="or_-5082"><a href="#or_-5082"><span class="linenos">5082</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-5083"><a href="#or_-5083"><span class="linenos">5083</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="or_-5084"><a href="#or_-5084"><span class="linenos">5084</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-5085"><a href="#or_-5085"><span class="linenos">5085</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>
@@ -47154,10 +49532,10 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>*expressions:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
-<li><strong>copy (bool):</strong> whether or not to copy <code>expressions</code> (only applies to Expressions).</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> whether or not to copy <code>expressions</code> (only applies to Expressions).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
@@ -47175,36 +49553,37 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">not_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">dialect</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="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Not">sqlglot.expressions.Not</a></span>:</span></span>
+ <span class="name">not_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Not">sqlglot.expressions.Not</a></span>:</span></span>
<label class="view-source-button" for="not_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="not_-4727"><a href="#not_-4727"><span class="linenos">4727</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="not_-4728"><a href="#not_-4728"><span class="linenos">4728</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-4729"><a href="#not_-4729"><span class="linenos">4729</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-4730"><a href="#not_-4730"><span class="linenos">4730</span></a>
-</span><span id="not_-4731"><a href="#not_-4731"><span class="linenos">4731</span></a><span class="sd"> Example:</span>
-</span><span id="not_-4732"><a href="#not_-4732"><span class="linenos">4732</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-4733"><a href="#not_-4733"><span class="linenos">4733</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-4734"><a href="#not_-4734"><span class="linenos">4734</span></a>
-</span><span id="not_-4735"><a href="#not_-4735"><span class="linenos">4735</span></a><span class="sd"> Args:</span>
-</span><span id="not_-4736"><a href="#not_-4736"><span class="linenos">4736</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="not_-4737"><a href="#not_-4737"><span class="linenos">4737</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-4738"><a href="#not_-4738"><span class="linenos">4738</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="not_-4739"><a href="#not_-4739"><span class="linenos">4739</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-4740"><a href="#not_-4740"><span class="linenos">4740</span></a>
-</span><span id="not_-4741"><a href="#not_-4741"><span class="linenos">4741</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-4742"><a href="#not_-4742"><span class="linenos">4742</span></a><span class="sd"> Not: the new condition</span>
-</span><span id="not_-4743"><a href="#not_-4743"><span class="linenos">4743</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-4744"><a href="#not_-4744"><span class="linenos">4744</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-4745"><a href="#not_-4745"><span class="linenos">4745</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-4746"><a href="#not_-4746"><span class="linenos">4746</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-4747"><a href="#not_-4747"><span class="linenos">4747</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="not_-4748"><a href="#not_-4748"><span class="linenos">4748</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-4749"><a href="#not_-4749"><span class="linenos">4749</span></a> <span class="p">)</span>
-</span><span id="not_-4750"><a href="#not_-4750"><span class="linenos">4750</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_-5088"><a href="#not_-5088"><span class="linenos">5088</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_-5089"><a href="#not_-5089"><span class="linenos">5089</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-5090"><a href="#not_-5090"><span class="linenos">5090</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-5091"><a href="#not_-5091"><span class="linenos">5091</span></a>
+</span><span id="not_-5092"><a href="#not_-5092"><span class="linenos">5092</span></a><span class="sd"> Example:</span>
+</span><span id="not_-5093"><a href="#not_-5093"><span class="linenos">5093</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-5094"><a href="#not_-5094"><span class="linenos">5094</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-5095"><a href="#not_-5095"><span class="linenos">5095</span></a>
+</span><span id="not_-5096"><a href="#not_-5096"><span class="linenos">5096</span></a><span class="sd"> Args:</span>
+</span><span id="not_-5097"><a href="#not_-5097"><span class="linenos">5097</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="not_-5098"><a href="#not_-5098"><span class="linenos">5098</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-5099"><a href="#not_-5099"><span class="linenos">5099</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="not_-5100"><a href="#not_-5100"><span class="linenos">5100</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="not_-5101"><a href="#not_-5101"><span class="linenos">5101</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-5102"><a href="#not_-5102"><span class="linenos">5102</span></a>
+</span><span id="not_-5103"><a href="#not_-5103"><span class="linenos">5103</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-5104"><a href="#not_-5104"><span class="linenos">5104</span></a><span class="sd"> The new condition.</span>
+</span><span id="not_-5105"><a href="#not_-5105"><span class="linenos">5105</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-5106"><a href="#not_-5106"><span class="linenos">5106</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-5107"><a href="#not_-5107"><span class="linenos">5107</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-5108"><a href="#not_-5108"><span class="linenos">5108</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-5109"><a href="#not_-5109"><span class="linenos">5109</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="not_-5110"><a href="#not_-5110"><span class="linenos">5110</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-5111"><a href="#not_-5111"><span class="linenos">5111</span></a> <span class="p">)</span>
+</span><span id="not_-5112"><a href="#not_-5112"><span class="linenos">5112</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>
@@ -47223,16 +49602,17 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>expression:</strong> the SQL code string to parse.
If an Expression instance is passed, this is used as-is.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> whether to copy the expression or not.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Not: the new condition</p>
+ <p>The new condition.</p>
</blockquote>
</div>
@@ -47243,18 +49623,59 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">paren</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">copy</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Paren">sqlglot.expressions.Paren</a></span>:</span></span>
+ <span class="name">paren</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Paren">sqlglot.expressions.Paren</a></span>:</span></span>
<label class="view-source-button" for="paren-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="paren-4753"><a href="#paren-4753"><span class="linenos">4753</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">copy</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-4754"><a href="#paren-4754"><span class="linenos">4754</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_copy</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="p">))</span>
-</span></pre></div>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="paren-5115"><a href="#paren-5115"><span class="linenos">5115</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-5116"><a href="#paren-5116"><span class="linenos">5116</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="paren-5117"><a href="#paren-5117"><span class="linenos">5117</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="paren-5118"><a href="#paren-5118"><span class="linenos">5118</span></a>
+</span><span id="paren-5119"><a href="#paren-5119"><span class="linenos">5119</span></a><span class="sd"> Example:</span>
+</span><span id="paren-5120"><a href="#paren-5120"><span class="linenos">5120</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="paren-5121"><a href="#paren-5121"><span class="linenos">5121</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="paren-5122"><a href="#paren-5122"><span class="linenos">5122</span></a>
+</span><span id="paren-5123"><a href="#paren-5123"><span class="linenos">5123</span></a><span class="sd"> Args:</span>
+</span><span id="paren-5124"><a href="#paren-5124"><span class="linenos">5124</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="paren-5125"><a href="#paren-5125"><span class="linenos">5125</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="paren-5126"><a href="#paren-5126"><span class="linenos">5126</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="paren-5127"><a href="#paren-5127"><span class="linenos">5127</span></a>
+</span><span id="paren-5128"><a href="#paren-5128"><span class="linenos">5128</span></a><span class="sd"> Returns:</span>
+</span><span id="paren-5129"><a href="#paren-5129"><span class="linenos">5129</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="paren-5130"><a href="#paren-5130"><span class="linenos">5130</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="paren-5131"><a href="#paren-5131"><span class="linenos">5131</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>
+
+
+ <div class="docstring"><p>Wrap an expression in parentheses.</p>
+<h6 id="example">Example:</h6>
+
+<blockquote>
+ <div class="pdoc-code codehilite">
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">paren</span><span class="p">(</span><span class="s2">&quot;5 + 3&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<span class="go">&#39;(5 + 3)&#39;</span>
+</code></pre>
+ </div>
+</blockquote>
+
+<h6 id="arguments">Arguments:</h6>
+
+<ul>
+<li><strong>expression:</strong> the SQL code string to parse.
+If an Expression instance is passed, this is used as-is.</li>
+<li><strong>copy:</strong> whether to copy the expression or not.</li>
+</ul>
+
+<h6 id="returns">Returns:</h6>
+
+<blockquote>
+ <p>The wrapped expression.</p>
+</blockquote>
+</div>
-
</section>
<section id="to_identifier">
@@ -47262,36 +49683,37 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">to_identifier</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">name</span>, </span><span class="param"><span class="n">quoted</span><span class="o">=</span><span class="kc">None</span></span><span class="return-annotation">):</span></span>
+ <span class="name">to_identifier</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">name</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="to_identifier-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#to_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-4770"><a href="#to_identifier-4770"><span class="linenos">4770</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="to_identifier-4771"><a href="#to_identifier-4771"><span class="linenos">4771</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-4772"><a href="#to_identifier-4772"><span class="linenos">4772</span></a>
-</span><span id="to_identifier-4773"><a href="#to_identifier-4773"><span class="linenos">4773</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-4774"><a href="#to_identifier-4774"><span class="linenos">4774</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-4775"><a href="#to_identifier-4775"><span class="linenos">4775</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="to_identifier-4776"><a href="#to_identifier-4776"><span class="linenos">4776</span></a>
-</span><span id="to_identifier-4777"><a href="#to_identifier-4777"><span class="linenos">4777</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-4778"><a href="#to_identifier-4778"><span class="linenos">4778</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-4779"><a href="#to_identifier-4779"><span class="linenos">4779</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-4780"><a href="#to_identifier-4780"><span class="linenos">4780</span></a>
-</span><span id="to_identifier-4781"><a href="#to_identifier-4781"><span class="linenos">4781</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-4782"><a href="#to_identifier-4782"><span class="linenos">4782</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="to_identifier-4783"><a href="#to_identifier-4783"><span class="linenos">4783</span></a>
-</span><span id="to_identifier-4784"><a href="#to_identifier-4784"><span class="linenos">4784</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-4785"><a href="#to_identifier-4785"><span class="linenos">4785</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
-</span><span id="to_identifier-4786"><a href="#to_identifier-4786"><span class="linenos">4786</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-4787"><a href="#to_identifier-4787"><span class="linenos">4787</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-4788"><a href="#to_identifier-4788"><span class="linenos">4788</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-4789"><a href="#to_identifier-4789"><span class="linenos">4789</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-4790"><a href="#to_identifier-4790"><span class="linenos">4790</span></a> <span class="p">)</span>
-</span><span id="to_identifier-4791"><a href="#to_identifier-4791"><span class="linenos">4791</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-4792"><a href="#to_identifier-4792"><span class="linenos">4792</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-4793"><a href="#to_identifier-4793"><span class="linenos">4793</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-5149"><a href="#to_identifier-5149"><span class="linenos">5149</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-5150"><a href="#to_identifier-5150"><span class="linenos">5150</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="to_identifier-5151"><a href="#to_identifier-5151"><span class="linenos">5151</span></a>
+</span><span id="to_identifier-5152"><a href="#to_identifier-5152"><span class="linenos">5152</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-5153"><a href="#to_identifier-5153"><span class="linenos">5153</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-5154"><a href="#to_identifier-5154"><span class="linenos">5154</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="to_identifier-5155"><a href="#to_identifier-5155"><span class="linenos">5155</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
+</span><span id="to_identifier-5156"><a href="#to_identifier-5156"><span class="linenos">5156</span></a>
+</span><span id="to_identifier-5157"><a href="#to_identifier-5157"><span class="linenos">5157</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-5158"><a href="#to_identifier-5158"><span class="linenos">5158</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-5159"><a href="#to_identifier-5159"><span class="linenos">5159</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-5160"><a href="#to_identifier-5160"><span class="linenos">5160</span></a>
+</span><span id="to_identifier-5161"><a href="#to_identifier-5161"><span class="linenos">5161</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-5162"><a href="#to_identifier-5162"><span class="linenos">5162</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-5163"><a href="#to_identifier-5163"><span class="linenos">5163</span></a>
+</span><span id="to_identifier-5164"><a href="#to_identifier-5164"><span class="linenos">5164</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-5165"><a href="#to_identifier-5165"><span class="linenos">5165</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-5166"><a href="#to_identifier-5166"><span class="linenos">5166</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-5167"><a href="#to_identifier-5167"><span class="linenos">5167</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-5168"><a href="#to_identifier-5168"><span class="linenos">5168</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-5169"><a href="#to_identifier-5169"><span class="linenos">5169</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-5170"><a href="#to_identifier-5170"><span class="linenos">5170</span></a> <span class="p">)</span>
+</span><span id="to_identifier-5171"><a href="#to_identifier-5171"><span class="linenos">5171</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-5172"><a href="#to_identifier-5172"><span class="linenos">5172</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-5173"><a href="#to_identifier-5173"><span class="linenos">5173</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -47302,6 +49724,7 @@ If an Expression instance is passed, this is used as-is.</li>
<ul>
<li><strong>name:</strong> The name to turn into an identifier.</li>
<li><strong>quoted:</strong> Whether or not force quote the identifier.</li>
+<li><strong>copy:</strong> Whether or not to copy a passed in Identefier node.</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -47324,23 +49747,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-4799"><a href="#to_interval-4799"><span class="linenos">4799</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-4800"><a href="#to_interval-4800"><span class="linenos">4800</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-4801"><a href="#to_interval-4801"><span class="linenos">4801</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-4802"><a href="#to_interval-4802"><span class="linenos">4802</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-4803"><a href="#to_interval-4803"><span class="linenos">4803</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-4804"><a href="#to_interval-4804"><span class="linenos">4804</span></a>
-</span><span id="to_interval-4805"><a href="#to_interval-4805"><span class="linenos">4805</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-4806"><a href="#to_interval-4806"><span class="linenos">4806</span></a>
-</span><span id="to_interval-4807"><a href="#to_interval-4807"><span class="linenos">4807</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-4808"><a href="#to_interval-4808"><span class="linenos">4808</span></a>
-</span><span id="to_interval-4809"><a href="#to_interval-4809"><span class="linenos">4809</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-4810"><a href="#to_interval-4810"><span class="linenos">4810</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-4811"><a href="#to_interval-4811"><span class="linenos">4811</span></a>
-</span><span id="to_interval-4812"><a href="#to_interval-4812"><span class="linenos">4812</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-4813"><a href="#to_interval-4813"><span class="linenos">4813</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-4814"><a href="#to_interval-4814"><span class="linenos">4814</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-4815"><a href="#to_interval-4815"><span class="linenos">4815</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-5179"><a href="#to_interval-5179"><span class="linenos">5179</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-5180"><a href="#to_interval-5180"><span class="linenos">5180</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-5181"><a href="#to_interval-5181"><span class="linenos">5181</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-5182"><a href="#to_interval-5182"><span class="linenos">5182</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-5183"><a href="#to_interval-5183"><span class="linenos">5183</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-5184"><a href="#to_interval-5184"><span class="linenos">5184</span></a>
+</span><span id="to_interval-5185"><a href="#to_interval-5185"><span class="linenos">5185</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-5186"><a href="#to_interval-5186"><span class="linenos">5186</span></a>
+</span><span id="to_interval-5187"><a href="#to_interval-5187"><span class="linenos">5187</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-5188"><a href="#to_interval-5188"><span class="linenos">5188</span></a>
+</span><span id="to_interval-5189"><a href="#to_interval-5189"><span class="linenos">5189</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-5190"><a href="#to_interval-5190"><span class="linenos">5190</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-5191"><a href="#to_interval-5191"><span class="linenos">5191</span></a>
+</span><span id="to_interval-5192"><a href="#to_interval-5192"><span class="linenos">5192</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-5193"><a href="#to_interval-5193"><span class="linenos">5193</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-5194"><a href="#to_interval-5194"><span class="linenos">5194</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-5195"><a href="#to_interval-5195"><span class="linenos">5195</span></a> <span class="p">)</span>
</span></pre></div>
@@ -47354,30 +49777,38 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">to_table</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_path</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n">Optional</span><span class="p">[</span><span class="n"><a href="#Table">sqlglot.expressions.Table</a></span><span class="p">]</span>:</span></span>
+ <span class="name">to_table</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_path</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n">Optional</span><span class="p">[</span><span class="n"><a href="#Table">sqlglot.expressions.Table</a></span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="to_table-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#to_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-4828"><a href="#to_table-4828"><span class="linenos">4828</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="to_table-4829"><a href="#to_table-4829"><span class="linenos">4829</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-4830"><a href="#to_table-4830"><span class="linenos">4830</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-4831"><a href="#to_table-4831"><span class="linenos">4831</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-4832"><a href="#to_table-4832"><span class="linenos">4832</span></a>
-</span><span id="to_table-4833"><a href="#to_table-4833"><span class="linenos">4833</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-4834"><a href="#to_table-4834"><span class="linenos">4834</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-4835"><a href="#to_table-4835"><span class="linenos">4835</span></a>
-</span><span id="to_table-4836"><a href="#to_table-4836"><span class="linenos">4836</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-4837"><a href="#to_table-4837"><span class="linenos">4837</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-4838"><a href="#to_table-4838"><span class="linenos">4838</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-4839"><a href="#to_table-4839"><span class="linenos">4839</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-4840"><a href="#to_table-4840"><span class="linenos">4840</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_table-4841"><a href="#to_table-4841"><span class="linenos">4841</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-4842"><a href="#to_table-4842"><span class="linenos">4842</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-4843"><a href="#to_table-4843"><span class="linenos">4843</span></a>
-</span><span id="to_table-4844"><a href="#to_table-4844"><span class="linenos">4844</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
-</span><span id="to_table-4845"><a href="#to_table-4845"><span class="linenos">4845</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-5208"><a href="#to_table-5208"><span class="linenos">5208</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="to_table-5209"><a href="#to_table-5209"><span class="linenos">5209</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="to_table-5210"><a href="#to_table-5210"><span class="linenos">5210</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-5211"><a href="#to_table-5211"><span class="linenos">5211</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-5212"><a href="#to_table-5212"><span class="linenos">5212</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-5213"><a href="#to_table-5213"><span class="linenos">5213</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-5214"><a href="#to_table-5214"><span class="linenos">5214</span></a>
+</span><span id="to_table-5215"><a href="#to_table-5215"><span class="linenos">5215</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-5216"><a href="#to_table-5216"><span class="linenos">5216</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-5217"><a href="#to_table-5217"><span class="linenos">5217</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="to_table-5218"><a href="#to_table-5218"><span class="linenos">5218</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="to_table-5219"><a href="#to_table-5219"><span class="linenos">5219</span></a>
+</span><span id="to_table-5220"><a href="#to_table-5220"><span class="linenos">5220</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-5221"><a href="#to_table-5221"><span class="linenos">5221</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-5222"><a href="#to_table-5222"><span class="linenos">5222</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-5223"><a href="#to_table-5223"><span class="linenos">5223</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-5224"><a href="#to_table-5224"><span class="linenos">5224</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_table-5225"><a href="#to_table-5225"><span class="linenos">5225</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-5226"><a href="#to_table-5226"><span class="linenos">5226</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-5227"><a href="#to_table-5227"><span class="linenos">5227</span></a>
+</span><span id="to_table-5228"><a href="#to_table-5228"><span class="linenos">5228</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-5229"><a href="#to_table-5229"><span class="linenos">5229</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="to_table-5230"><a href="#to_table-5230"><span class="linenos">5230</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-5231"><a href="#to_table-5231"><span class="linenos">5231</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-5232"><a href="#to_table-5232"><span class="linenos">5232</span></a>
+</span><span id="to_table-5233"><a href="#to_table-5233"><span class="linenos">5233</span></a> <span class="k">return</span> <span class="n">table</span>
</span></pre></div>
@@ -47388,6 +49819,8 @@ If a table is passed in then that table is returned.</p>
<ul>
<li><strong>sql_path:</strong> a <code>[catalog].[schema].[table]</code> string.</li>
+<li><strong>dialect:</strong> the source dialect according to which the table name will be parsed.</li>
+<li><strong>kwargs:</strong> the kwargs to instantiate the resulting <code><a href="#Table">Table</a></code> expression with.</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -47410,22 +49843,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-4848"><a href="#to_column-4848"><span class="linenos">4848</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-4849"><a href="#to_column-4849"><span class="linenos">4849</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-4850"><a href="#to_column-4850"><span class="linenos">4850</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="to_column-4851"><a href="#to_column-4851"><span class="linenos">4851</span></a>
-</span><span id="to_column-4852"><a href="#to_column-4852"><span class="linenos">4852</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-4853"><a href="#to_column-4853"><span class="linenos">4853</span></a>
-</span><span id="to_column-4854"><a href="#to_column-4854"><span class="linenos">4854</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-4855"><a href="#to_column-4855"><span class="linenos">4855</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="to_column-4856"><a href="#to_column-4856"><span class="linenos">4856</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-4857"><a href="#to_column-4857"><span class="linenos">4857</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="to_column-4858"><a href="#to_column-4858"><span class="linenos">4858</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-4859"><a href="#to_column-4859"><span class="linenos">4859</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-4860"><a href="#to_column-4860"><span class="linenos">4860</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_column-4861"><a href="#to_column-4861"><span class="linenos">4861</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-4862"><a href="#to_column-4862"><span class="linenos">4862</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-4863"><a href="#to_column-4863"><span class="linenos">4863</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-5236"><a href="#to_column-5236"><span class="linenos">5236</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-5237"><a href="#to_column-5237"><span class="linenos">5237</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-5238"><a href="#to_column-5238"><span class="linenos">5238</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="to_column-5239"><a href="#to_column-5239"><span class="linenos">5239</span></a>
+</span><span id="to_column-5240"><a href="#to_column-5240"><span class="linenos">5240</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-5241"><a href="#to_column-5241"><span class="linenos">5241</span></a>
+</span><span id="to_column-5242"><a href="#to_column-5242"><span class="linenos">5242</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-5243"><a href="#to_column-5243"><span class="linenos">5243</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="to_column-5244"><a href="#to_column-5244"><span class="linenos">5244</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-5245"><a href="#to_column-5245"><span class="linenos">5245</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="to_column-5246"><a href="#to_column-5246"><span class="linenos">5246</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-5247"><a href="#to_column-5247"><span class="linenos">5247</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-5248"><a href="#to_column-5248"><span class="linenos">5248</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_column-5249"><a href="#to_column-5249"><span class="linenos">5249</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-5250"><a href="#to_column-5250"><span class="linenos">5250</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-5251"><a href="#to_column-5251"><span class="linenos">5251</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>
@@ -47453,68 +49886,67 @@ If a table is passed in then that table is returned.</p>
<div class="attr function">
<span class="def">def</span>
- <span class="name">alias_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.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="nb">bool</span><span class="p">,</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">False</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="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">alias_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.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="nb">bool</span><span class="p">,</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">False</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="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="alias_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#alias_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-4866"><a href="#alias_-4866"><span class="linenos">4866</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-4867"><a href="#alias_-4867"><span class="linenos">4867</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="alias_-4868"><a href="#alias_-4868"><span class="linenos">4868</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_-4869"><a href="#alias_-4869"><span class="linenos">4869</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_-4870"><a href="#alias_-4870"><span class="linenos">4870</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_-4871"><a href="#alias_-4871"><span class="linenos">4871</span></a> <span class="n">dialect</span><span 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_-4872"><a href="#alias_-4872"><span class="linenos">4872</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-4873"><a href="#alias_-4873"><span class="linenos">4873</span></a><span class="p">):</span>
-</span><span id="alias_-4874"><a href="#alias_-4874"><span class="linenos">4874</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-4875"><a href="#alias_-4875"><span class="linenos">4875</span></a>
-</span><span id="alias_-4876"><a href="#alias_-4876"><span class="linenos">4876</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-4877"><a href="#alias_-4877"><span class="linenos">4877</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-4878"><a href="#alias_-4878"><span class="linenos">4878</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-4879"><a href="#alias_-4879"><span class="linenos">4879</span></a>
-</span><span id="alias_-4880"><a href="#alias_-4880"><span class="linenos">4880</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_-4881"><a href="#alias_-4881"><span class="linenos">4881</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-4882"><a href="#alias_-4882"><span class="linenos">4882</span></a>
-</span><span id="alias_-4883"><a href="#alias_-4883"><span class="linenos">4883</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-4884"><a href="#alias_-4884"><span class="linenos">4884</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-4885"><a href="#alias_-4885"><span class="linenos">4885</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-4886"><a href="#alias_-4886"><span class="linenos">4886</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-4887"><a href="#alias_-4887"><span class="linenos">4887</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-4888"><a href="#alias_-4888"><span class="linenos">4888</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_-4889"><a href="#alias_-4889"><span class="linenos">4889</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="alias_-4890"><a href="#alias_-4890"><span class="linenos">4890</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-4891"><a href="#alias_-4891"><span class="linenos">4891</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-4892"><a href="#alias_-4892"><span class="linenos">4892</span></a>
-</span><span id="alias_-4893"><a href="#alias_-4893"><span class="linenos">4893</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-4894"><a href="#alias_-4894"><span class="linenos">4894</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-4895"><a href="#alias_-4895"><span class="linenos">4895</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-4896"><a href="#alias_-4896"><span class="linenos">4896</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="alias_-4897"><a href="#alias_-4897"><span class="linenos">4897</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_-4898"><a href="#alias_-4898"><span class="linenos">4898</span></a>
-</span><span id="alias_-4899"><a href="#alias_-4899"><span class="linenos">4899</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-4900"><a href="#alias_-4900"><span class="linenos">4900</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_-4901"><a href="#alias_-4901"><span class="linenos">4901</span></a>
-</span><span id="alias_-4902"><a href="#alias_-4902"><span class="linenos">4902</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="n">exp</span>
-</span><span id="alias_-4903"><a href="#alias_-4903"><span class="linenos">4903</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_-4904"><a href="#alias_-4904"><span class="linenos">4904</span></a>
-</span><span id="alias_-4905"><a href="#alias_-4905"><span class="linenos">4905</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_-4906"><a href="#alias_-4906"><span class="linenos">4906</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_-4907"><a href="#alias_-4907"><span class="linenos">4907</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_-4908"><a href="#alias_-4908"><span class="linenos">4908</span></a>
-</span><span id="alias_-4909"><a href="#alias_-4909"><span class="linenos">4909</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-4910"><a href="#alias_-4910"><span class="linenos">4910</span></a>
-</span><span id="alias_-4911"><a href="#alias_-4911"><span class="linenos">4911</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_-4912"><a href="#alias_-4912"><span class="linenos">4912</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_-4913"><a href="#alias_-4913"><span class="linenos">4913</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-4914"><a href="#alias_-4914"><span class="linenos">4914</span></a> <span class="c1">#</span>
-</span><span id="alias_-4915"><a href="#alias_-4915"><span class="linenos">4915</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="alias_-4916"><a href="#alias_-4916"><span class="linenos">4916</span></a>
-</span><span id="alias_-4917"><a href="#alias_-4917"><span class="linenos">4917</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_-4918"><a href="#alias_-4918"><span class="linenos">4918</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="alias_-4919"><a href="#alias_-4919"><span class="linenos">4919</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_-4920"><a href="#alias_-4920"><span class="linenos">4920</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-4921"><a href="#alias_-4921"><span class="linenos">4921</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_-5254"><a href="#alias_-5254"><span class="linenos">5254</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-5255"><a href="#alias_-5255"><span class="linenos">5255</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="alias_-5256"><a href="#alias_-5256"><span class="linenos">5256</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_-5257"><a href="#alias_-5257"><span class="linenos">5257</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_-5258"><a href="#alias_-5258"><span class="linenos">5258</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_-5259"><a href="#alias_-5259"><span class="linenos">5259</span></a> <span class="n">dialect</span><span 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_-5260"><a href="#alias_-5260"><span class="linenos">5260</span></a> <span class="n">copy</span><span 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_-5261"><a href="#alias_-5261"><span class="linenos">5261</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-5262"><a href="#alias_-5262"><span class="linenos">5262</span></a><span class="p">):</span>
+</span><span id="alias_-5263"><a href="#alias_-5263"><span class="linenos">5263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-5264"><a href="#alias_-5264"><span class="linenos">5264</span></a>
+</span><span id="alias_-5265"><a href="#alias_-5265"><span class="linenos">5265</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-5266"><a href="#alias_-5266"><span class="linenos">5266</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-5267"><a href="#alias_-5267"><span class="linenos">5267</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-5268"><a href="#alias_-5268"><span class="linenos">5268</span></a>
+</span><span id="alias_-5269"><a href="#alias_-5269"><span class="linenos">5269</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_-5270"><a href="#alias_-5270"><span class="linenos">5270</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-5271"><a href="#alias_-5271"><span class="linenos">5271</span></a>
+</span><span id="alias_-5272"><a href="#alias_-5272"><span class="linenos">5272</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-5273"><a href="#alias_-5273"><span class="linenos">5273</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-5274"><a href="#alias_-5274"><span class="linenos">5274</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-5275"><a href="#alias_-5275"><span class="linenos">5275</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-5276"><a href="#alias_-5276"><span class="linenos">5276</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-5277"><a href="#alias_-5277"><span class="linenos">5277</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_-5278"><a href="#alias_-5278"><span class="linenos">5278</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="alias_-5279"><a href="#alias_-5279"><span class="linenos">5279</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-5280"><a href="#alias_-5280"><span class="linenos">5280</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="alias_-5281"><a href="#alias_-5281"><span class="linenos">5281</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="alias_-5282"><a href="#alias_-5282"><span class="linenos">5282</span></a>
+</span><span id="alias_-5283"><a href="#alias_-5283"><span class="linenos">5283</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-5284"><a href="#alias_-5284"><span class="linenos">5284</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-5285"><a href="#alias_-5285"><span class="linenos">5285</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-5286"><a href="#alias_-5286"><span class="linenos">5286</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_-5287"><a href="#alias_-5287"><span class="linenos">5287</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_-5288"><a href="#alias_-5288"><span class="linenos">5288</span></a>
+</span><span id="alias_-5289"><a href="#alias_-5289"><span class="linenos">5289</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-5290"><a href="#alias_-5290"><span class="linenos">5290</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_-5291"><a href="#alias_-5291"><span class="linenos">5291</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_-5292"><a href="#alias_-5292"><span class="linenos">5292</span></a>
+</span><span id="alias_-5293"><a href="#alias_-5293"><span class="linenos">5293</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_-5294"><a href="#alias_-5294"><span class="linenos">5294</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_-5295"><a href="#alias_-5295"><span class="linenos">5295</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_-5296"><a href="#alias_-5296"><span class="linenos">5296</span></a>
+</span><span id="alias_-5297"><a href="#alias_-5297"><span class="linenos">5297</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-5298"><a href="#alias_-5298"><span class="linenos">5298</span></a>
+</span><span id="alias_-5299"><a href="#alias_-5299"><span class="linenos">5299</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_-5300"><a href="#alias_-5300"><span class="linenos">5300</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_-5301"><a href="#alias_-5301"><span class="linenos">5301</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-5302"><a href="#alias_-5302"><span class="linenos">5302</span></a> <span class="c1">#</span>
+</span><span id="alias_-5303"><a href="#alias_-5303"><span class="linenos">5303</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-5304"><a href="#alias_-5304"><span class="linenos">5304</span></a>
+</span><span id="alias_-5305"><a href="#alias_-5305"><span class="linenos">5305</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_-5306"><a href="#alias_-5306"><span class="linenos">5306</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_-5307"><a href="#alias_-5307"><span class="linenos">5307</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-5308"><a href="#alias_-5308"><span class="linenos">5308</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>
@@ -47546,6 +49978,7 @@ special characters it is quoted.</li>
<li><strong>table:</strong> Whether or not to create a table alias, can also be a list of columns.</li>
<li><strong>quoted:</strong> whether or not to quote the alias</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> Whether or not to copy the expression.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
@@ -47563,33 +49996,38 @@ special characters it is quoted.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">subquery</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">alias</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
+ <span class="name">subquery</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.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">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="subquery-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-4924"><a href="#subquery-4924"><span class="linenos">4924</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="subquery-4925"><a href="#subquery-4925"><span class="linenos">4925</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-4926"><a href="#subquery-4926"><span class="linenos">4926</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="subquery-4927"><a href="#subquery-4927"><span class="linenos">4927</span></a>
-</span><span id="subquery-4928"><a href="#subquery-4928"><span class="linenos">4928</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-4929"><a href="#subquery-4929"><span class="linenos">4929</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-4930"><a href="#subquery-4930"><span class="linenos">4930</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-4931"><a href="#subquery-4931"><span class="linenos">4931</span></a>
-</span><span id="subquery-4932"><a href="#subquery-4932"><span class="linenos">4932</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-4933"><a href="#subquery-4933"><span class="linenos">4933</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="subquery-4934"><a href="#subquery-4934"><span class="linenos">4934</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-4935"><a href="#subquery-4935"><span class="linenos">4935</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
-</span><span id="subquery-4936"><a href="#subquery-4936"><span class="linenos">4936</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="subquery-4937"><a href="#subquery-4937"><span class="linenos">4937</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-4938"><a href="#subquery-4938"><span class="linenos">4938</span></a>
-</span><span id="subquery-4939"><a href="#subquery-4939"><span class="linenos">4939</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-4940"><a href="#subquery-4940"><span class="linenos">4940</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
-</span><span id="subquery-4941"><a href="#subquery-4941"><span class="linenos">4941</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-4942"><a href="#subquery-4942"><span class="linenos">4942</span></a>
-</span><span id="subquery-4943"><a href="#subquery-4943"><span class="linenos">4943</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-4944"><a href="#subquery-4944"><span class="linenos">4944</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-5311"><a href="#subquery-5311"><span class="linenos">5311</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="subquery-5312"><a href="#subquery-5312"><span class="linenos">5312</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="subquery-5313"><a href="#subquery-5313"><span class="linenos">5313</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-5314"><a href="#subquery-5314"><span class="linenos">5314</span></a> <span class="n">dialect</span><span 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-5315"><a href="#subquery-5315"><span class="linenos">5315</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="subquery-5316"><a href="#subquery-5316"><span class="linenos">5316</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="subquery-5317"><a href="#subquery-5317"><span class="linenos">5317</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-5318"><a href="#subquery-5318"><span class="linenos">5318</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="subquery-5319"><a href="#subquery-5319"><span class="linenos">5319</span></a>
+</span><span id="subquery-5320"><a href="#subquery-5320"><span class="linenos">5320</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-5321"><a href="#subquery-5321"><span class="linenos">5321</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-5322"><a href="#subquery-5322"><span class="linenos">5322</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-5323"><a href="#subquery-5323"><span class="linenos">5323</span></a>
+</span><span id="subquery-5324"><a href="#subquery-5324"><span class="linenos">5324</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-5325"><a href="#subquery-5325"><span class="linenos">5325</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="subquery-5326"><a href="#subquery-5326"><span class="linenos">5326</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-5327"><a href="#subquery-5327"><span class="linenos">5327</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="subquery-5328"><a href="#subquery-5328"><span class="linenos">5328</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="subquery-5329"><a href="#subquery-5329"><span class="linenos">5329</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-5330"><a href="#subquery-5330"><span class="linenos">5330</span></a>
+</span><span id="subquery-5331"><a href="#subquery-5331"><span class="linenos">5331</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-5332"><a href="#subquery-5332"><span class="linenos">5332</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="subquery-5333"><a href="#subquery-5333"><span class="linenos">5333</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-5334"><a href="#subquery-5334"><span class="linenos">5334</span></a>
+</span><span id="subquery-5335"><a href="#subquery-5335"><span class="linenos">5335</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-5336"><a href="#subquery-5336"><span class="linenos">5336</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>
@@ -47608,17 +50046,17 @@ special characters it is quoted.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (str | Expression):</strong> the SQL code strings to parse.
+<li><strong>expression:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
-<li><strong>alias (str | Expression):</strong> the alias name to use.</li>
-<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>
+<li><strong>alias:</strong> the alias name to use.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Select: a new select with the subquery expression included</p>
+ <p>A new Select instance with the subquery expression included.</p>
</blockquote>
</div>
@@ -47629,37 +50067,38 @@ 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">sqlglot.expressions.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="nb">str</span><span class="p">,</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">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">sqlglot.expressions.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 class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.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">sqlglot.expressions.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">sqlglot.expressions.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">sqlglot.expressions.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">sqlglot.expressions.Column</a></span>:</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-4947"><a href="#column-4947"><span class="linenos">4947</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-4948"><a href="#column-4948"><span class="linenos">4948</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-4949"><a href="#column-4949"><span class="linenos">4949</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-4950"><a href="#column-4950"><span class="linenos">4950</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-4951"><a href="#column-4951"><span class="linenos">4951</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-4952"><a href="#column-4952"><span class="linenos">4952</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-4953"><a href="#column-4953"><span class="linenos">4953</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="column-4954"><a href="#column-4954"><span class="linenos">4954</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-4955"><a href="#column-4955"><span class="linenos">4955</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-4956"><a href="#column-4956"><span class="linenos">4956</span></a>
-</span><span id="column-4957"><a href="#column-4957"><span class="linenos">4957</span></a><span class="sd"> Args:</span>
-</span><span id="column-4958"><a href="#column-4958"><span class="linenos">4958</span></a><span class="sd"> col: column name</span>
-</span><span id="column-4959"><a href="#column-4959"><span class="linenos">4959</span></a><span class="sd"> table: table name</span>
-</span><span id="column-4960"><a href="#column-4960"><span class="linenos">4960</span></a><span class="sd"> db: db name</span>
-</span><span id="column-4961"><a href="#column-4961"><span class="linenos">4961</span></a><span class="sd"> catalog: catalog name</span>
-</span><span id="column-4962"><a href="#column-4962"><span class="linenos">4962</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
-</span><span id="column-4963"><a href="#column-4963"><span class="linenos">4963</span></a><span class="sd"> Returns:</span>
-</span><span id="column-4964"><a href="#column-4964"><span class="linenos">4964</span></a><span class="sd"> Column: column instance</span>
-</span><span id="column-4965"><a href="#column-4965"><span class="linenos">4965</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-4966"><a href="#column-4966"><span class="linenos">4966</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-4967"><a href="#column-4967"><span class="linenos">4967</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-4968"><a href="#column-4968"><span class="linenos">4968</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-4969"><a href="#column-4969"><span class="linenos">4969</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-4970"><a href="#column-4970"><span class="linenos">4970</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-4971"><a href="#column-4971"><span class="linenos">4971</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-5339"><a href="#column-5339"><span class="linenos">5339</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-5340"><a href="#column-5340"><span class="linenos">5340</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-5341"><a href="#column-5341"><span class="linenos">5341</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-5342"><a href="#column-5342"><span class="linenos">5342</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-5343"><a href="#column-5343"><span class="linenos">5343</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-5344"><a href="#column-5344"><span class="linenos">5344</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-5345"><a href="#column-5345"><span class="linenos">5345</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="column-5346"><a href="#column-5346"><span class="linenos">5346</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-5347"><a href="#column-5347"><span class="linenos">5347</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-5348"><a href="#column-5348"><span class="linenos">5348</span></a>
+</span><span id="column-5349"><a href="#column-5349"><span class="linenos">5349</span></a><span class="sd"> Args:</span>
+</span><span id="column-5350"><a href="#column-5350"><span class="linenos">5350</span></a><span class="sd"> col: Column name.</span>
+</span><span id="column-5351"><a href="#column-5351"><span class="linenos">5351</span></a><span class="sd"> table: Table name.</span>
+</span><span id="column-5352"><a href="#column-5352"><span class="linenos">5352</span></a><span class="sd"> db: Database name.</span>
+</span><span id="column-5353"><a href="#column-5353"><span class="linenos">5353</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="column-5354"><a href="#column-5354"><span class="linenos">5354</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="column-5355"><a href="#column-5355"><span class="linenos">5355</span></a>
+</span><span id="column-5356"><a href="#column-5356"><span class="linenos">5356</span></a><span class="sd"> Returns:</span>
+</span><span id="column-5357"><a href="#column-5357"><span class="linenos">5357</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="column-5358"><a href="#column-5358"><span class="linenos">5358</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-5359"><a href="#column-5359"><span class="linenos">5359</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-5360"><a href="#column-5360"><span class="linenos">5360</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-5361"><a href="#column-5361"><span class="linenos">5361</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-5362"><a href="#column-5362"><span class="linenos">5362</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-5363"><a href="#column-5363"><span class="linenos">5363</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-5364"><a href="#column-5364"><span class="linenos">5364</span></a> <span class="p">)</span>
</span></pre></div>
@@ -47668,17 +50107,17 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>col:</strong> column name</li>
-<li><strong>table:</strong> table name</li>
-<li><strong>db:</strong> db name</li>
-<li><strong>catalog:</strong> catalog name</li>
-<li><strong>quoted:</strong> whether or not to force quote each part</li>
+<li><strong>col:</strong> Column name.</li>
+<li><strong>table:</strong> Table name.</li>
+<li><strong>db:</strong> Database name.</li>
+<li><strong>catalog:</strong> Catalog name.</li>
+<li><strong>quoted:</strong> Whether to force quotes on the column's identifiers.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Column: column instance</p>
+ <p>The new Column instance.</p>
</blockquote>
</div>
@@ -47695,22 +50134,22 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4974"><a href="#cast-4974"><span class="linenos">4974</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="cast-4975"><a href="#cast-4975"><span class="linenos">4975</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-4976"><a href="#cast-4976"><span class="linenos">4976</span></a>
-</span><span id="cast-4977"><a href="#cast-4977"><span class="linenos">4977</span></a><span class="sd"> Example:</span>
-</span><span id="cast-4978"><a href="#cast-4978"><span class="linenos">4978</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-4979"><a href="#cast-4979"><span class="linenos">4979</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-4980"><a href="#cast-4980"><span class="linenos">4980</span></a>
-</span><span id="cast-4981"><a href="#cast-4981"><span class="linenos">4981</span></a><span class="sd"> Args:</span>
-</span><span id="cast-4982"><a href="#cast-4982"><span class="linenos">4982</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-4983"><a href="#cast-4983"><span class="linenos">4983</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-4984"><a href="#cast-4984"><span class="linenos">4984</span></a>
-</span><span id="cast-4985"><a href="#cast-4985"><span class="linenos">4985</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-4986"><a href="#cast-4986"><span class="linenos">4986</span></a><span class="sd"> A cast node.</span>
-</span><span id="cast-4987"><a href="#cast-4987"><span class="linenos">4987</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-4988"><a href="#cast-4988"><span class="linenos">4988</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-4989"><a href="#cast-4989"><span class="linenos">4989</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-5367"><a href="#cast-5367"><span class="linenos">5367</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="cast-5368"><a href="#cast-5368"><span class="linenos">5368</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-5369"><a href="#cast-5369"><span class="linenos">5369</span></a>
+</span><span id="cast-5370"><a href="#cast-5370"><span class="linenos">5370</span></a><span class="sd"> Example:</span>
+</span><span id="cast-5371"><a href="#cast-5371"><span class="linenos">5371</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-5372"><a href="#cast-5372"><span class="linenos">5372</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-5373"><a href="#cast-5373"><span class="linenos">5373</span></a>
+</span><span id="cast-5374"><a href="#cast-5374"><span class="linenos">5374</span></a><span class="sd"> Args:</span>
+</span><span id="cast-5375"><a href="#cast-5375"><span class="linenos">5375</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-5376"><a href="#cast-5376"><span class="linenos">5376</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-5377"><a href="#cast-5377"><span class="linenos">5377</span></a>
+</span><span id="cast-5378"><a href="#cast-5378"><span class="linenos">5378</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-5379"><a href="#cast-5379"><span class="linenos">5379</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="cast-5380"><a href="#cast-5380"><span class="linenos">5380</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-5381"><a href="#cast-5381"><span class="linenos">5381</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-5382"><a href="#cast-5382"><span class="linenos">5382</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -47736,7 +50175,7 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>A cast node.</p>
+ <p>The new Cast instance.</p>
</blockquote>
</div>
@@ -47747,29 +50186,37 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">table_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</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="n">quoted</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span>:</span></span>
+ <span class="name">table_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span> <span class="o">|</span> <span class="nb">str</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">sqlglot.expressions.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">sqlglot.expressions.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="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.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="return-annotation">) -> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span>:</span></span>
<label class="view-source-button" for="table_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#table_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_-4992"><a href="#table_-4992"><span class="linenos">4992</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-4993"><a href="#table_-4993"><span class="linenos">4993</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-4994"><a href="#table_-4994"><span class="linenos">4994</span></a>
-</span><span id="table_-4995"><a href="#table_-4995"><span class="linenos">4995</span></a><span class="sd"> Args:</span>
-</span><span id="table_-4996"><a href="#table_-4996"><span class="linenos">4996</span></a><span class="sd"> table (str | Expression): column name</span>
-</span><span id="table_-4997"><a href="#table_-4997"><span class="linenos">4997</span></a><span class="sd"> db (str | Expression): db name</span>
-</span><span id="table_-4998"><a href="#table_-4998"><span class="linenos">4998</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
-</span><span id="table_-4999"><a href="#table_-4999"><span class="linenos">4999</span></a>
-</span><span id="table_-5000"><a href="#table_-5000"><span class="linenos">5000</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-5001"><a href="#table_-5001"><span class="linenos">5001</span></a><span class="sd"> Table: table instance</span>
-</span><span id="table_-5002"><a href="#table_-5002"><span class="linenos">5002</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-5003"><a href="#table_-5003"><span class="linenos">5003</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-5004"><a href="#table_-5004"><span class="linenos">5004</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-5005"><a href="#table_-5005"><span class="linenos">5005</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-5006"><a href="#table_-5006"><span class="linenos">5006</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-5007"><a href="#table_-5007"><span class="linenos">5007</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_-5008"><a href="#table_-5008"><span class="linenos">5008</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-5385"><a href="#table_-5385"><span class="linenos">5385</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="table_-5386"><a href="#table_-5386"><span class="linenos">5386</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_-5387"><a href="#table_-5387"><span class="linenos">5387</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_-5388"><a href="#table_-5388"><span class="linenos">5388</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_-5389"><a href="#table_-5389"><span class="linenos">5389</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_-5390"><a href="#table_-5390"><span class="linenos">5390</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_-5391"><a href="#table_-5391"><span class="linenos">5391</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-5392"><a href="#table_-5392"><span class="linenos">5392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-5393"><a href="#table_-5393"><span class="linenos">5393</span></a>
+</span><span id="table_-5394"><a href="#table_-5394"><span class="linenos">5394</span></a><span class="sd"> Args:</span>
+</span><span id="table_-5395"><a href="#table_-5395"><span class="linenos">5395</span></a><span class="sd"> table: Table name.</span>
+</span><span id="table_-5396"><a href="#table_-5396"><span class="linenos">5396</span></a><span class="sd"> db: Database name.</span>
+</span><span id="table_-5397"><a href="#table_-5397"><span class="linenos">5397</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="table_-5398"><a href="#table_-5398"><span class="linenos">5398</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="table_-5399"><a href="#table_-5399"><span class="linenos">5399</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="table_-5400"><a href="#table_-5400"><span class="linenos">5400</span></a>
+</span><span id="table_-5401"><a href="#table_-5401"><span class="linenos">5401</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-5402"><a href="#table_-5402"><span class="linenos">5402</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="table_-5403"><a href="#table_-5403"><span class="linenos">5403</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-5404"><a href="#table_-5404"><span class="linenos">5404</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-5405"><a href="#table_-5405"><span class="linenos">5405</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-5406"><a href="#table_-5406"><span class="linenos">5406</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-5407"><a href="#table_-5407"><span class="linenos">5407</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-5408"><a href="#table_-5408"><span class="linenos">5408</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_-5409"><a href="#table_-5409"><span class="linenos">5409</span></a> <span class="p">)</span>
</span></pre></div>
@@ -47778,15 +50225,17 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>table (str | Expression):</strong> column name</li>
-<li><strong>db (str | Expression):</strong> db name</li>
-<li><strong>catalog (str | Expression):</strong> catalog name</li>
+<li><strong>table:</strong> Table name.</li>
+<li><strong>db:</strong> Database name.</li>
+<li><strong>catalog:</strong> Catalog name.</li>
+<li><strong>quote:</strong> Whether to force quotes on the table's identifiers.</li>
+<li><strong>alias:</strong> Table's alias.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Table: table instance</p>
+ <p>The new Table instance.</p>
</blockquote>
</div>
@@ -47803,37 +50252,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-5011"><a href="#values-5011"><span class="linenos">5011</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-5012"><a href="#values-5012"><span class="linenos">5012</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-5013"><a href="#values-5013"><span class="linenos">5013</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-5014"><a href="#values-5014"><span class="linenos">5014</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-5015"><a href="#values-5015"><span class="linenos">5015</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-5016"><a href="#values-5016"><span class="linenos">5016</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-5017"><a href="#values-5017"><span class="linenos">5017</span></a>
-</span><span id="values-5018"><a href="#values-5018"><span class="linenos">5018</span></a><span class="sd"> Example:</span>
-</span><span id="values-5019"><a href="#values-5019"><span class="linenos">5019</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-5020"><a href="#values-5020"><span class="linenos">5020</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-5021"><a href="#values-5021"><span class="linenos">5021</span></a>
-</span><span id="values-5022"><a href="#values-5022"><span class="linenos">5022</span></a><span class="sd"> Args:</span>
-</span><span id="values-5023"><a href="#values-5023"><span class="linenos">5023</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-5024"><a href="#values-5024"><span class="linenos">5024</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-5025"><a href="#values-5025"><span class="linenos">5025</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-5026"><a href="#values-5026"><span class="linenos">5026</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="values-5027"><a href="#values-5027"><span class="linenos">5027</span></a>
-</span><span id="values-5028"><a href="#values-5028"><span class="linenos">5028</span></a><span class="sd"> Returns:</span>
-</span><span id="values-5029"><a href="#values-5029"><span class="linenos">5029</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-5030"><a href="#values-5030"><span class="linenos">5030</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-5031"><a href="#values-5031"><span class="linenos">5031</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-5032"><a href="#values-5032"><span class="linenos">5032</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-5033"><a href="#values-5033"><span class="linenos">5033</span></a>
-</span><span id="values-5034"><a href="#values-5034"><span class="linenos">5034</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-5035"><a href="#values-5035"><span class="linenos">5035</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-5036"><a href="#values-5036"><span class="linenos">5036</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="values-5037"><a href="#values-5037"><span class="linenos">5037</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-5038"><a href="#values-5038"><span class="linenos">5038</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-5039"><a href="#values-5039"><span class="linenos">5039</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-5040"><a href="#values-5040"><span class="linenos">5040</span></a> <span class="p">),</span>
-</span><span id="values-5041"><a href="#values-5041"><span class="linenos">5041</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-5412"><a href="#values-5412"><span class="linenos">5412</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-5413"><a href="#values-5413"><span class="linenos">5413</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-5414"><a href="#values-5414"><span class="linenos">5414</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-5415"><a href="#values-5415"><span class="linenos">5415</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-5416"><a href="#values-5416"><span class="linenos">5416</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-5417"><a href="#values-5417"><span class="linenos">5417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="values-5418"><a href="#values-5418"><span class="linenos">5418</span></a>
+</span><span id="values-5419"><a href="#values-5419"><span class="linenos">5419</span></a><span class="sd"> Example:</span>
+</span><span id="values-5420"><a href="#values-5420"><span class="linenos">5420</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-5421"><a href="#values-5421"><span class="linenos">5421</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="values-5422"><a href="#values-5422"><span class="linenos">5422</span></a>
+</span><span id="values-5423"><a href="#values-5423"><span class="linenos">5423</span></a><span class="sd"> Args:</span>
+</span><span id="values-5424"><a href="#values-5424"><span class="linenos">5424</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-5425"><a href="#values-5425"><span class="linenos">5425</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-5426"><a href="#values-5426"><span class="linenos">5426</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-5427"><a href="#values-5427"><span class="linenos">5427</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-5428"><a href="#values-5428"><span class="linenos">5428</span></a>
+</span><span id="values-5429"><a href="#values-5429"><span class="linenos">5429</span></a><span class="sd"> Returns:</span>
+</span><span id="values-5430"><a href="#values-5430"><span class="linenos">5430</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-5431"><a href="#values-5431"><span class="linenos">5431</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-5432"><a href="#values-5432"><span class="linenos">5432</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-5433"><a href="#values-5433"><span class="linenos">5433</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-5434"><a href="#values-5434"><span class="linenos">5434</span></a>
+</span><span id="values-5435"><a href="#values-5435"><span class="linenos">5435</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-5436"><a href="#values-5436"><span class="linenos">5436</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-5437"><a href="#values-5437"><span class="linenos">5437</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="values-5438"><a href="#values-5438"><span class="linenos">5438</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-5439"><a href="#values-5439"><span class="linenos">5439</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-5440"><a href="#values-5440"><span class="linenos">5440</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-5441"><a href="#values-5441"><span class="linenos">5441</span></a> <span class="p">),</span>
+</span><span id="values-5442"><a href="#values-5442"><span class="linenos">5442</span></a> <span class="p">)</span>
</span></pre></div>
@@ -47878,28 +50327,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-5044"><a href="#var-5044"><span class="linenos">5044</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-5045"><a href="#var-5045"><span class="linenos">5045</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-5046"><a href="#var-5046"><span class="linenos">5046</span></a>
-</span><span id="var-5047"><a href="#var-5047"><span class="linenos">5047</span></a><span class="sd"> Example:</span>
-</span><span id="var-5048"><a href="#var-5048"><span class="linenos">5048</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-5049"><a href="#var-5049"><span class="linenos">5049</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-5050"><a href="#var-5050"><span class="linenos">5050</span></a>
-</span><span id="var-5051"><a href="#var-5051"><span class="linenos">5051</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-5052"><a href="#var-5052"><span class="linenos">5052</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-5053"><a href="#var-5053"><span class="linenos">5053</span></a>
-</span><span id="var-5054"><a href="#var-5054"><span class="linenos">5054</span></a><span class="sd"> Args:</span>
-</span><span id="var-5055"><a href="#var-5055"><span class="linenos">5055</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-5056"><a href="#var-5056"><span class="linenos">5056</span></a>
-</span><span id="var-5057"><a href="#var-5057"><span class="linenos">5057</span></a><span class="sd"> Returns:</span>
-</span><span id="var-5058"><a href="#var-5058"><span class="linenos">5058</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-5059"><a href="#var-5059"><span class="linenos">5059</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-5060"><a href="#var-5060"><span class="linenos">5060</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-5061"><a href="#var-5061"><span class="linenos">5061</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-5062"><a href="#var-5062"><span class="linenos">5062</span></a>
-</span><span id="var-5063"><a href="#var-5063"><span class="linenos">5063</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-5064"><a href="#var-5064"><span class="linenos">5064</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-5065"><a href="#var-5065"><span class="linenos">5065</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-5445"><a href="#var-5445"><span class="linenos">5445</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-5446"><a href="#var-5446"><span class="linenos">5446</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="var-5447"><a href="#var-5447"><span class="linenos">5447</span></a>
+</span><span id="var-5448"><a href="#var-5448"><span class="linenos">5448</span></a><span class="sd"> Example:</span>
+</span><span id="var-5449"><a href="#var-5449"><span class="linenos">5449</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-5450"><a href="#var-5450"><span class="linenos">5450</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-5451"><a href="#var-5451"><span class="linenos">5451</span></a>
+</span><span id="var-5452"><a href="#var-5452"><span class="linenos">5452</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-5453"><a href="#var-5453"><span class="linenos">5453</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-5454"><a href="#var-5454"><span class="linenos">5454</span></a>
+</span><span id="var-5455"><a href="#var-5455"><span class="linenos">5455</span></a><span class="sd"> Args:</span>
+</span><span id="var-5456"><a href="#var-5456"><span class="linenos">5456</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-5457"><a href="#var-5457"><span class="linenos">5457</span></a>
+</span><span id="var-5458"><a href="#var-5458"><span class="linenos">5458</span></a><span class="sd"> Returns:</span>
+</span><span id="var-5459"><a href="#var-5459"><span class="linenos">5459</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-5460"><a href="#var-5460"><span class="linenos">5460</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-5461"><a href="#var-5461"><span class="linenos">5461</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-5462"><a href="#var-5462"><span class="linenos">5462</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-5463"><a href="#var-5463"><span class="linenos">5463</span></a>
+</span><span id="var-5464"><a href="#var-5464"><span class="linenos">5464</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-5465"><a href="#var-5465"><span class="linenos">5465</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-5466"><a href="#var-5466"><span class="linenos">5466</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>
@@ -47947,24 +50396,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-5068"><a href="#rename_table-5068"><span class="linenos">5068</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-5069"><a href="#rename_table-5069"><span class="linenos">5069</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-5070"><a href="#rename_table-5070"><span class="linenos">5070</span></a>
-</span><span id="rename_table-5071"><a href="#rename_table-5071"><span class="linenos">5071</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-5072"><a href="#rename_table-5072"><span class="linenos">5072</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-5073"><a href="#rename_table-5073"><span class="linenos">5073</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-5074"><a href="#rename_table-5074"><span class="linenos">5074</span></a>
-</span><span id="rename_table-5075"><a href="#rename_table-5075"><span class="linenos">5075</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-5076"><a href="#rename_table-5076"><span class="linenos">5076</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-5077"><a href="#rename_table-5077"><span class="linenos">5077</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-5078"><a href="#rename_table-5078"><span class="linenos">5078</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-5079"><a href="#rename_table-5079"><span class="linenos">5079</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-5080"><a href="#rename_table-5080"><span class="linenos">5080</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-5081"><a href="#rename_table-5081"><span class="linenos">5081</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-5082"><a href="#rename_table-5082"><span class="linenos">5082</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-5083"><a href="#rename_table-5083"><span class="linenos">5083</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-5084"><a href="#rename_table-5084"><span class="linenos">5084</span></a> <span class="p">],</span>
-</span><span id="rename_table-5085"><a href="#rename_table-5085"><span class="linenos">5085</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-5469"><a href="#rename_table-5469"><span class="linenos">5469</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-5470"><a href="#rename_table-5470"><span class="linenos">5470</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-5471"><a href="#rename_table-5471"><span class="linenos">5471</span></a>
+</span><span id="rename_table-5472"><a href="#rename_table-5472"><span class="linenos">5472</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-5473"><a href="#rename_table-5473"><span class="linenos">5473</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-5474"><a href="#rename_table-5474"><span class="linenos">5474</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-5475"><a href="#rename_table-5475"><span class="linenos">5475</span></a>
+</span><span id="rename_table-5476"><a href="#rename_table-5476"><span class="linenos">5476</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-5477"><a href="#rename_table-5477"><span class="linenos">5477</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-5478"><a href="#rename_table-5478"><span class="linenos">5478</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-5479"><a href="#rename_table-5479"><span class="linenos">5479</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-5480"><a href="#rename_table-5480"><span class="linenos">5480</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-5481"><a href="#rename_table-5481"><span class="linenos">5481</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-5482"><a href="#rename_table-5482"><span class="linenos">5482</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-5483"><a href="#rename_table-5483"><span class="linenos">5483</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-5484"><a href="#rename_table-5484"><span class="linenos">5484</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-5485"><a href="#rename_table-5485"><span class="linenos">5485</span></a> <span class="p">],</span>
+</span><span id="rename_table-5486"><a href="#rename_table-5486"><span class="linenos">5486</span></a> <span class="p">)</span>
</span></pre></div>
@@ -47997,46 +50446,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-5088"><a href="#convert-5088"><span class="linenos">5088</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-5089"><a href="#convert-5089"><span class="linenos">5089</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-5090"><a href="#convert-5090"><span class="linenos">5090</span></a>
-</span><span id="convert-5091"><a href="#convert-5091"><span class="linenos">5091</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-5092"><a href="#convert-5092"><span class="linenos">5092</span></a>
-</span><span id="convert-5093"><a href="#convert-5093"><span class="linenos">5093</span></a><span class="sd"> Args:</span>
-</span><span id="convert-5094"><a href="#convert-5094"><span class="linenos">5094</span></a><span class="sd"> value: A python object.</span>
-</span><span id="convert-5095"><a href="#convert-5095"><span class="linenos">5095</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="convert-5096"><a href="#convert-5096"><span class="linenos">5096</span></a>
-</span><span id="convert-5097"><a href="#convert-5097"><span class="linenos">5097</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-5098"><a href="#convert-5098"><span class="linenos">5098</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="convert-5099"><a href="#convert-5099"><span class="linenos">5099</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-5100"><a href="#convert-5100"><span class="linenos">5100</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-5101"><a href="#convert-5101"><span class="linenos">5101</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-5102"><a href="#convert-5102"><span class="linenos">5102</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-5103"><a href="#convert-5103"><span class="linenos">5103</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-5104"><a href="#convert-5104"><span class="linenos">5104</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-5105"><a href="#convert-5105"><span class="linenos">5105</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-5106"><a href="#convert-5106"><span class="linenos">5106</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-5107"><a href="#convert-5107"><span class="linenos">5107</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-5108"><a href="#convert-5108"><span class="linenos">5108</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-5109"><a href="#convert-5109"><span class="linenos">5109</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-5110"><a href="#convert-5110"><span class="linenos">5110</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-5111"><a href="#convert-5111"><span class="linenos">5111</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-5112"><a href="#convert-5112"><span class="linenos">5112</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-5113"><a href="#convert-5113"><span class="linenos">5113</span></a> <span class="p">)</span>
-</span><span id="convert-5114"><a href="#convert-5114"><span class="linenos">5114</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-5115"><a href="#convert-5115"><span class="linenos">5115</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-5116"><a href="#convert-5116"><span class="linenos">5116</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-5117"><a href="#convert-5117"><span class="linenos">5117</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-5118"><a href="#convert-5118"><span class="linenos">5118</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-5119"><a href="#convert-5119"><span class="linenos">5119</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-5120"><a href="#convert-5120"><span class="linenos">5120</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-5121"><a href="#convert-5121"><span class="linenos">5121</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-5122"><a href="#convert-5122"><span class="linenos">5122</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-5123"><a href="#convert-5123"><span class="linenos">5123</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-5124"><a href="#convert-5124"><span class="linenos">5124</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="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-5125"><a href="#convert-5125"><span class="linenos">5125</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="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-5126"><a href="#convert-5126"><span class="linenos">5126</span></a> <span class="p">)</span>
-</span><span id="convert-5127"><a href="#convert-5127"><span class="linenos">5127</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-5489"><a href="#convert-5489"><span class="linenos">5489</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-5490"><a href="#convert-5490"><span class="linenos">5490</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-5491"><a href="#convert-5491"><span class="linenos">5491</span></a>
+</span><span id="convert-5492"><a href="#convert-5492"><span class="linenos">5492</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-5493"><a href="#convert-5493"><span class="linenos">5493</span></a>
+</span><span id="convert-5494"><a href="#convert-5494"><span class="linenos">5494</span></a><span class="sd"> Args:</span>
+</span><span id="convert-5495"><a href="#convert-5495"><span class="linenos">5495</span></a><span class="sd"> value: A python object.</span>
+</span><span id="convert-5496"><a href="#convert-5496"><span class="linenos">5496</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="convert-5497"><a href="#convert-5497"><span class="linenos">5497</span></a>
+</span><span id="convert-5498"><a href="#convert-5498"><span class="linenos">5498</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-5499"><a href="#convert-5499"><span class="linenos">5499</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="convert-5500"><a href="#convert-5500"><span class="linenos">5500</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-5501"><a href="#convert-5501"><span class="linenos">5501</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-5502"><a href="#convert-5502"><span class="linenos">5502</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-5503"><a href="#convert-5503"><span class="linenos">5503</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-5504"><a href="#convert-5504"><span class="linenos">5504</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-5505"><a href="#convert-5505"><span class="linenos">5505</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-5506"><a href="#convert-5506"><span class="linenos">5506</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-5507"><a href="#convert-5507"><span class="linenos">5507</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-5508"><a href="#convert-5508"><span class="linenos">5508</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-5509"><a href="#convert-5509"><span class="linenos">5509</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-5510"><a href="#convert-5510"><span class="linenos">5510</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-5511"><a href="#convert-5511"><span class="linenos">5511</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-5512"><a href="#convert-5512"><span class="linenos">5512</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-5513"><a href="#convert-5513"><span class="linenos">5513</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-5514"><a href="#convert-5514"><span class="linenos">5514</span></a> <span class="p">)</span>
+</span><span id="convert-5515"><a href="#convert-5515"><span class="linenos">5515</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-5516"><a href="#convert-5516"><span class="linenos">5516</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-5517"><a href="#convert-5517"><span class="linenos">5517</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-5518"><a href="#convert-5518"><span class="linenos">5518</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-5519"><a href="#convert-5519"><span class="linenos">5519</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-5520"><a href="#convert-5520"><span class="linenos">5520</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-5521"><a href="#convert-5521"><span class="linenos">5521</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-5522"><a href="#convert-5522"><span class="linenos">5522</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-5523"><a href="#convert-5523"><span class="linenos">5523</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-5524"><a href="#convert-5524"><span class="linenos">5524</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-5525"><a href="#convert-5525"><span class="linenos">5525</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="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-5526"><a href="#convert-5526"><span class="linenos">5526</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="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-5527"><a href="#convert-5527"><span class="linenos">5527</span></a> <span class="p">)</span>
+</span><span id="convert-5528"><a href="#convert-5528"><span class="linenos">5528</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>
@@ -48065,32 +50514,32 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">replace_children</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">fun</span>, </span><span class="param"><span class="o">*</span><span class="n">args</span>, </span><span class="param"><span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span>
+ <span class="name">replace_children</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">fun</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="replace_children-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#replace_children"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-5130"><a href="#replace_children-5130"><span class="linenos">5130</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="replace_children-5131"><a href="#replace_children-5131"><span class="linenos">5131</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-5132"><a href="#replace_children-5132"><span class="linenos">5132</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-5133"><a href="#replace_children-5133"><span class="linenos">5133</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-5134"><a href="#replace_children-5134"><span class="linenos">5134</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-5135"><a href="#replace_children-5135"><span class="linenos">5135</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-5136"><a href="#replace_children-5136"><span class="linenos">5136</span></a>
-</span><span id="replace_children-5137"><a href="#replace_children-5137"><span class="linenos">5137</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-5138"><a href="#replace_children-5138"><span class="linenos">5138</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-5139"><a href="#replace_children-5139"><span class="linenos">5139</span></a>
-</span><span id="replace_children-5140"><a href="#replace_children-5140"><span class="linenos">5140</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-5141"><a href="#replace_children-5141"><span class="linenos">5141</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-5142"><a href="#replace_children-5142"><span class="linenos">5142</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-5143"><a href="#replace_children-5143"><span class="linenos">5143</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-5144"><a href="#replace_children-5144"><span class="linenos">5144</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-5145"><a href="#replace_children-5145"><span class="linenos">5145</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-5146"><a href="#replace_children-5146"><span class="linenos">5146</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-5147"><a href="#replace_children-5147"><span class="linenos">5147</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-5148"><a href="#replace_children-5148"><span class="linenos">5148</span></a>
-</span><span id="replace_children-5149"><a href="#replace_children-5149"><span class="linenos">5149</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-5531"><a href="#replace_children-5531"><span class="linenos">5531</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-5532"><a href="#replace_children-5532"><span class="linenos">5532</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-5533"><a href="#replace_children-5533"><span class="linenos">5533</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-5534"><a href="#replace_children-5534"><span class="linenos">5534</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-5535"><a href="#replace_children-5535"><span class="linenos">5535</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-5536"><a href="#replace_children-5536"><span class="linenos">5536</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-5537"><a href="#replace_children-5537"><span class="linenos">5537</span></a>
+</span><span id="replace_children-5538"><a href="#replace_children-5538"><span class="linenos">5538</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-5539"><a href="#replace_children-5539"><span class="linenos">5539</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-5540"><a href="#replace_children-5540"><span class="linenos">5540</span></a>
+</span><span id="replace_children-5541"><a href="#replace_children-5541"><span class="linenos">5541</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-5542"><a href="#replace_children-5542"><span class="linenos">5542</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-5543"><a href="#replace_children-5543"><span class="linenos">5543</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-5544"><a href="#replace_children-5544"><span class="linenos">5544</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-5545"><a href="#replace_children-5545"><span class="linenos">5545</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-5546"><a href="#replace_children-5546"><span class="linenos">5546</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-5547"><a href="#replace_children-5547"><span class="linenos">5547</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-5548"><a href="#replace_children-5548"><span class="linenos">5548</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-5549"><a href="#replace_children-5549"><span class="linenos">5549</span></a>
+</span><span id="replace_children-5550"><a href="#replace_children-5550"><span class="linenos">5550</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>
@@ -48104,28 +50553,28 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">column_table_names</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span></span><span class="return-annotation">):</span></span>
+ <span class="name">column_table_names</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="column_table_names-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#column_table_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-5152"><a href="#column_table_names-5152"><span class="linenos">5152</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="column_table_names-5153"><a href="#column_table_names-5153"><span class="linenos">5153</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-5154"><a href="#column_table_names-5154"><span class="linenos">5154</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-5155"><a href="#column_table_names-5155"><span class="linenos">5155</span></a>
-</span><span id="column_table_names-5156"><a href="#column_table_names-5156"><span class="linenos">5156</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-5157"><a href="#column_table_names-5157"><span class="linenos">5157</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-5158"><a href="#column_table_names-5158"><span class="linenos">5158</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
-</span><span id="column_table_names-5159"><a href="#column_table_names-5159"><span class="linenos">5159</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
-</span><span id="column_table_names-5160"><a href="#column_table_names-5160"><span class="linenos">5160</span></a>
-</span><span id="column_table_names-5161"><a href="#column_table_names-5161"><span class="linenos">5161</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-5162"><a href="#column_table_names-5162"><span class="linenos">5162</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
-</span><span id="column_table_names-5163"><a href="#column_table_names-5163"><span class="linenos">5163</span></a>
-</span><span id="column_table_names-5164"><a href="#column_table_names-5164"><span class="linenos">5164</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-5165"><a href="#column_table_names-5165"><span class="linenos">5165</span></a><span class="sd"> list: A list of unique names</span>
-</span><span id="column_table_names-5166"><a href="#column_table_names-5166"><span class="linenos">5166</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-5167"><a href="#column_table_names-5167"><span class="linenos">5167</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-5553"><a href="#column_table_names-5553"><span class="linenos">5553</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="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="column_table_names-5554"><a href="#column_table_names-5554"><span class="linenos">5554</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-5555"><a href="#column_table_names-5555"><span class="linenos">5555</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-5556"><a href="#column_table_names-5556"><span class="linenos">5556</span></a>
+</span><span id="column_table_names-5557"><a href="#column_table_names-5557"><span class="linenos">5557</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-5558"><a href="#column_table_names-5558"><span class="linenos">5558</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-5559"><a href="#column_table_names-5559"><span class="linenos">5559</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
+</span><span id="column_table_names-5560"><a href="#column_table_names-5560"><span class="linenos">5560</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
+</span><span id="column_table_names-5561"><a href="#column_table_names-5561"><span class="linenos">5561</span></a>
+</span><span id="column_table_names-5562"><a href="#column_table_names-5562"><span class="linenos">5562</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-5563"><a href="#column_table_names-5563"><span class="linenos">5563</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="column_table_names-5564"><a href="#column_table_names-5564"><span class="linenos">5564</span></a>
+</span><span id="column_table_names-5565"><a href="#column_table_names-5565"><span class="linenos">5565</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-5566"><a href="#column_table_names-5566"><span class="linenos">5566</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="column_table_names-5567"><a href="#column_table_names-5567"><span class="linenos">5567</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-5568"><a href="#column_table_names-5568"><span class="linenos">5568</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
</span></pre></div>
@@ -48145,13 +50594,13 @@ If either are provided then an alias is also required.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (sqlglot.Expression):</strong> expression to find table names</li>
+<li><strong>expression:</strong> expression to find table names.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>list: A list of unique names</p>
+ <p>A list of unique names.</p>
</blockquote>
</div>
@@ -48162,41 +50611,33 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">table_name</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">table</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
+ <span class="name">table_name</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">table</span><span class="p">:</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span> <span class="o">|</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></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-5170"><a href="#table_name-5170"><span class="linenos">5170</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="table_name-5171"><a href="#table_name-5171"><span class="linenos">5171</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-5172"><a href="#table_name-5172"><span class="linenos">5172</span></a>
-</span><span id="table_name-5173"><a href="#table_name-5173"><span class="linenos">5173</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-5174"><a href="#table_name-5174"><span class="linenos">5174</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
-</span><span id="table_name-5175"><a href="#table_name-5175"><span class="linenos">5175</span></a>
-</span><span id="table_name-5176"><a href="#table_name-5176"><span class="linenos">5176</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-5177"><a href="#table_name-5177"><span class="linenos">5177</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-5178"><a href="#table_name-5178"><span class="linenos">5178</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-5179"><a href="#table_name-5179"><span class="linenos">5179</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-5180"><a href="#table_name-5180"><span class="linenos">5180</span></a>
-</span><span id="table_name-5181"><a href="#table_name-5181"><span class="linenos">5181</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-5182"><a href="#table_name-5182"><span class="linenos">5182</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-5183"><a href="#table_name-5183"><span class="linenos">5183</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-5184"><a href="#table_name-5184"><span class="linenos">5184</span></a>
-</span><span id="table_name-5185"><a href="#table_name-5185"><span class="linenos">5185</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="table_name-5186"><a href="#table_name-5186"><span class="linenos">5186</span></a>
-</span><span id="table_name-5187"><a href="#table_name-5187"><span class="linenos">5187</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-5188"><a href="#table_name-5188"><span class="linenos">5188</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-5189"><a href="#table_name-5189"><span class="linenos">5189</span></a>
-</span><span id="table_name-5190"><a href="#table_name-5190"><span class="linenos">5190</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-5191"><a href="#table_name-5191"><span class="linenos">5191</span></a> <span class="n">part</span>
-</span><span id="table_name-5192"><a href="#table_name-5192"><span class="linenos">5192</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
-</span><span id="table_name-5193"><a href="#table_name-5193"><span class="linenos">5193</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
-</span><span id="table_name-5194"><a href="#table_name-5194"><span class="linenos">5194</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
-</span><span id="table_name-5195"><a href="#table_name-5195"><span class="linenos">5195</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
-</span><span id="table_name-5196"><a href="#table_name-5196"><span class="linenos">5196</span></a> <span class="p">)</span>
-</span><span id="table_name-5197"><a href="#table_name-5197"><span class="linenos">5197</span></a> <span class="k">if</span> <span class="n">part</span>
-</span><span id="table_name-5198"><a href="#table_name-5198"><span class="linenos">5198</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-5571"><a href="#table_name-5571"><span class="linenos">5571</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="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="table_name-5572"><a href="#table_name-5572"><span class="linenos">5572</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-5573"><a href="#table_name-5573"><span class="linenos">5573</span></a>
+</span><span id="table_name-5574"><a href="#table_name-5574"><span class="linenos">5574</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-5575"><a href="#table_name-5575"><span class="linenos">5575</span></a><span class="sd"> table: table expression node or string.</span>
+</span><span id="table_name-5576"><a href="#table_name-5576"><span class="linenos">5576</span></a>
+</span><span id="table_name-5577"><a href="#table_name-5577"><span class="linenos">5577</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-5578"><a href="#table_name-5578"><span class="linenos">5578</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-5579"><a href="#table_name-5579"><span class="linenos">5579</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-5580"><a href="#table_name-5580"><span class="linenos">5580</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-5581"><a href="#table_name-5581"><span class="linenos">5581</span></a>
+</span><span id="table_name-5582"><a href="#table_name-5582"><span class="linenos">5582</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-5583"><a href="#table_name-5583"><span class="linenos">5583</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-5584"><a href="#table_name-5584"><span class="linenos">5584</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-5585"><a href="#table_name-5585"><span class="linenos">5585</span></a>
+</span><span id="table_name-5586"><a href="#table_name-5586"><span class="linenos">5586</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="table_name-5587"><a href="#table_name-5587"><span class="linenos">5587</span></a>
+</span><span id="table_name-5588"><a href="#table_name-5588"><span class="linenos">5588</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-5589"><a href="#table_name-5589"><span class="linenos">5589</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-5590"><a href="#table_name-5590"><span class="linenos">5590</span></a>
+</span><span id="table_name-5591"><a href="#table_name-5591"><span class="linenos">5591</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 class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">part</span><span class="p">)</span>
</span></pre></div>
@@ -48205,7 +50646,7 @@ If either are provided then an alias is also required.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>table (exp.Table | str):</strong> table expression node or string.</li>
+<li><strong>table:</strong> table expression node or string.</li>
</ul>
<h6 id="examples">Examples:</h6>
@@ -48233,39 +50674,39 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">replace_tables</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">mapping</span></span><span class="return-annotation">):</span></span>
+ <span class="name">replace_tables</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span><span class="p">:</span> <span class="o">~</span><span class="n">E</span>, </span><span class="param"><span class="n">mapping</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
<label class="view-source-button" for="replace_tables-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#replace_tables"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-5201"><a href="#replace_tables-5201"><span class="linenos">5201</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
-</span><span id="replace_tables-5202"><a href="#replace_tables-5202"><span class="linenos">5202</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-5203"><a href="#replace_tables-5203"><span class="linenos">5203</span></a>
-</span><span id="replace_tables-5204"><a href="#replace_tables-5204"><span class="linenos">5204</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-5205"><a href="#replace_tables-5205"><span class="linenos">5205</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-5206"><a href="#replace_tables-5206"><span class="linenos">5206</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
-</span><span id="replace_tables-5207"><a href="#replace_tables-5207"><span class="linenos">5207</span></a>
-</span><span id="replace_tables-5208"><a href="#replace_tables-5208"><span class="linenos">5208</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-5209"><a href="#replace_tables-5209"><span class="linenos">5209</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-5210"><a href="#replace_tables-5210"><span class="linenos">5210</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-5211"><a href="#replace_tables-5211"><span class="linenos">5211</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="replace_tables-5212"><a href="#replace_tables-5212"><span class="linenos">5212</span></a>
-</span><span id="replace_tables-5213"><a href="#replace_tables-5213"><span class="linenos">5213</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-5214"><a href="#replace_tables-5214"><span class="linenos">5214</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-5215"><a href="#replace_tables-5215"><span class="linenos">5215</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-5216"><a href="#replace_tables-5216"><span class="linenos">5216</span></a>
-</span><span id="replace_tables-5217"><a href="#replace_tables-5217"><span class="linenos">5217</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
-</span><span id="replace_tables-5218"><a href="#replace_tables-5218"><span class="linenos">5218</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-5219"><a href="#replace_tables-5219"><span class="linenos">5219</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
-</span><span id="replace_tables-5220"><a href="#replace_tables-5220"><span class="linenos">5220</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-5221"><a href="#replace_tables-5221"><span class="linenos">5221</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-5222"><a href="#replace_tables-5222"><span class="linenos">5222</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-5223"><a href="#replace_tables-5223"><span class="linenos">5223</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
-</span><span id="replace_tables-5224"><a href="#replace_tables-5224"><span class="linenos">5224</span></a> <span class="p">)</span>
-</span><span id="replace_tables-5225"><a href="#replace_tables-5225"><span class="linenos">5225</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_tables-5226"><a href="#replace_tables-5226"><span class="linenos">5226</span></a>
-</span><span id="replace_tables-5227"><a href="#replace_tables-5227"><span class="linenos">5227</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-5594"><a href="#replace_tables-5594"><span class="linenos">5594</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="replace_tables-5595"><a href="#replace_tables-5595"><span class="linenos">5595</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-5596"><a href="#replace_tables-5596"><span class="linenos">5596</span></a>
+</span><span id="replace_tables-5597"><a href="#replace_tables-5597"><span class="linenos">5597</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-5598"><a href="#replace_tables-5598"><span class="linenos">5598</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-5599"><a href="#replace_tables-5599"><span class="linenos">5599</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="replace_tables-5600"><a href="#replace_tables-5600"><span class="linenos">5600</span></a>
+</span><span id="replace_tables-5601"><a href="#replace_tables-5601"><span class="linenos">5601</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-5602"><a href="#replace_tables-5602"><span class="linenos">5602</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-5603"><a href="#replace_tables-5603"><span class="linenos">5603</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-5604"><a href="#replace_tables-5604"><span class="linenos">5604</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="replace_tables-5605"><a href="#replace_tables-5605"><span class="linenos">5605</span></a>
+</span><span id="replace_tables-5606"><a href="#replace_tables-5606"><span class="linenos">5606</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-5607"><a href="#replace_tables-5607"><span class="linenos">5607</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-5608"><a href="#replace_tables-5608"><span class="linenos">5608</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tables-5609"><a href="#replace_tables-5609"><span class="linenos">5609</span></a>
+</span><span id="replace_tables-5610"><a href="#replace_tables-5610"><span class="linenos">5610</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-5611"><a href="#replace_tables-5611"><span class="linenos">5611</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-5612"><a href="#replace_tables-5612"><span class="linenos">5612</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
+</span><span id="replace_tables-5613"><a href="#replace_tables-5613"><span class="linenos">5613</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-5614"><a href="#replace_tables-5614"><span class="linenos">5614</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-5615"><a href="#replace_tables-5615"><span class="linenos">5615</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-5616"><a href="#replace_tables-5616"><span class="linenos">5616</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
+</span><span id="replace_tables-5617"><a href="#replace_tables-5617"><span class="linenos">5617</span></a> <span class="p">)</span>
+</span><span id="replace_tables-5618"><a href="#replace_tables-5618"><span class="linenos">5618</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-5619"><a href="#replace_tables-5619"><span class="linenos">5619</span></a>
+</span><span id="replace_tables-5620"><a href="#replace_tables-5620"><span class="linenos">5620</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
</span></pre></div>
@@ -48274,8 +50715,8 @@ If either are provided then an alias is also required.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (sqlglot.Expression):</strong> expression node to be transformed and replaced.</li>
-<li><strong>mapping (Dict[str, str]):</strong> mapping of table names.</li>
+<li><strong>expression:</strong> expression node to be transformed and replaced.</li>
+<li><strong>mapping:</strong> mapping of table names.</li>
</ul>
<h6 id="examples">Examples:</h6>
@@ -48303,46 +50744,46 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">replace_placeholders</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="o">*</span><span class="n">args</span>, </span><span class="param"><span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span>
+ <span class="name">replace_placeholders</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="replace_placeholders-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-5230"><a href="#replace_placeholders-5230"><span class="linenos">5230</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="replace_placeholders-5231"><a href="#replace_placeholders-5231"><span class="linenos">5231</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-5232"><a href="#replace_placeholders-5232"><span class="linenos">5232</span></a>
-</span><span id="replace_placeholders-5233"><a href="#replace_placeholders-5233"><span class="linenos">5233</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-5234"><a href="#replace_placeholders-5234"><span class="linenos">5234</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-5235"><a href="#replace_placeholders-5235"><span class="linenos">5235</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-5236"><a href="#replace_placeholders-5236"><span class="linenos">5236</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-5237"><a href="#replace_placeholders-5237"><span class="linenos">5237</span></a>
-</span><span id="replace_placeholders-5238"><a href="#replace_placeholders-5238"><span class="linenos">5238</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-5239"><a href="#replace_placeholders-5239"><span class="linenos">5239</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-5240"><a href="#replace_placeholders-5240"><span class="linenos">5240</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-5241"><a href="#replace_placeholders-5241"><span class="linenos">5241</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="replace_placeholders-5242"><a href="#replace_placeholders-5242"><span class="linenos">5242</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-5243"><a href="#replace_placeholders-5243"><span class="linenos">5243</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-5244"><a href="#replace_placeholders-5244"><span class="linenos">5244</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="replace_placeholders-5245"><a href="#replace_placeholders-5245"><span class="linenos">5245</span></a>
-</span><span id="replace_placeholders-5246"><a href="#replace_placeholders-5246"><span class="linenos">5246</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-5247"><a href="#replace_placeholders-5247"><span class="linenos">5247</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-5248"><a href="#replace_placeholders-5248"><span class="linenos">5248</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_placeholders-5249"><a href="#replace_placeholders-5249"><span class="linenos">5249</span></a>
-</span><span id="replace_placeholders-5250"><a href="#replace_placeholders-5250"><span class="linenos">5250</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="replace_placeholders-5251"><a href="#replace_placeholders-5251"><span class="linenos">5251</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-5252"><a href="#replace_placeholders-5252"><span class="linenos">5252</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-5253"><a href="#replace_placeholders-5253"><span class="linenos">5253</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-5254"><a href="#replace_placeholders-5254"><span class="linenos">5254</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_placeholders-5255"><a href="#replace_placeholders-5255"><span class="linenos">5255</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-5256"><a href="#replace_placeholders-5256"><span class="linenos">5256</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-5257"><a href="#replace_placeholders-5257"><span class="linenos">5257</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-5258"><a href="#replace_placeholders-5258"><span class="linenos">5258</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-5259"><a href="#replace_placeholders-5259"><span class="linenos">5259</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-5260"><a href="#replace_placeholders-5260"><span class="linenos">5260</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-5261"><a href="#replace_placeholders-5261"><span class="linenos">5261</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-5262"><a href="#replace_placeholders-5262"><span class="linenos">5262</span></a>
-</span><span id="replace_placeholders-5263"><a href="#replace_placeholders-5263"><span class="linenos">5263</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-5623"><a href="#replace_placeholders-5623"><span class="linenos">5623</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-5624"><a href="#replace_placeholders-5624"><span class="linenos">5624</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-5625"><a href="#replace_placeholders-5625"><span class="linenos">5625</span></a>
+</span><span id="replace_placeholders-5626"><a href="#replace_placeholders-5626"><span class="linenos">5626</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-5627"><a href="#replace_placeholders-5627"><span class="linenos">5627</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-5628"><a href="#replace_placeholders-5628"><span class="linenos">5628</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-5629"><a href="#replace_placeholders-5629"><span class="linenos">5629</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="replace_placeholders-5630"><a href="#replace_placeholders-5630"><span class="linenos">5630</span></a>
+</span><span id="replace_placeholders-5631"><a href="#replace_placeholders-5631"><span class="linenos">5631</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-5632"><a href="#replace_placeholders-5632"><span class="linenos">5632</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-5633"><a href="#replace_placeholders-5633"><span class="linenos">5633</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-5634"><a href="#replace_placeholders-5634"><span class="linenos">5634</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="replace_placeholders-5635"><a href="#replace_placeholders-5635"><span class="linenos">5635</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-5636"><a href="#replace_placeholders-5636"><span class="linenos">5636</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-5637"><a href="#replace_placeholders-5637"><span class="linenos">5637</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="replace_placeholders-5638"><a href="#replace_placeholders-5638"><span class="linenos">5638</span></a>
+</span><span id="replace_placeholders-5639"><a href="#replace_placeholders-5639"><span class="linenos">5639</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-5640"><a href="#replace_placeholders-5640"><span class="linenos">5640</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-5641"><a href="#replace_placeholders-5641"><span class="linenos">5641</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-5642"><a href="#replace_placeholders-5642"><span class="linenos">5642</span></a>
+</span><span id="replace_placeholders-5643"><a href="#replace_placeholders-5643"><span class="linenos">5643</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-5644"><a href="#replace_placeholders-5644"><span class="linenos">5644</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-5645"><a href="#replace_placeholders-5645"><span class="linenos">5645</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-5646"><a href="#replace_placeholders-5646"><span class="linenos">5646</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-5647"><a href="#replace_placeholders-5647"><span class="linenos">5647</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_placeholders-5648"><a href="#replace_placeholders-5648"><span class="linenos">5648</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-5649"><a href="#replace_placeholders-5649"><span class="linenos">5649</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-5650"><a href="#replace_placeholders-5650"><span class="linenos">5650</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-5651"><a href="#replace_placeholders-5651"><span class="linenos">5651</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-5652"><a href="#replace_placeholders-5652"><span class="linenos">5652</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-5653"><a href="#replace_placeholders-5653"><span class="linenos">5653</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-5654"><a href="#replace_placeholders-5654"><span class="linenos">5654</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-5655"><a href="#replace_placeholders-5655"><span class="linenos">5655</span></a>
+</span><span id="replace_placeholders-5656"><a href="#replace_placeholders-5656"><span class="linenos">5656</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>
@@ -48351,7 +50792,7 @@ If either are provided then an alias is also required.</li>
<h6 id="arguments">Arguments:</h6>
<ul>
-<li><strong>expression (sqlglot.Expression):</strong> expression node to be transformed and replaced.</li>
+<li><strong>expression:</strong> expression node to be transformed and replaced.</li>
<li><strong>args:</strong> positional names that will substitute unnamed placeholders in the given order.</li>
<li><strong>kwargs:</strong> keyword arguments that will substitute named placeholders.</li>
</ul>
@@ -48390,39 +50831,39 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#expand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="expand-5266"><a href="#expand-5266"><span class="linenos">5266</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="expand-5267"><a href="#expand-5267"><span class="linenos">5267</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="expand-5268"><a href="#expand-5268"><span class="linenos">5268</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-5269"><a href="#expand-5269"><span class="linenos">5269</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-5270"><a href="#expand-5270"><span class="linenos">5270</span></a>
-</span><span id="expand-5271"><a href="#expand-5271"><span class="linenos">5271</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-5272"><a href="#expand-5272"><span class="linenos">5272</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-5273"><a href="#expand-5273"><span class="linenos">5273</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-5274"><a href="#expand-5274"><span class="linenos">5274</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-5275"><a href="#expand-5275"><span class="linenos">5275</span></a>
-</span><span id="expand-5276"><a href="#expand-5276"><span class="linenos">5276</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-5277"><a href="#expand-5277"><span class="linenos">5277</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-5278"><a href="#expand-5278"><span class="linenos">5278</span></a>
-</span><span id="expand-5279"><a href="#expand-5279"><span class="linenos">5279</span></a><span class="sd"> Args:</span>
-</span><span id="expand-5280"><a href="#expand-5280"><span class="linenos">5280</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-5281"><a href="#expand-5281"><span class="linenos">5281</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="expand-5282"><a href="#expand-5282"><span class="linenos">5282</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-5283"><a href="#expand-5283"><span class="linenos">5283</span></a>
-</span><span id="expand-5284"><a href="#expand-5284"><span class="linenos">5284</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-5285"><a href="#expand-5285"><span class="linenos">5285</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-5286"><a href="#expand-5286"><span class="linenos">5286</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="expand-5287"><a href="#expand-5287"><span class="linenos">5287</span></a>
-</span><span id="expand-5288"><a href="#expand-5288"><span class="linenos">5288</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-5289"><a href="#expand-5289"><span class="linenos">5289</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-5290"><a href="#expand-5290"><span class="linenos">5290</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="expand-5291"><a href="#expand-5291"><span class="linenos">5291</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-5292"><a href="#expand-5292"><span class="linenos">5292</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-5293"><a href="#expand-5293"><span class="linenos">5293</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-5294"><a href="#expand-5294"><span class="linenos">5294</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-5295"><a href="#expand-5295"><span class="linenos">5295</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-5296"><a href="#expand-5296"><span class="linenos">5296</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="expand-5297"><a href="#expand-5297"><span class="linenos">5297</span></a>
-</span><span id="expand-5298"><a href="#expand-5298"><span class="linenos">5298</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-5659"><a href="#expand-5659"><span class="linenos">5659</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="expand-5660"><a href="#expand-5660"><span class="linenos">5660</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="expand-5661"><a href="#expand-5661"><span class="linenos">5661</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-5662"><a href="#expand-5662"><span class="linenos">5662</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-5663"><a href="#expand-5663"><span class="linenos">5663</span></a>
+</span><span id="expand-5664"><a href="#expand-5664"><span class="linenos">5664</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-5665"><a href="#expand-5665"><span class="linenos">5665</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-5666"><a href="#expand-5666"><span class="linenos">5666</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-5667"><a href="#expand-5667"><span class="linenos">5667</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="expand-5668"><a href="#expand-5668"><span class="linenos">5668</span></a>
+</span><span id="expand-5669"><a href="#expand-5669"><span class="linenos">5669</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-5670"><a href="#expand-5670"><span class="linenos">5670</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-5671"><a href="#expand-5671"><span class="linenos">5671</span></a>
+</span><span id="expand-5672"><a href="#expand-5672"><span class="linenos">5672</span></a><span class="sd"> Args:</span>
+</span><span id="expand-5673"><a href="#expand-5673"><span class="linenos">5673</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-5674"><a href="#expand-5674"><span class="linenos">5674</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="expand-5675"><a href="#expand-5675"><span class="linenos">5675</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="expand-5676"><a href="#expand-5676"><span class="linenos">5676</span></a>
+</span><span id="expand-5677"><a href="#expand-5677"><span class="linenos">5677</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-5678"><a href="#expand-5678"><span class="linenos">5678</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-5679"><a href="#expand-5679"><span class="linenos">5679</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="expand-5680"><a href="#expand-5680"><span class="linenos">5680</span></a>
+</span><span id="expand-5681"><a href="#expand-5681"><span class="linenos">5681</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-5682"><a href="#expand-5682"><span class="linenos">5682</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-5683"><a href="#expand-5683"><span class="linenos">5683</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="expand-5684"><a href="#expand-5684"><span class="linenos">5684</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-5685"><a href="#expand-5685"><span class="linenos">5685</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-5686"><a href="#expand-5686"><span class="linenos">5686</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-5687"><a href="#expand-5687"><span class="linenos">5687</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-5688"><a href="#expand-5688"><span class="linenos">5688</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-5689"><a href="#expand-5689"><span class="linenos">5689</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-5690"><a href="#expand-5690"><span class="linenos">5690</span></a>
+</span><span id="expand-5691"><a href="#expand-5691"><span class="linenos">5691</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>
@@ -48473,51 +50914,51 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="func-5301"><a href="#func-5301"><span class="linenos">5301</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="func-5302"><a href="#func-5302"><span class="linenos">5302</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-5303"><a href="#func-5303"><span class="linenos">5303</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-5304"><a href="#func-5304"><span class="linenos">5304</span></a>
-</span><span id="func-5305"><a href="#func-5305"><span class="linenos">5305</span></a><span class="sd"> Examples:</span>
-</span><span id="func-5306"><a href="#func-5306"><span class="linenos">5306</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-5307"><a href="#func-5307"><span class="linenos">5307</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-5308"><a href="#func-5308"><span class="linenos">5308</span></a>
-</span><span id="func-5309"><a href="#func-5309"><span class="linenos">5309</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-5310"><a href="#func-5310"><span class="linenos">5310</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-5311"><a href="#func-5311"><span class="linenos">5311</span></a>
-</span><span id="func-5312"><a href="#func-5312"><span class="linenos">5312</span></a><span class="sd"> Args:</span>
-</span><span id="func-5313"><a href="#func-5313"><span class="linenos">5313</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-5314"><a href="#func-5314"><span class="linenos">5314</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-5315"><a href="#func-5315"><span class="linenos">5315</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-5316"><a href="#func-5316"><span class="linenos">5316</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-5317"><a href="#func-5317"><span class="linenos">5317</span></a>
-</span><span id="func-5318"><a href="#func-5318"><span class="linenos">5318</span></a><span class="sd"> Note:</span>
-</span><span id="func-5319"><a href="#func-5319"><span class="linenos">5319</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="func-5320"><a href="#func-5320"><span class="linenos">5320</span></a>
-</span><span id="func-5321"><a href="#func-5321"><span class="linenos">5321</span></a><span class="sd"> Returns:</span>
-</span><span id="func-5322"><a href="#func-5322"><span class="linenos">5322</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-5323"><a href="#func-5323"><span class="linenos">5323</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-5324"><a href="#func-5324"><span class="linenos">5324</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-5325"><a href="#func-5325"><span class="linenos">5325</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-5326"><a href="#func-5326"><span class="linenos">5326</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-5327"><a href="#func-5327"><span class="linenos">5327</span></a>
-</span><span id="func-5328"><a href="#func-5328"><span class="linenos">5328</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-5329"><a href="#func-5329"><span class="linenos">5329</span></a>
-</span><span id="func-5330"><a href="#func-5330"><span class="linenos">5330</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="func-5331"><a href="#func-5331"><span class="linenos">5331</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="func-5332"><a href="#func-5332"><span class="linenos">5332</span></a>
-</span><span id="func-5333"><a href="#func-5333"><span class="linenos">5333</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
-</span><span id="func-5334"><a href="#func-5334"><span class="linenos">5334</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="func-5335"><a href="#func-5335"><span class="linenos">5335</span></a>
-</span><span id="func-5336"><a href="#func-5336"><span class="linenos">5336</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="func-5337"><a href="#func-5337"><span class="linenos">5337</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="func-5338"><a href="#func-5338"><span class="linenos">5338</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-5339"><a href="#func-5339"><span class="linenos">5339</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-5340"><a href="#func-5340"><span class="linenos">5340</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-5341"><a href="#func-5341"><span class="linenos">5341</span></a>
-</span><span id="func-5342"><a href="#func-5342"><span class="linenos">5342</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-5343"><a href="#func-5343"><span class="linenos">5343</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-5344"><a href="#func-5344"><span class="linenos">5344</span></a>
-</span><span id="func-5345"><a href="#func-5345"><span class="linenos">5345</span></a> <span class="k">return</span> <span class="n">function</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-5694"><a href="#func-5694"><span class="linenos">5694</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="func-5695"><a href="#func-5695"><span class="linenos">5695</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-5696"><a href="#func-5696"><span class="linenos">5696</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-5697"><a href="#func-5697"><span class="linenos">5697</span></a>
+</span><span id="func-5698"><a href="#func-5698"><span class="linenos">5698</span></a><span class="sd"> Examples:</span>
+</span><span id="func-5699"><a href="#func-5699"><span class="linenos">5699</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-5700"><a href="#func-5700"><span class="linenos">5700</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="func-5701"><a href="#func-5701"><span class="linenos">5701</span></a>
+</span><span id="func-5702"><a href="#func-5702"><span class="linenos">5702</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-5703"><a href="#func-5703"><span class="linenos">5703</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-5704"><a href="#func-5704"><span class="linenos">5704</span></a>
+</span><span id="func-5705"><a href="#func-5705"><span class="linenos">5705</span></a><span class="sd"> Args:</span>
+</span><span id="func-5706"><a href="#func-5706"><span class="linenos">5706</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-5707"><a href="#func-5707"><span class="linenos">5707</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-5708"><a href="#func-5708"><span class="linenos">5708</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-5709"><a href="#func-5709"><span class="linenos">5709</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="func-5710"><a href="#func-5710"><span class="linenos">5710</span></a>
+</span><span id="func-5711"><a href="#func-5711"><span class="linenos">5711</span></a><span class="sd"> Note:</span>
+</span><span id="func-5712"><a href="#func-5712"><span class="linenos">5712</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="func-5713"><a href="#func-5713"><span class="linenos">5713</span></a>
+</span><span id="func-5714"><a href="#func-5714"><span class="linenos">5714</span></a><span class="sd"> Returns:</span>
+</span><span id="func-5715"><a href="#func-5715"><span class="linenos">5715</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-5716"><a href="#func-5716"><span class="linenos">5716</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-5717"><a href="#func-5717"><span class="linenos">5717</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-5718"><a href="#func-5718"><span class="linenos">5718</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-5719"><a href="#func-5719"><span class="linenos">5719</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-5720"><a href="#func-5720"><span class="linenos">5720</span></a>
+</span><span id="func-5721"><a href="#func-5721"><span class="linenos">5721</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-5722"><a href="#func-5722"><span class="linenos">5722</span></a>
+</span><span id="func-5723"><a href="#func-5723"><span class="linenos">5723</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="func-5724"><a href="#func-5724"><span class="linenos">5724</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="func-5725"><a href="#func-5725"><span class="linenos">5725</span></a>
+</span><span id="func-5726"><a href="#func-5726"><span class="linenos">5726</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
+</span><span id="func-5727"><a href="#func-5727"><span class="linenos">5727</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="func-5728"><a href="#func-5728"><span class="linenos">5728</span></a>
+</span><span id="func-5729"><a href="#func-5729"><span class="linenos">5729</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="func-5730"><a href="#func-5730"><span class="linenos">5730</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="func-5731"><a href="#func-5731"><span class="linenos">5731</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-5732"><a href="#func-5732"><span class="linenos">5732</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-5733"><a href="#func-5733"><span class="linenos">5733</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-5734"><a href="#func-5734"><span class="linenos">5734</span></a>
+</span><span id="func-5735"><a href="#func-5735"><span class="linenos">5735</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-5736"><a href="#func-5736"><span class="linenos">5736</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-5737"><a href="#func-5737"><span class="linenos">5737</span></a>
+</span><span id="func-5738"><a href="#func-5738"><span class="linenos">5738</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -48569,17 +51010,17 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">true</span><span class="signature pdoc-code condensed">(<span class="return-annotation">):</span></span>
+ <span class="name">true</span><span class="signature pdoc-code condensed">(<span class="return-annotation">) -> <span class="n"><a href="#Boolean">sqlglot.expressions.Boolean</a></span>:</span></span>
<label class="view-source-button" for="true-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#true"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="true-5348"><a href="#true-5348"><span class="linenos">5348</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
-</span><span id="true-5349"><a href="#true-5349"><span class="linenos">5349</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-5350"><a href="#true-5350"><span class="linenos">5350</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-5351"><a href="#true-5351"><span class="linenos">5351</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-5352"><a href="#true-5352"><span class="linenos">5352</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-5741"><a href="#true-5741"><span class="linenos">5741</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-5742"><a href="#true-5742"><span class="linenos">5742</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-5743"><a href="#true-5743"><span class="linenos">5743</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-5744"><a href="#true-5744"><span class="linenos">5744</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-5745"><a href="#true-5745"><span class="linenos">5745</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>
@@ -48593,17 +51034,17 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">false</span><span class="signature pdoc-code condensed">(<span class="return-annotation">):</span></span>
+ <span class="name">false</span><span class="signature pdoc-code condensed">(<span class="return-annotation">) -> <span class="n"><a href="#Boolean">sqlglot.expressions.Boolean</a></span>:</span></span>
<label class="view-source-button" for="false-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#false"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="false-5355"><a href="#false-5355"><span class="linenos">5355</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
-</span><span id="false-5356"><a href="#false-5356"><span class="linenos">5356</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-5357"><a href="#false-5357"><span class="linenos">5357</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-5358"><a href="#false-5358"><span class="linenos">5358</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-5359"><a href="#false-5359"><span class="linenos">5359</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-5748"><a href="#false-5748"><span class="linenos">5748</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-5749"><a href="#false-5749"><span class="linenos">5749</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-5750"><a href="#false-5750"><span class="linenos">5750</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-5751"><a href="#false-5751"><span class="linenos">5751</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-5752"><a href="#false-5752"><span class="linenos">5752</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>
@@ -48617,17 +51058,17 @@ If either are provided then an alias is also required.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">null</span><span class="signature pdoc-code condensed">(<span class="return-annotation">):</span></span>
+ <span class="name">null</span><span class="signature pdoc-code condensed">(<span class="return-annotation">) -> <span class="n"><a href="#Null">sqlglot.expressions.Null</a></span>:</span></span>
<label class="view-source-button" for="null-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="null-5362"><a href="#null-5362"><span class="linenos">5362</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
-</span><span id="null-5363"><a href="#null-5363"><span class="linenos">5363</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-5364"><a href="#null-5364"><span class="linenos">5364</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-5365"><a href="#null-5365"><span class="linenos">5365</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-5366"><a href="#null-5366"><span class="linenos">5366</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-5755"><a href="#null-5755"><span class="linenos">5755</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-5756"><a href="#null-5756"><span class="linenos">5756</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-5757"><a href="#null-5757"><span class="linenos">5757</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-5758"><a href="#null-5758"><span class="linenos">5758</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-5759"><a href="#null-5759"><span class="linenos">5759</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>