summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/dialects/tsql.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sqlglot/dialects/tsql.html')
-rw-r--r--docs/sqlglot/dialects/tsql.html1287
1 files changed, 636 insertions, 651 deletions
diff --git a/docs/sqlglot/dialects/tsql.html b/docs/sqlglot/dialects/tsql.html
index 9ca025e..911c4fc 100644
--- a/docs/sqlglot/dialects/tsql.html
+++ b/docs/sqlglot/dialects/tsql.html
@@ -148,9 +148,6 @@
<a class="class" href="#TSQL.Generator">TSQL.Generator</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#TSQL.Generator.LOCKING_READS_SUPPORTED">LOCKING_READS_SUPPORTED</a>
- </li>
- <li>
<a class="variable" href="#TSQL.Generator.LIMIT_IS_TOP">LIMIT_IS_TOP</a>
</li>
<li>
@@ -929,176 +926,175 @@
</span><span id="L-580"><a href="#L-580"><span class="linenos">580</span></a> <span class="p">)</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="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
-</span><span id="L-583"><a href="#L-583"><span class="linenos">583</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-584"><a href="#L-584"><span class="linenos">584</span></a> <span class="n">LIMIT_IS_TOP</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-585"><a href="#L-585"><span class="linenos">585</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-586"><a href="#L-586"><span class="linenos">586</span></a> <span class="n">RETURNING_END</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-587"><a href="#L-587"><span class="linenos">587</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-588"><a href="#L-588"><span class="linenos">588</span></a> <span class="n">ALTER_TABLE_ADD_COLUMN_KEYWORD</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-589"><a href="#L-589"><span class="linenos">589</span></a> <span class="n">LIMIT_FETCH</span> <span class="o">=</span> <span class="s2">&quot;FETCH&quot;</span>
-</span><span id="L-590"><a href="#L-590"><span class="linenos">590</span></a>
-</span><span id="L-591"><a href="#L-591"><span class="linenos">591</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-592"><a href="#L-592"><span class="linenos">592</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
-</span><span id="L-593"><a href="#L-593"><span class="linenos">593</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">:</span> <span class="s2">&quot;BIT&quot;</span><span class="p">,</span>
-</span><span id="L-594"><a href="#L-594"><span class="linenos">594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">:</span> <span class="s2">&quot;NUMERIC&quot;</span><span class="p">,</span>
-</span><span id="L-595"><a href="#L-595"><span class="linenos">595</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
-</span><span id="L-596"><a href="#L-596"><span class="linenos">596</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">:</span> <span class="s2">&quot;INTEGER&quot;</span><span class="p">,</span>
-</span><span id="L-597"><a href="#L-597"><span class="linenos">597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
-</span><span id="L-598"><a href="#L-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">&quot;DATETIMEOFFSET&quot;</span><span class="p">,</span>
-</span><span id="L-599"><a href="#L-599"><span class="linenos">599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">:</span> <span class="s2">&quot;SQL_VARIANT&quot;</span><span class="p">,</span>
-</span><span id="L-600"><a href="#L-600"><span class="linenos">600</span></a> <span class="p">}</span>
-</span><span id="L-601"><a href="#L-601"><span class="linenos">601</span></a>
-</span><span id="L-602"><a href="#L-602"><span class="linenos">602</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-603"><a href="#L-603"><span class="linenos">603</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
-</span><span id="L-604"><a href="#L-604"><span class="linenos">604</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">:</span> <span class="n">any_value_to_max_sql</span><span class="p">,</span>
-</span><span id="L-605"><a href="#L-605"><span class="linenos">605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">&quot;IDENTITY&quot;</span><span class="p">,</span>
-</span><span id="L-606"><a href="#L-606"><span class="linenos">606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
-</span><span id="L-607"><a href="#L-607"><span class="linenos">607</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
-</span><span id="L-608"><a href="#L-608"><span class="linenos">608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
-</span><span id="L-609"><a href="#L-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
-</span><span id="L-610"><a href="#L-610"><span class="linenos">610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;DATEPART&quot;</span><span class="p">),</span>
-</span><span id="L-611"><a href="#L-611"><span class="linenos">611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span>
-</span><span id="L-612"><a href="#L-612"><span class="linenos">612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;IIF&quot;</span><span class="p">),</span>
-</span><span id="L-613"><a href="#L-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Max</span><span class="p">:</span> <span class="n">max_or_greatest</span><span class="p">,</span>
-</span><span id="L-614"><a href="#L-614"><span class="linenos">614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MD5</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;MD5&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
-</span><span id="L-615"><a href="#L-615"><span class="linenos">615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span>
-</span><span id="L-616"><a href="#L-616"><span class="linenos">616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
-</span><span id="L-617"><a href="#L-617"><span class="linenos">617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">([</span><span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">]),</span>
-</span><span id="L-618"><a href="#L-618"><span class="linenos">618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;SHA1&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
-</span><span id="L-619"><a href="#L-619"><span class="linenos">619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span>
-</span><span id="L-620"><a href="#L-620"><span class="linenos">620</span></a> <span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span>
-</span><span id="L-621"><a href="#L-621"><span class="linenos">621</span></a> <span class="n">exp</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="sa">f</span><span class="s2">&quot;SHA2_</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;length&#39;</span><span class="p">,</span><span class="w"> </span><span class="mi">256</span><span class="p">)</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span>
-</span><span id="L-623"><a href="#L-623"><span class="linenos">623</span></a> <span class="p">),</span>
-</span><span id="L-624"><a href="#L-624"><span class="linenos">624</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
-</span><span id="L-625"><a href="#L-625"><span class="linenos">625</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span>
-</span><span id="L-626"><a href="#L-626"><span class="linenos">626</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
-</span><span id="L-627"><a href="#L-627"><span class="linenos">627</span></a> <span class="p">}</span>
-</span><span id="L-628"><a href="#L-628"><span class="linenos">628</span></a>
-</span><span id="L-629"><a href="#L-629"><span class="linenos">629</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span>
-</span><span id="L-630"><a href="#L-630"><span class="linenos">630</span></a>
-</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-632"><a href="#L-632"><span class="linenos">632</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span>
-</span><span id="L-633"><a href="#L-633"><span class="linenos">633</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatileProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span>
-</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a> <span class="p">}</span>
-</span><span id="L-635"><a href="#L-635"><span class="linenos">635</span></a>
-</span><span id="L-636"><a href="#L-636"><span class="linenos">636</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-637"><a href="#L-637"><span class="linenos">637</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
-</span><span id="L-638"><a href="#L-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</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">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
-</span><span id="L-641"><a href="#L-641"><span class="linenos">641</span></a>
-</span><span id="L-642"><a href="#L-642"><span class="linenos">642</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-643"><a href="#L-643"><span class="linenos">643</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
-</span><span id="L-644"><a href="#L-644"><span class="linenos">644</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
-</span><span id="L-645"><a href="#L-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
-</span><span id="L-646"><a href="#L-646"><span class="linenos">646</span></a>
-</span><span id="L-647"><a href="#L-647"><span class="linenos">647</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-648"><a href="#L-648"><span class="linenos">648</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-649"><a href="#L-649"><span class="linenos">649</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
-</span><span id="L-650"><a href="#L-650"><span class="linenos">650</span></a>
-</span><span id="L-651"><a href="#L-651"><span class="linenos">651</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
-</span><span id="L-652"><a href="#L-652"><span class="linenos">652</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
-</span><span id="L-653"><a href="#L-653"><span class="linenos">653</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
-</span><span id="L-654"><a href="#L-654"><span class="linenos">654</span></a> <span class="p">):</span>
-</span><span id="L-655"><a href="#L-655"><span class="linenos">655</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">sql</span><span class="si">}</span><span class="s2">&quot;</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="k">return</span> <span class="n">sql</span>
-</span><span id="L-658"><a href="#L-658"><span class="linenos">658</span></a>
-</span><span id="L-659"><a href="#L-659"><span class="linenos">659</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <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">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-661"><a href="#L-661"><span class="linenos">661</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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-662"><a href="#L-662"><span class="linenos">662</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-663"><a href="#L-663"><span class="linenos">663</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</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 class="k">if</span> <span class="n">exists</span><span class="p">:</span>
-</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
-</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
-</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
-</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="L-672"><a href="#L-672"><span class="linenos">672</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
-</span><span id="L-673"><a href="#L-673"><span class="linenos">673</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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-674"><a href="#L-674"><span class="linenos">674</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="L-675"><a href="#L-675"><span class="linenos">675</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
-</span><span id="L-676"><a href="#L-676"><span class="linenos">676</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="L-677"><a href="#L-677"><span class="linenos">677</span></a>
-</span><span id="L-678"><a href="#L-678"><span class="linenos">678</span></a> <span class="k">return</span> <span class="n">sql</span>
-</span><span id="L-679"><a href="#L-679"><span class="linenos">679</span></a>
-</span><span id="L-680"><a href="#L-680"><span class="linenos">680</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
-</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a>
-</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-685"><a href="#L-685"><span class="linenos">685</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-686"><a href="#L-686"><span class="linenos">686</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
-</span><span id="L-687"><a href="#L-687"><span class="linenos">687</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="L-688"><a href="#L-688"><span class="linenos">688</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
-</span><span id="L-689"><a href="#L-689"><span class="linenos">689</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-690"><a href="#L-690"><span class="linenos">690</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
-</span><span id="L-691"><a href="#L-691"><span class="linenos">691</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-692"><a href="#L-692"><span class="linenos">692</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-693"><a href="#L-693"><span class="linenos">693</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
-</span><span id="L-694"><a href="#L-694"><span class="linenos">694</span></a>
-</span><span id="L-695"><a href="#L-695"><span class="linenos">695</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-696"><a href="#L-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-697"><a href="#L-697"><span class="linenos">697</span></a>
-</span><span id="L-698"><a href="#L-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-699"><a href="#L-699"><span class="linenos">699</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
-</span><span id="L-700"><a href="#L-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-701"><a href="#L-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</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="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-704"><a href="#L-704"><span class="linenos">704</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
-</span><span id="L-705"><a href="#L-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-706"><a href="#L-706"><span class="linenos">706</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a>
-</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</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="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-711"><a href="#L-711"><span class="linenos">711</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
-</span><span id="L-712"><a href="#L-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-713"><a href="#L-713"><span class="linenos">713</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-714"><a href="#L-714"><span class="linenos">714</span></a>
-</span><span id="L-715"><a href="#L-715"><span class="linenos">715</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-716"><a href="#L-716"><span class="linenos">716</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-717"><a href="#L-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-718"><a href="#L-718"><span class="linenos">718</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
-</span><span id="L-719"><a href="#L-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="L-720"><a href="#L-720"><span class="linenos">720</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="L-721"><a href="#L-721"><span class="linenos">721</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-722"><a href="#L-722"><span class="linenos">722</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-723"><a href="#L-723"><span class="linenos">723</span></a> <span class="p">)</span>
-</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a>
-</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</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="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a>
-</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a>
-</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
-</span><span id="L-735"><a href="#L-735"><span class="linenos">735</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-736"><a href="#L-736"><span class="linenos">736</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
-</span><span id="L-737"><a href="#L-737"><span class="linenos">737</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a>
-</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a>
-</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</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="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</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="c1"># https://learn.microsoft.com/en-us/answers/questions/448821/create-table-in-sql-server</span>
-</span><span id="L-747"><a href="#L-747"><span class="linenos">747</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
-</span><span id="L-748"><a href="#L-748"><span class="linenos">748</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
-</span><span id="L-749"><a href="#L-749"><span class="linenos">749</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-750"><a href="#L-750"><span class="linenos">750</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="L-751"><a href="#L-751"><span class="linenos">751</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="L-752"><a href="#L-752"><span class="linenos">752</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="L-583"><a href="#L-583"><span class="linenos">583</span></a> <span class="n">LIMIT_IS_TOP</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-584"><a href="#L-584"><span class="linenos">584</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-585"><a href="#L-585"><span class="linenos">585</span></a> <span class="n">RETURNING_END</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-586"><a href="#L-586"><span class="linenos">586</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-587"><a href="#L-587"><span class="linenos">587</span></a> <span class="n">ALTER_TABLE_ADD_COLUMN_KEYWORD</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-588"><a href="#L-588"><span class="linenos">588</span></a> <span class="n">LIMIT_FETCH</span> <span class="o">=</span> <span class="s2">&quot;FETCH&quot;</span>
+</span><span id="L-589"><a href="#L-589"><span class="linenos">589</span></a>
+</span><span id="L-590"><a href="#L-590"><span class="linenos">590</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-591"><a href="#L-591"><span class="linenos">591</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
+</span><span id="L-592"><a href="#L-592"><span class="linenos">592</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">:</span> <span class="s2">&quot;BIT&quot;</span><span class="p">,</span>
+</span><span id="L-593"><a href="#L-593"><span class="linenos">593</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">:</span> <span class="s2">&quot;NUMERIC&quot;</span><span class="p">,</span>
+</span><span id="L-594"><a href="#L-594"><span class="linenos">594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
+</span><span id="L-595"><a href="#L-595"><span class="linenos">595</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">:</span> <span class="s2">&quot;INTEGER&quot;</span><span class="p">,</span>
+</span><span id="L-596"><a href="#L-596"><span class="linenos">596</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
+</span><span id="L-597"><a href="#L-597"><span class="linenos">597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">&quot;DATETIMEOFFSET&quot;</span><span class="p">,</span>
+</span><span id="L-598"><a href="#L-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">:</span> <span class="s2">&quot;SQL_VARIANT&quot;</span><span class="p">,</span>
+</span><span id="L-599"><a href="#L-599"><span class="linenos">599</span></a> <span class="p">}</span>
+</span><span id="L-600"><a href="#L-600"><span class="linenos">600</span></a>
+</span><span id="L-601"><a href="#L-601"><span class="linenos">601</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-602"><a href="#L-602"><span class="linenos">602</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
+</span><span id="L-603"><a href="#L-603"><span class="linenos">603</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">:</span> <span class="n">any_value_to_max_sql</span><span class="p">,</span>
+</span><span id="L-604"><a href="#L-604"><span class="linenos">604</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">&quot;IDENTITY&quot;</span><span class="p">,</span>
+</span><span id="L-605"><a href="#L-605"><span class="linenos">605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
+</span><span id="L-606"><a href="#L-606"><span class="linenos">606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
+</span><span id="L-607"><a href="#L-607"><span class="linenos">607</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
+</span><span id="L-608"><a href="#L-608"><span class="linenos">608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
+</span><span id="L-609"><a href="#L-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;DATEPART&quot;</span><span class="p">),</span>
+</span><span id="L-610"><a href="#L-610"><span class="linenos">610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span>
+</span><span id="L-611"><a href="#L-611"><span class="linenos">611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;IIF&quot;</span><span class="p">),</span>
+</span><span id="L-612"><a href="#L-612"><span class="linenos">612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Max</span><span class="p">:</span> <span class="n">max_or_greatest</span><span class="p">,</span>
+</span><span id="L-613"><a href="#L-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MD5</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;MD5&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
+</span><span id="L-614"><a href="#L-614"><span class="linenos">614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span>
+</span><span id="L-615"><a href="#L-615"><span class="linenos">615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
+</span><span id="L-616"><a href="#L-616"><span class="linenos">616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">([</span><span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">]),</span>
+</span><span id="L-617"><a href="#L-617"><span class="linenos">617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;SHA1&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
+</span><span id="L-618"><a href="#L-618"><span class="linenos">618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span>
+</span><span id="L-619"><a href="#L-619"><span class="linenos">619</span></a> <span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span>
+</span><span id="L-620"><a href="#L-620"><span class="linenos">620</span></a> <span class="n">exp</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="sa">f</span><span class="s2">&quot;SHA2_</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;length&#39;</span><span class="p">,</span><span class="w"> </span><span class="mi">256</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
+</span><span id="L-621"><a href="#L-621"><span class="linenos">621</span></a> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</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 class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+</span><span id="L-624"><a href="#L-624"><span class="linenos">624</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span>
+</span><span id="L-625"><a href="#L-625"><span class="linenos">625</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
+</span><span id="L-626"><a href="#L-626"><span class="linenos">626</span></a> <span class="p">}</span>
+</span><span id="L-627"><a href="#L-627"><span class="linenos">627</span></a>
+</span><span id="L-628"><a href="#L-628"><span class="linenos">628</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span>
+</span><span id="L-629"><a href="#L-629"><span class="linenos">629</span></a>
+</span><span id="L-630"><a href="#L-630"><span class="linenos">630</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span>
+</span><span id="L-632"><a href="#L-632"><span class="linenos">632</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatileProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span>
+</span><span id="L-633"><a href="#L-633"><span class="linenos">633</span></a> <span class="p">}</span>
+</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a>
+</span><span id="L-635"><a href="#L-635"><span class="linenos">635</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-636"><a href="#L-636"><span class="linenos">636</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
+</span><span id="L-637"><a href="#L-637"><span class="linenos">637</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
+</span><span id="L-638"><a href="#L-638"><span class="linenos">638</span></a>
+</span><span id="L-639"><a href="#L-639"><span class="linenos">639</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</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">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-642"><a href="#L-642"><span class="linenos">642</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
+</span><span id="L-643"><a href="#L-643"><span class="linenos">643</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
+</span><span id="L-644"><a href="#L-644"><span class="linenos">644</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</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">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-647"><a href="#L-647"><span class="linenos">647</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-648"><a href="#L-648"><span class="linenos">648</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
+</span><span id="L-649"><a href="#L-649"><span class="linenos">649</span></a>
+</span><span id="L-650"><a href="#L-650"><span class="linenos">650</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
+</span><span id="L-651"><a href="#L-651"><span class="linenos">651</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
+</span><span id="L-652"><a href="#L-652"><span class="linenos">652</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
+</span><span id="L-653"><a href="#L-653"><span class="linenos">653</span></a> <span class="p">):</span>
+</span><span id="L-654"><a href="#L-654"><span class="linenos">654</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-655"><a href="#L-655"><span class="linenos">655</span></a>
+</span><span id="L-656"><a href="#L-656"><span class="linenos">656</span></a> <span class="k">return</span> <span class="n">sql</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="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-659"><a href="#L-659"><span class="linenos">659</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-660"><a href="#L-660"><span class="linenos">660</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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-661"><a href="#L-661"><span class="linenos">661</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-662"><a href="#L-662"><span class="linenos">662</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-663"><a href="#L-663"><span class="linenos">663</span></a>
+</span><span id="L-664"><a href="#L-664"><span class="linenos">664</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
+</span><span id="L-665"><a href="#L-665"><span class="linenos">665</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
+</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
+</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
+</span><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
+</span><span id="L-672"><a href="#L-672"><span class="linenos">672</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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-673"><a href="#L-673"><span class="linenos">673</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="L-674"><a href="#L-674"><span class="linenos">674</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
+</span><span id="L-675"><a href="#L-675"><span class="linenos">675</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</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="k">return</span> <span class="n">sql</span>
+</span><span id="L-678"><a href="#L-678"><span class="linenos">678</span></a>
+</span><span id="L-679"><a href="#L-679"><span class="linenos">679</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-680"><a href="#L-680"><span class="linenos">680</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
+</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a>
+</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-685"><a href="#L-685"><span class="linenos">685</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
+</span><span id="L-686"><a href="#L-686"><span class="linenos">686</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="L-687"><a href="#L-687"><span class="linenos">687</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
+</span><span id="L-688"><a href="#L-688"><span class="linenos">688</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-689"><a href="#L-689"><span class="linenos">689</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
+</span><span id="L-690"><a href="#L-690"><span class="linenos">690</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-691"><a href="#L-691"><span class="linenos">691</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-692"><a href="#L-692"><span class="linenos">692</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
+</span><span id="L-693"><a href="#L-693"><span class="linenos">693</span></a>
+</span><span id="L-694"><a href="#L-694"><span class="linenos">694</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-695"><a href="#L-695"><span class="linenos">695</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-696"><a href="#L-696"><span class="linenos">696</span></a>
+</span><span id="L-697"><a href="#L-697"><span class="linenos">697</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-698"><a href="#L-698"><span class="linenos">698</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
+</span><span id="L-699"><a href="#L-699"><span class="linenos">699</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-700"><a href="#L-700"><span class="linenos">700</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-701"><a href="#L-701"><span class="linenos">701</span></a>
+</span><span id="L-702"><a href="#L-702"><span class="linenos">702</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-703"><a href="#L-703"><span class="linenos">703</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
+</span><span id="L-704"><a href="#L-704"><span class="linenos">704</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-705"><a href="#L-705"><span class="linenos">705</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-706"><a href="#L-706"><span class="linenos">706</span></a>
+</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
+</span><span id="L-711"><a href="#L-711"><span class="linenos">711</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-712"><a href="#L-712"><span class="linenos">712</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</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="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-715"><a href="#L-715"><span class="linenos">715</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-716"><a href="#L-716"><span class="linenos">716</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-717"><a href="#L-717"><span class="linenos">717</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
+</span><span id="L-718"><a href="#L-718"><span class="linenos">718</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="L-719"><a href="#L-719"><span class="linenos">719</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="L-720"><a href="#L-720"><span class="linenos">720</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-721"><a href="#L-721"><span class="linenos">721</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</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 class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a>
+</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</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="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a>
+</span><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
+</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-735"><a href="#L-735"><span class="linenos">735</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
+</span><span id="L-736"><a href="#L-736"><span class="linenos">736</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-737"><a href="#L-737"><span class="linenos">737</span></a>
+</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="k">return</span> <span class="n">identifier</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">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</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="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</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="c1"># https://learn.microsoft.com/en-us/answers/questions/448821/create-table-in-sql-server</span>
+</span><span id="L-746"><a href="#L-746"><span class="linenos">746</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
+</span><span id="L-747"><a href="#L-747"><span class="linenos">747</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
+</span><span id="L-748"><a href="#L-748"><span class="linenos">748</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-749"><a href="#L-749"><span class="linenos">749</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="L-750"><a href="#L-750"><span class="linenos">750</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="L-751"><a href="#L-751"><span class="linenos">751</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
</span></pre></div>
@@ -1168,7 +1164,7 @@
<div class="attr variable">
<span class="name">BIT_TYPES</span> =
<input id="BIT_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="BIT_TYPES-view-value"></label><span class="default_value">{&lt;class &#39;<a href="../expressions.html#In">sqlglot.expressions.In</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#NEQ">sqlglot.expressions.NEQ</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#Is">sqlglot.expressions.Is</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#Select">sqlglot.expressions.Select</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#EQ">sqlglot.expressions.EQ</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#Alias">sqlglot.expressions.Alias</a>&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="BIT_TYPES-view-value"></label><span class="default_value">{&lt;class &#39;<a href="../expressions.html#Alias">sqlglot.expressions.Alias</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#In">sqlglot.expressions.In</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#NEQ">sqlglot.expressions.NEQ</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#Is">sqlglot.expressions.Is</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#Select">sqlglot.expressions.Select</a>&#39;&gt;, &lt;class &#39;<a href="../expressions.html#EQ">sqlglot.expressions.EQ</a>&#39;&gt;}</span>
</div>
@@ -1588,176 +1584,175 @@
</span><span id="TSQL-581"><a href="#TSQL-581"><span class="linenos">581</span></a> <span class="p">)</span>
</span><span id="TSQL-582"><a href="#TSQL-582"><span class="linenos">582</span></a>
</span><span id="TSQL-583"><a href="#TSQL-583"><span class="linenos">583</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
-</span><span id="TSQL-584"><a href="#TSQL-584"><span class="linenos">584</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="TSQL-585"><a href="#TSQL-585"><span class="linenos">585</span></a> <span class="n">LIMIT_IS_TOP</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="TSQL-586"><a href="#TSQL-586"><span class="linenos">586</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL-587"><a href="#TSQL-587"><span class="linenos">587</span></a> <span class="n">RETURNING_END</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL-588"><a href="#TSQL-588"><span class="linenos">588</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL-589"><a href="#TSQL-589"><span class="linenos">589</span></a> <span class="n">ALTER_TABLE_ADD_COLUMN_KEYWORD</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL-590"><a href="#TSQL-590"><span class="linenos">590</span></a> <span class="n">LIMIT_FETCH</span> <span class="o">=</span> <span class="s2">&quot;FETCH&quot;</span>
-</span><span id="TSQL-591"><a href="#TSQL-591"><span class="linenos">591</span></a>
-</span><span id="TSQL-592"><a href="#TSQL-592"><span class="linenos">592</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TSQL-593"><a href="#TSQL-593"><span class="linenos">593</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
-</span><span id="TSQL-594"><a href="#TSQL-594"><span class="linenos">594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">:</span> <span class="s2">&quot;BIT&quot;</span><span class="p">,</span>
-</span><span id="TSQL-595"><a href="#TSQL-595"><span class="linenos">595</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">:</span> <span class="s2">&quot;NUMERIC&quot;</span><span class="p">,</span>
-</span><span id="TSQL-596"><a href="#TSQL-596"><span class="linenos">596</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
-</span><span id="TSQL-597"><a href="#TSQL-597"><span class="linenos">597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">:</span> <span class="s2">&quot;INTEGER&quot;</span><span class="p">,</span>
-</span><span id="TSQL-598"><a href="#TSQL-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
-</span><span id="TSQL-599"><a href="#TSQL-599"><span class="linenos">599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">&quot;DATETIMEOFFSET&quot;</span><span class="p">,</span>
-</span><span id="TSQL-600"><a href="#TSQL-600"><span class="linenos">600</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">:</span> <span class="s2">&quot;SQL_VARIANT&quot;</span><span class="p">,</span>
-</span><span id="TSQL-601"><a href="#TSQL-601"><span class="linenos">601</span></a> <span class="p">}</span>
-</span><span id="TSQL-602"><a href="#TSQL-602"><span class="linenos">602</span></a>
-</span><span id="TSQL-603"><a href="#TSQL-603"><span class="linenos">603</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TSQL-604"><a href="#TSQL-604"><span class="linenos">604</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
-</span><span id="TSQL-605"><a href="#TSQL-605"><span class="linenos">605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">:</span> <span class="n">any_value_to_max_sql</span><span class="p">,</span>
-</span><span id="TSQL-606"><a href="#TSQL-606"><span class="linenos">606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">&quot;IDENTITY&quot;</span><span class="p">,</span>
-</span><span id="TSQL-607"><a href="#TSQL-607"><span class="linenos">607</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
-</span><span id="TSQL-608"><a href="#TSQL-608"><span class="linenos">608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
-</span><span id="TSQL-609"><a href="#TSQL-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
-</span><span id="TSQL-610"><a href="#TSQL-610"><span class="linenos">610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
-</span><span id="TSQL-611"><a href="#TSQL-611"><span class="linenos">611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;DATEPART&quot;</span><span class="p">),</span>
-</span><span id="TSQL-612"><a href="#TSQL-612"><span class="linenos">612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span>
-</span><span id="TSQL-613"><a href="#TSQL-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;IIF&quot;</span><span class="p">),</span>
-</span><span id="TSQL-614"><a href="#TSQL-614"><span class="linenos">614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Max</span><span class="p">:</span> <span class="n">max_or_greatest</span><span class="p">,</span>
-</span><span id="TSQL-615"><a href="#TSQL-615"><span class="linenos">615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MD5</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;MD5&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
-</span><span id="TSQL-616"><a href="#TSQL-616"><span class="linenos">616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span>
-</span><span id="TSQL-617"><a href="#TSQL-617"><span class="linenos">617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
-</span><span id="TSQL-618"><a href="#TSQL-618"><span class="linenos">618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">([</span><span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">]),</span>
-</span><span id="TSQL-619"><a href="#TSQL-619"><span class="linenos">619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;SHA1&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
-</span><span id="TSQL-620"><a href="#TSQL-620"><span class="linenos">620</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span>
-</span><span id="TSQL-621"><a href="#TSQL-621"><span class="linenos">621</span></a> <span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span>
-</span><span id="TSQL-622"><a href="#TSQL-622"><span class="linenos">622</span></a> <span class="n">exp</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="sa">f</span><span class="s2">&quot;SHA2_</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;length&#39;</span><span class="p">,</span><span class="w"> </span><span class="mi">256</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
-</span><span id="TSQL-623"><a href="#TSQL-623"><span class="linenos">623</span></a> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span>
-</span><span id="TSQL-624"><a href="#TSQL-624"><span class="linenos">624</span></a> <span class="p">),</span>
-</span><span id="TSQL-625"><a href="#TSQL-625"><span class="linenos">625</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
-</span><span id="TSQL-626"><a href="#TSQL-626"><span class="linenos">626</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span>
-</span><span id="TSQL-627"><a href="#TSQL-627"><span class="linenos">627</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
-</span><span id="TSQL-628"><a href="#TSQL-628"><span class="linenos">628</span></a> <span class="p">}</span>
-</span><span id="TSQL-629"><a href="#TSQL-629"><span class="linenos">629</span></a>
-</span><span id="TSQL-630"><a href="#TSQL-630"><span class="linenos">630</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span>
-</span><span id="TSQL-631"><a href="#TSQL-631"><span class="linenos">631</span></a>
-</span><span id="TSQL-632"><a href="#TSQL-632"><span class="linenos">632</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TSQL-633"><a href="#TSQL-633"><span class="linenos">633</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span>
-</span><span id="TSQL-634"><a href="#TSQL-634"><span class="linenos">634</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatileProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span>
-</span><span id="TSQL-635"><a href="#TSQL-635"><span class="linenos">635</span></a> <span class="p">}</span>
-</span><span id="TSQL-636"><a href="#TSQL-636"><span class="linenos">636</span></a>
-</span><span id="TSQL-637"><a href="#TSQL-637"><span class="linenos">637</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-638"><a href="#TSQL-638"><span class="linenos">638</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
-</span><span id="TSQL-639"><a href="#TSQL-639"><span class="linenos">639</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
-</span><span id="TSQL-640"><a href="#TSQL-640"><span class="linenos">640</span></a>
-</span><span id="TSQL-641"><a href="#TSQL-641"><span class="linenos">641</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
-</span><span id="TSQL-642"><a href="#TSQL-642"><span class="linenos">642</span></a>
-</span><span id="TSQL-643"><a href="#TSQL-643"><span class="linenos">643</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-644"><a href="#TSQL-644"><span class="linenos">644</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
-</span><span id="TSQL-645"><a href="#TSQL-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
-</span><span id="TSQL-646"><a href="#TSQL-646"><span class="linenos">646</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
-</span><span id="TSQL-647"><a href="#TSQL-647"><span class="linenos">647</span></a>
-</span><span id="TSQL-648"><a href="#TSQL-648"><span class="linenos">648</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-649"><a href="#TSQL-649"><span class="linenos">649</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL-650"><a href="#TSQL-650"><span class="linenos">650</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
-</span><span id="TSQL-651"><a href="#TSQL-651"><span class="linenos">651</span></a>
-</span><span id="TSQL-652"><a href="#TSQL-652"><span class="linenos">652</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
-</span><span id="TSQL-653"><a href="#TSQL-653"><span class="linenos">653</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
-</span><span id="TSQL-654"><a href="#TSQL-654"><span class="linenos">654</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
-</span><span id="TSQL-655"><a href="#TSQL-655"><span class="linenos">655</span></a> <span class="p">):</span>
-</span><span id="TSQL-656"><a href="#TSQL-656"><span class="linenos">656</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-657"><a href="#TSQL-657"><span class="linenos">657</span></a>
-</span><span id="TSQL-658"><a href="#TSQL-658"><span class="linenos">658</span></a> <span class="k">return</span> <span class="n">sql</span>
-</span><span id="TSQL-659"><a href="#TSQL-659"><span class="linenos">659</span></a>
-</span><span id="TSQL-660"><a href="#TSQL-660"><span class="linenos">660</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-661"><a href="#TSQL-661"><span class="linenos">661</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="TSQL-662"><a href="#TSQL-662"><span class="linenos">662</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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="TSQL-663"><a href="#TSQL-663"><span class="linenos">663</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="TSQL-664"><a href="#TSQL-664"><span class="linenos">664</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="TSQL-665"><a href="#TSQL-665"><span class="linenos">665</span></a>
-</span><span id="TSQL-666"><a href="#TSQL-666"><span class="linenos">666</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
-</span><span id="TSQL-667"><a href="#TSQL-667"><span class="linenos">667</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="TSQL-668"><a href="#TSQL-668"><span class="linenos">668</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
-</span><span id="TSQL-669"><a href="#TSQL-669"><span class="linenos">669</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
-</span><span id="TSQL-670"><a href="#TSQL-670"><span class="linenos">670</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL-671"><a href="#TSQL-671"><span class="linenos">671</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
-</span><span id="TSQL-672"><a href="#TSQL-672"><span class="linenos">672</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL-673"><a href="#TSQL-673"><span class="linenos">673</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
-</span><span id="TSQL-674"><a href="#TSQL-674"><span class="linenos">674</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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="TSQL-675"><a href="#TSQL-675"><span class="linenos">675</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL-676"><a href="#TSQL-676"><span class="linenos">676</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
-</span><span id="TSQL-677"><a href="#TSQL-677"><span class="linenos">677</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="TSQL-678"><a href="#TSQL-678"><span class="linenos">678</span></a>
-</span><span id="TSQL-679"><a href="#TSQL-679"><span class="linenos">679</span></a> <span class="k">return</span> <span class="n">sql</span>
-</span><span id="TSQL-680"><a href="#TSQL-680"><span class="linenos">680</span></a>
-</span><span id="TSQL-681"><a href="#TSQL-681"><span class="linenos">681</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-682"><a href="#TSQL-682"><span class="linenos">682</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
-</span><span id="TSQL-683"><a href="#TSQL-683"><span class="linenos">683</span></a>
-</span><span id="TSQL-684"><a href="#TSQL-684"><span class="linenos">684</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-685"><a href="#TSQL-685"><span class="linenos">685</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
-</span><span id="TSQL-686"><a href="#TSQL-686"><span class="linenos">686</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-687"><a href="#TSQL-687"><span class="linenos">687</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
-</span><span id="TSQL-688"><a href="#TSQL-688"><span class="linenos">688</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="TSQL-689"><a href="#TSQL-689"><span class="linenos">689</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
-</span><span id="TSQL-690"><a href="#TSQL-690"><span class="linenos">690</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="TSQL-691"><a href="#TSQL-691"><span class="linenos">691</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
-</span><span id="TSQL-692"><a href="#TSQL-692"><span class="linenos">692</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-693"><a href="#TSQL-693"><span class="linenos">693</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="TSQL-694"><a href="#TSQL-694"><span class="linenos">694</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
-</span><span id="TSQL-695"><a href="#TSQL-695"><span class="linenos">695</span></a>
-</span><span id="TSQL-696"><a href="#TSQL-696"><span class="linenos">696</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-697"><a href="#TSQL-697"><span class="linenos">697</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-698"><a href="#TSQL-698"><span class="linenos">698</span></a>
-</span><span id="TSQL-699"><a href="#TSQL-699"><span class="linenos">699</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-700"><a href="#TSQL-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
-</span><span id="TSQL-701"><a href="#TSQL-701"><span class="linenos">701</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-702"><a href="#TSQL-702"><span class="linenos">702</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-703"><a href="#TSQL-703"><span class="linenos">703</span></a>
-</span><span id="TSQL-704"><a href="#TSQL-704"><span class="linenos">704</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-705"><a href="#TSQL-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
-</span><span id="TSQL-706"><a href="#TSQL-706"><span class="linenos">706</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-707"><a href="#TSQL-707"><span class="linenos">707</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-708"><a href="#TSQL-708"><span class="linenos">708</span></a>
-</span><span id="TSQL-709"><a href="#TSQL-709"><span class="linenos">709</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-710"><a href="#TSQL-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">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL-711"><a href="#TSQL-711"><span class="linenos">711</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-712"><a href="#TSQL-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
-</span><span id="TSQL-713"><a href="#TSQL-713"><span class="linenos">713</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-714"><a href="#TSQL-714"><span class="linenos">714</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-715"><a href="#TSQL-715"><span class="linenos">715</span></a>
-</span><span id="TSQL-716"><a href="#TSQL-716"><span class="linenos">716</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-717"><a href="#TSQL-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL-718"><a href="#TSQL-718"><span class="linenos">718</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-719"><a href="#TSQL-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
-</span><span id="TSQL-720"><a href="#TSQL-720"><span class="linenos">720</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="TSQL-721"><a href="#TSQL-721"><span class="linenos">721</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="TSQL-722"><a href="#TSQL-722"><span class="linenos">722</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="TSQL-723"><a href="#TSQL-723"><span class="linenos">723</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-724"><a href="#TSQL-724"><span class="linenos">724</span></a> <span class="p">)</span>
-</span><span id="TSQL-725"><a href="#TSQL-725"><span class="linenos">725</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-726"><a href="#TSQL-726"><span class="linenos">726</span></a>
-</span><span id="TSQL-727"><a href="#TSQL-727"><span class="linenos">727</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-728"><a href="#TSQL-728"><span class="linenos">728</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL-729"><a href="#TSQL-729"><span class="linenos">729</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL-730"><a href="#TSQL-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-731"><a href="#TSQL-731"><span class="linenos">731</span></a>
-</span><span id="TSQL-732"><a href="#TSQL-732"><span class="linenos">732</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-733"><a href="#TSQL-733"><span class="linenos">733</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="TSQL-734"><a href="#TSQL-734"><span class="linenos">734</span></a>
-</span><span id="TSQL-735"><a href="#TSQL-735"><span class="linenos">735</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
-</span><span id="TSQL-736"><a href="#TSQL-736"><span class="linenos">736</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-737"><a href="#TSQL-737"><span class="linenos">737</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
-</span><span id="TSQL-738"><a href="#TSQL-738"><span class="linenos">738</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-739"><a href="#TSQL-739"><span class="linenos">739</span></a>
-</span><span id="TSQL-740"><a href="#TSQL-740"><span class="linenos">740</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="TSQL-741"><a href="#TSQL-741"><span class="linenos">741</span></a>
-</span><span id="TSQL-742"><a href="#TSQL-742"><span class="linenos">742</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-743"><a href="#TSQL-743"><span class="linenos">743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL-744"><a href="#TSQL-744"><span class="linenos">744</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
-</span><span id="TSQL-745"><a href="#TSQL-745"><span class="linenos">745</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL-746"><a href="#TSQL-746"><span class="linenos">746</span></a>
-</span><span id="TSQL-747"><a href="#TSQL-747"><span class="linenos">747</span></a> <span class="c1"># https://learn.microsoft.com/en-us/answers/questions/448821/create-table-in-sql-server</span>
-</span><span id="TSQL-748"><a href="#TSQL-748"><span class="linenos">748</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
-</span><span id="TSQL-749"><a href="#TSQL-749"><span class="linenos">749</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
-</span><span id="TSQL-750"><a href="#TSQL-750"><span class="linenos">750</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL-751"><a href="#TSQL-751"><span class="linenos">751</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="TSQL-752"><a href="#TSQL-752"><span class="linenos">752</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="TSQL-753"><a href="#TSQL-753"><span class="linenos">753</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="TSQL-584"><a href="#TSQL-584"><span class="linenos">584</span></a> <span class="n">LIMIT_IS_TOP</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="TSQL-585"><a href="#TSQL-585"><span class="linenos">585</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL-586"><a href="#TSQL-586"><span class="linenos">586</span></a> <span class="n">RETURNING_END</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL-587"><a href="#TSQL-587"><span class="linenos">587</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL-588"><a href="#TSQL-588"><span class="linenos">588</span></a> <span class="n">ALTER_TABLE_ADD_COLUMN_KEYWORD</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL-589"><a href="#TSQL-589"><span class="linenos">589</span></a> <span class="n">LIMIT_FETCH</span> <span class="o">=</span> <span class="s2">&quot;FETCH&quot;</span>
+</span><span id="TSQL-590"><a href="#TSQL-590"><span class="linenos">590</span></a>
+</span><span id="TSQL-591"><a href="#TSQL-591"><span class="linenos">591</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TSQL-592"><a href="#TSQL-592"><span class="linenos">592</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
+</span><span id="TSQL-593"><a href="#TSQL-593"><span class="linenos">593</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">:</span> <span class="s2">&quot;BIT&quot;</span><span class="p">,</span>
+</span><span id="TSQL-594"><a href="#TSQL-594"><span class="linenos">594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">:</span> <span class="s2">&quot;NUMERIC&quot;</span><span class="p">,</span>
+</span><span id="TSQL-595"><a href="#TSQL-595"><span class="linenos">595</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
+</span><span id="TSQL-596"><a href="#TSQL-596"><span class="linenos">596</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">:</span> <span class="s2">&quot;INTEGER&quot;</span><span class="p">,</span>
+</span><span id="TSQL-597"><a href="#TSQL-597"><span class="linenos">597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
+</span><span id="TSQL-598"><a href="#TSQL-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">&quot;DATETIMEOFFSET&quot;</span><span class="p">,</span>
+</span><span id="TSQL-599"><a href="#TSQL-599"><span class="linenos">599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">:</span> <span class="s2">&quot;SQL_VARIANT&quot;</span><span class="p">,</span>
+</span><span id="TSQL-600"><a href="#TSQL-600"><span class="linenos">600</span></a> <span class="p">}</span>
+</span><span id="TSQL-601"><a href="#TSQL-601"><span class="linenos">601</span></a>
+</span><span id="TSQL-602"><a href="#TSQL-602"><span class="linenos">602</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TSQL-603"><a href="#TSQL-603"><span class="linenos">603</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
+</span><span id="TSQL-604"><a href="#TSQL-604"><span class="linenos">604</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">:</span> <span class="n">any_value_to_max_sql</span><span class="p">,</span>
+</span><span id="TSQL-605"><a href="#TSQL-605"><span class="linenos">605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">&quot;IDENTITY&quot;</span><span class="p">,</span>
+</span><span id="TSQL-606"><a href="#TSQL-606"><span class="linenos">606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
+</span><span id="TSQL-607"><a href="#TSQL-607"><span class="linenos">607</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
+</span><span id="TSQL-608"><a href="#TSQL-608"><span class="linenos">608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
+</span><span id="TSQL-609"><a href="#TSQL-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
+</span><span id="TSQL-610"><a href="#TSQL-610"><span class="linenos">610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;DATEPART&quot;</span><span class="p">),</span>
+</span><span id="TSQL-611"><a href="#TSQL-611"><span class="linenos">611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span>
+</span><span id="TSQL-612"><a href="#TSQL-612"><span class="linenos">612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;IIF&quot;</span><span class="p">),</span>
+</span><span id="TSQL-613"><a href="#TSQL-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Max</span><span class="p">:</span> <span class="n">max_or_greatest</span><span class="p">,</span>
+</span><span id="TSQL-614"><a href="#TSQL-614"><span class="linenos">614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MD5</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;MD5&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
+</span><span id="TSQL-615"><a href="#TSQL-615"><span class="linenos">615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span>
+</span><span id="TSQL-616"><a href="#TSQL-616"><span class="linenos">616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
+</span><span id="TSQL-617"><a href="#TSQL-617"><span class="linenos">617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">([</span><span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">]),</span>
+</span><span id="TSQL-618"><a href="#TSQL-618"><span class="linenos">618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;SHA1&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
+</span><span id="TSQL-619"><a href="#TSQL-619"><span class="linenos">619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span>
+</span><span id="TSQL-620"><a href="#TSQL-620"><span class="linenos">620</span></a> <span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span>
+</span><span id="TSQL-621"><a href="#TSQL-621"><span class="linenos">621</span></a> <span class="n">exp</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="sa">f</span><span class="s2">&quot;SHA2_</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;length&#39;</span><span class="p">,</span><span class="w"> </span><span class="mi">256</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
+</span><span id="TSQL-622"><a href="#TSQL-622"><span class="linenos">622</span></a> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span>
+</span><span id="TSQL-623"><a href="#TSQL-623"><span class="linenos">623</span></a> <span class="p">),</span>
+</span><span id="TSQL-624"><a href="#TSQL-624"><span class="linenos">624</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+</span><span id="TSQL-625"><a href="#TSQL-625"><span class="linenos">625</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span>
+</span><span id="TSQL-626"><a href="#TSQL-626"><span class="linenos">626</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
+</span><span id="TSQL-627"><a href="#TSQL-627"><span class="linenos">627</span></a> <span class="p">}</span>
+</span><span id="TSQL-628"><a href="#TSQL-628"><span class="linenos">628</span></a>
+</span><span id="TSQL-629"><a href="#TSQL-629"><span class="linenos">629</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span>
+</span><span id="TSQL-630"><a href="#TSQL-630"><span class="linenos">630</span></a>
+</span><span id="TSQL-631"><a href="#TSQL-631"><span class="linenos">631</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TSQL-632"><a href="#TSQL-632"><span class="linenos">632</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span>
+</span><span id="TSQL-633"><a href="#TSQL-633"><span class="linenos">633</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatileProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span>
+</span><span id="TSQL-634"><a href="#TSQL-634"><span class="linenos">634</span></a> <span class="p">}</span>
+</span><span id="TSQL-635"><a href="#TSQL-635"><span class="linenos">635</span></a>
+</span><span id="TSQL-636"><a href="#TSQL-636"><span class="linenos">636</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-637"><a href="#TSQL-637"><span class="linenos">637</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
+</span><span id="TSQL-638"><a href="#TSQL-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
+</span><span id="TSQL-639"><a href="#TSQL-639"><span class="linenos">639</span></a>
+</span><span id="TSQL-640"><a href="#TSQL-640"><span class="linenos">640</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
+</span><span id="TSQL-641"><a href="#TSQL-641"><span class="linenos">641</span></a>
+</span><span id="TSQL-642"><a href="#TSQL-642"><span class="linenos">642</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-643"><a href="#TSQL-643"><span class="linenos">643</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
+</span><span id="TSQL-644"><a href="#TSQL-644"><span class="linenos">644</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
+</span><span id="TSQL-645"><a href="#TSQL-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
+</span><span id="TSQL-646"><a href="#TSQL-646"><span class="linenos">646</span></a>
+</span><span id="TSQL-647"><a href="#TSQL-647"><span class="linenos">647</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-648"><a href="#TSQL-648"><span class="linenos">648</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL-649"><a href="#TSQL-649"><span class="linenos">649</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
+</span><span id="TSQL-650"><a href="#TSQL-650"><span class="linenos">650</span></a>
+</span><span id="TSQL-651"><a href="#TSQL-651"><span class="linenos">651</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
+</span><span id="TSQL-652"><a href="#TSQL-652"><span class="linenos">652</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
+</span><span id="TSQL-653"><a href="#TSQL-653"><span class="linenos">653</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
+</span><span id="TSQL-654"><a href="#TSQL-654"><span class="linenos">654</span></a> <span class="p">):</span>
+</span><span id="TSQL-655"><a href="#TSQL-655"><span class="linenos">655</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-656"><a href="#TSQL-656"><span class="linenos">656</span></a>
+</span><span id="TSQL-657"><a href="#TSQL-657"><span class="linenos">657</span></a> <span class="k">return</span> <span class="n">sql</span>
+</span><span id="TSQL-658"><a href="#TSQL-658"><span class="linenos">658</span></a>
+</span><span id="TSQL-659"><a href="#TSQL-659"><span class="linenos">659</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-660"><a href="#TSQL-660"><span class="linenos">660</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="TSQL-661"><a href="#TSQL-661"><span class="linenos">661</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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="TSQL-662"><a href="#TSQL-662"><span class="linenos">662</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="TSQL-663"><a href="#TSQL-663"><span class="linenos">663</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="TSQL-664"><a href="#TSQL-664"><span class="linenos">664</span></a>
+</span><span id="TSQL-665"><a href="#TSQL-665"><span class="linenos">665</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
+</span><span id="TSQL-666"><a href="#TSQL-666"><span class="linenos">666</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="TSQL-667"><a href="#TSQL-667"><span class="linenos">667</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
+</span><span id="TSQL-668"><a href="#TSQL-668"><span class="linenos">668</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
+</span><span id="TSQL-669"><a href="#TSQL-669"><span class="linenos">669</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL-670"><a href="#TSQL-670"><span class="linenos">670</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
+</span><span id="TSQL-671"><a href="#TSQL-671"><span class="linenos">671</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL-672"><a href="#TSQL-672"><span class="linenos">672</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
+</span><span id="TSQL-673"><a href="#TSQL-673"><span class="linenos">673</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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="TSQL-674"><a href="#TSQL-674"><span class="linenos">674</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL-675"><a href="#TSQL-675"><span class="linenos">675</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
+</span><span id="TSQL-676"><a href="#TSQL-676"><span class="linenos">676</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+</span><span id="TSQL-677"><a href="#TSQL-677"><span class="linenos">677</span></a>
+</span><span id="TSQL-678"><a href="#TSQL-678"><span class="linenos">678</span></a> <span class="k">return</span> <span class="n">sql</span>
+</span><span id="TSQL-679"><a href="#TSQL-679"><span class="linenos">679</span></a>
+</span><span id="TSQL-680"><a href="#TSQL-680"><span class="linenos">680</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-681"><a href="#TSQL-681"><span class="linenos">681</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
+</span><span id="TSQL-682"><a href="#TSQL-682"><span class="linenos">682</span></a>
+</span><span id="TSQL-683"><a href="#TSQL-683"><span class="linenos">683</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-684"><a href="#TSQL-684"><span class="linenos">684</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+</span><span id="TSQL-685"><a href="#TSQL-685"><span class="linenos">685</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-686"><a href="#TSQL-686"><span class="linenos">686</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
+</span><span id="TSQL-687"><a href="#TSQL-687"><span class="linenos">687</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="TSQL-688"><a href="#TSQL-688"><span class="linenos">688</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
+</span><span id="TSQL-689"><a href="#TSQL-689"><span class="linenos">689</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="TSQL-690"><a href="#TSQL-690"><span class="linenos">690</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
+</span><span id="TSQL-691"><a href="#TSQL-691"><span class="linenos">691</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-692"><a href="#TSQL-692"><span class="linenos">692</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="TSQL-693"><a href="#TSQL-693"><span class="linenos">693</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
+</span><span id="TSQL-694"><a href="#TSQL-694"><span class="linenos">694</span></a>
+</span><span id="TSQL-695"><a href="#TSQL-695"><span class="linenos">695</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-696"><a href="#TSQL-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-697"><a href="#TSQL-697"><span class="linenos">697</span></a>
+</span><span id="TSQL-698"><a href="#TSQL-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-699"><a href="#TSQL-699"><span class="linenos">699</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
+</span><span id="TSQL-700"><a href="#TSQL-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-701"><a href="#TSQL-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-702"><a href="#TSQL-702"><span class="linenos">702</span></a>
+</span><span id="TSQL-703"><a href="#TSQL-703"><span class="linenos">703</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-704"><a href="#TSQL-704"><span class="linenos">704</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
+</span><span id="TSQL-705"><a href="#TSQL-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-706"><a href="#TSQL-706"><span class="linenos">706</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-707"><a href="#TSQL-707"><span class="linenos">707</span></a>
+</span><span id="TSQL-708"><a href="#TSQL-708"><span class="linenos">708</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-709"><a href="#TSQL-709"><span class="linenos">709</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL-710"><a href="#TSQL-710"><span class="linenos">710</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-711"><a href="#TSQL-711"><span class="linenos">711</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
+</span><span id="TSQL-712"><a href="#TSQL-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-713"><a href="#TSQL-713"><span class="linenos">713</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-714"><a href="#TSQL-714"><span class="linenos">714</span></a>
+</span><span id="TSQL-715"><a href="#TSQL-715"><span class="linenos">715</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-716"><a href="#TSQL-716"><span class="linenos">716</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL-717"><a href="#TSQL-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-718"><a href="#TSQL-718"><span class="linenos">718</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
+</span><span id="TSQL-719"><a href="#TSQL-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="TSQL-720"><a href="#TSQL-720"><span class="linenos">720</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="TSQL-721"><a href="#TSQL-721"><span class="linenos">721</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="TSQL-722"><a href="#TSQL-722"><span class="linenos">722</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-723"><a href="#TSQL-723"><span class="linenos">723</span></a> <span class="p">)</span>
+</span><span id="TSQL-724"><a href="#TSQL-724"><span class="linenos">724</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-725"><a href="#TSQL-725"><span class="linenos">725</span></a>
+</span><span id="TSQL-726"><a href="#TSQL-726"><span class="linenos">726</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-727"><a href="#TSQL-727"><span class="linenos">727</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL-728"><a href="#TSQL-728"><span class="linenos">728</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL-729"><a href="#TSQL-729"><span class="linenos">729</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-730"><a href="#TSQL-730"><span class="linenos">730</span></a>
+</span><span id="TSQL-731"><a href="#TSQL-731"><span class="linenos">731</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-732"><a href="#TSQL-732"><span class="linenos">732</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="TSQL-733"><a href="#TSQL-733"><span class="linenos">733</span></a>
+</span><span id="TSQL-734"><a href="#TSQL-734"><span class="linenos">734</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
+</span><span id="TSQL-735"><a href="#TSQL-735"><span class="linenos">735</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-736"><a href="#TSQL-736"><span class="linenos">736</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
+</span><span id="TSQL-737"><a href="#TSQL-737"><span class="linenos">737</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-738"><a href="#TSQL-738"><span class="linenos">738</span></a>
+</span><span id="TSQL-739"><a href="#TSQL-739"><span class="linenos">739</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="TSQL-740"><a href="#TSQL-740"><span class="linenos">740</span></a>
+</span><span id="TSQL-741"><a href="#TSQL-741"><span class="linenos">741</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-742"><a href="#TSQL-742"><span class="linenos">742</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL-743"><a href="#TSQL-743"><span class="linenos">743</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
+</span><span id="TSQL-744"><a href="#TSQL-744"><span class="linenos">744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL-745"><a href="#TSQL-745"><span class="linenos">745</span></a>
+</span><span id="TSQL-746"><a href="#TSQL-746"><span class="linenos">746</span></a> <span class="c1"># https://learn.microsoft.com/en-us/answers/questions/448821/create-table-in-sql-server</span>
+</span><span id="TSQL-747"><a href="#TSQL-747"><span class="linenos">747</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
+</span><span id="TSQL-748"><a href="#TSQL-748"><span class="linenos">748</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
+</span><span id="TSQL-749"><a href="#TSQL-749"><span class="linenos">749</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL-750"><a href="#TSQL-750"><span class="linenos">750</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="TSQL-751"><a href="#TSQL-751"><span class="linenos">751</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="TSQL-752"><a href="#TSQL-752"><span class="linenos">752</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
</span></pre></div>
@@ -2056,6 +2051,7 @@
<dd id="TSQL.IDENTIFIERS_CAN_START_WITH_DIGIT" class="variable"><a href="dialect.html#Dialect.IDENTIFIERS_CAN_START_WITH_DIGIT">IDENTIFIERS_CAN_START_WITH_DIGIT</a></dd>
<dd id="TSQL.DPIPE_IS_STRING_CONCAT" class="variable"><a href="dialect.html#Dialect.DPIPE_IS_STRING_CONCAT">DPIPE_IS_STRING_CONCAT</a></dd>
<dd id="TSQL.STRICT_STRING_CONCAT" class="variable"><a href="dialect.html#Dialect.STRICT_STRING_CONCAT">STRICT_STRING_CONCAT</a></dd>
+ <dd id="TSQL.SUPPORTS_USER_DEFINED_TYPES" class="variable"><a href="dialect.html#Dialect.SUPPORTS_USER_DEFINED_TYPES">SUPPORTS_USER_DEFINED_TYPES</a></dd>
<dd id="TSQL.NORMALIZE_FUNCTIONS" class="variable"><a href="dialect.html#Dialect.NORMALIZE_FUNCTIONS">NORMALIZE_FUNCTIONS</a></dd>
<dd id="TSQL.DATE_FORMAT" class="variable"><a href="dialect.html#Dialect.DATE_FORMAT">DATE_FORMAT</a></dd>
<dd id="TSQL.DATEINT_FORMAT" class="variable"><a href="dialect.html#Dialect.DATEINT_FORMAT">DATEINT_FORMAT</a></dd>
@@ -2485,7 +2481,7 @@ Default: 3</li>
<div id="TSQL.Parser.JOIN_HINTS" class="classattr">
<div class="attr variable">
<span class="name">JOIN_HINTS</span> =
-<span class="default_value">{&#39;LOOP&#39;, &#39;MERGE&#39;, &#39;HASH&#39;, &#39;REMOTE&#39;}</span>
+<span class="default_value">{&#39;HASH&#39;, &#39;MERGE&#39;, &#39;LOOP&#39;, &#39;REMOTE&#39;}</span>
</div>
@@ -2510,7 +2506,7 @@ Default: 3</li>
<div class="attr variable">
<span class="name">RETURNS_TABLE_TOKENS</span> =
<input id="TSQL.Parser.RETURNS_TABLE_TOKENS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="TSQL.Parser.RETURNS_TABLE_TOKENS-view-value"></label><span class="default_value">{&lt;TokenType.CURRENT_TIMESTAMP: &#39;CURRENT_TIMESTAMP&#39;&gt;, &lt;TokenType.SET: &#39;SET&#39;&gt;, &lt;TokenType.DIV: &#39;DIV&#39;&gt;, &lt;TokenType.PERCENT: &#39;PERCENT&#39;&gt;, &lt;TokenType.ISNULL: &#39;ISNULL&#39;&gt;, &lt;TokenType.OVERWRITE: &#39;OVERWRITE&#39;&gt;, &lt;TokenType.PRAGMA: &#39;PRAGMA&#39;&gt;, &lt;TokenType.MERGE: &#39;MERGE&#39;&gt;, &lt;TokenType.TRUE: &#39;TRUE&#39;&gt;, &lt;TokenType.VAR: &#39;VAR&#39;&gt;, &lt;TokenType.IS: &#39;IS&#39;&gt;, &lt;TokenType.RIGHT: &#39;RIGHT&#39;&gt;, &lt;TokenType.CURRENT_TIME: &#39;CURRENT_TIME&#39;&gt;, &lt;TokenType.SEMI: &#39;SEMI&#39;&gt;, &lt;TokenType.SOME: &#39;SOME&#39;&gt;, &lt;TokenType.UPDATE: &#39;UPDATE&#39;&gt;, &lt;TokenType.ROWS: &#39;ROWS&#39;&gt;, &lt;TokenType.CASE: &#39;CASE&#39;&gt;, &lt;TokenType.COMMAND: &#39;COMMAND&#39;&gt;, &lt;TokenType.ROW: &#39;ROW&#39;&gt;, &lt;TokenType.END: &#39;END&#39;&gt;, &lt;TokenType.ALL: &#39;ALL&#39;&gt;, &lt;TokenType.FILTER: &#39;FILTER&#39;&gt;, &lt;TokenType.SCHEMA: &#39;SCHEMA&#39;&gt;, &lt;TokenType.DESC: &#39;DESC&#39;&gt;, &lt;TokenType.FIRST: &#39;FIRST&#39;&gt;, &lt;TokenType.ANTI: &#39;ANTI&#39;&gt;, &lt;TokenType.ESCAPE: &#39;ESCAPE&#39;&gt;, &lt;TokenType.DESCRIBE: &#39;DESCRIBE&#39;&gt;, &lt;TokenType.EXISTS: &#39;EXISTS&#39;&gt;, &lt;TokenType.LEFT: &#39;LEFT&#39;&gt;, &lt;TokenType.COLUMN: &#39;COLUMN&#39;&gt;, &lt;TokenType.APPLY: &#39;APPLY&#39;&gt;, &lt;TokenType.EXECUTE: &#39;EXECUTE&#39;&gt;, &lt;TokenType.FALSE: &#39;FALSE&#39;&gt;, &lt;TokenType.OFFSET: &#39;OFFSET&#39;&gt;, &lt;TokenType.KEEP: &#39;KEEP&#39;&gt;, &lt;TokenType.ANY: &#39;ANY&#39;&gt;, &lt;TokenType.RANGE: &#39;RANGE&#39;&gt;, &lt;TokenType.UNPIVOT: &#39;UNPIVOT&#39;&gt;, &lt;TokenType.PARTITION: &#39;PARTITION&#39;&gt;, &lt;TokenType.CURRENT_DATE: &#39;CURRENT_DATE&#39;&gt;, &lt;TokenType.LOAD: &#39;LOAD&#39;&gt;, &lt;TokenType.CACHE: &#39;CACHE&#39;&gt;, &lt;TokenType.CURRENT_USER: &#39;CURRENT_USER&#39;&gt;, &lt;TokenType.SHOW: &#39;SHOW&#39;&gt;, &lt;TokenType.DATABASE: &#39;DATABASE&#39;&gt;, &lt;TokenType.COMMENT: &#39;COMMENT&#39;&gt;, &lt;TokenType.ASC: &#39;ASC&#39;&gt;, &lt;TokenType.SETTINGS: &#39;SETTINGS&#39;&gt;, &lt;TokenType.TOP: &#39;TOP&#39;&gt;, &lt;TokenType.BEGIN: &#39;BEGIN&#39;&gt;, &lt;TokenType.CONSTRAINT: &#39;CONSTRAINT&#39;&gt;, &lt;TokenType.FORMAT: &#39;FORMAT&#39;&gt;, &lt;TokenType.DEFAULT: &#39;DEFAULT&#39;&gt;, &lt;TokenType.FUNCTION: &#39;FUNCTION&#39;&gt;, &lt;TokenType.ORDINALITY: &#39;ORDINALITY&#39;&gt;, &lt;TokenType.TEMPORARY: &#39;TEMPORARY&#39;&gt;, &lt;TokenType.COMMIT: &#39;COMMIT&#39;&gt;, &lt;TokenType.COLLATE: &#39;COLLATE&#39;&gt;, &lt;TokenType.NEXT: &#39;NEXT&#39;&gt;, &lt;TokenType.DELETE: &#39;DELETE&#39;&gt;, &lt;TokenType.PROCEDURE: &#39;PROCEDURE&#39;&gt;, &lt;TokenType.AUTO_INCREMENT: &#39;AUTO_INCREMENT&#39;&gt;, &lt;TokenType.REFERENCES: &#39;REFERENCES&#39;&gt;, &lt;TokenType.NATURAL: &#39;NATURAL&#39;&gt;, &lt;TokenType.VIEW: &#39;VIEW&#39;&gt;, &lt;TokenType.INDEX: &#39;INDEX&#39;&gt;, &lt;TokenType.UNIQUE: &#39;UNIQUE&#39;&gt;, &lt;TokenType.DICTIONARY: &#39;DICTIONARY&#39;&gt;, &lt;TokenType.WINDOW: &#39;WINDOW&#39;&gt;, &lt;TokenType.CURRENT_DATETIME: &#39;CURRENT_DATETIME&#39;&gt;, &lt;TokenType.VOLATILE: &#39;VOLATILE&#39;&gt;, &lt;TokenType.PIVOT: &#39;PIVOT&#39;&gt;, &lt;TokenType.FULL: &#39;FULL&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="TSQL.Parser.RETURNS_TABLE_TOKENS-view-value"></label><span class="default_value">{&lt;TokenType.TRUE: &#39;TRUE&#39;&gt;, &lt;TokenType.FUNCTION: &#39;FUNCTION&#39;&gt;, &lt;TokenType.UPDATE: &#39;UPDATE&#39;&gt;, &lt;TokenType.COMMIT: &#39;COMMIT&#39;&gt;, &lt;TokenType.NATURAL: &#39;NATURAL&#39;&gt;, &lt;TokenType.DESCRIBE: &#39;DESCRIBE&#39;&gt;, &lt;TokenType.RANGE: &#39;RANGE&#39;&gt;, &lt;TokenType.COLUMN: &#39;COLUMN&#39;&gt;, &lt;TokenType.DEFAULT: &#39;DEFAULT&#39;&gt;, &lt;TokenType.RIGHT: &#39;RIGHT&#39;&gt;, &lt;TokenType.PROCEDURE: &#39;PROCEDURE&#39;&gt;, &lt;TokenType.ROWS: &#39;ROWS&#39;&gt;, &lt;TokenType.CURRENT_TIME: &#39;CURRENT_TIME&#39;&gt;, &lt;TokenType.CONSTRAINT: &#39;CONSTRAINT&#39;&gt;, &lt;TokenType.ALL: &#39;ALL&#39;&gt;, &lt;TokenType.COMMAND: &#39;COMMAND&#39;&gt;, &lt;TokenType.SCHEMA: &#39;SCHEMA&#39;&gt;, &lt;TokenType.FIRST: &#39;FIRST&#39;&gt;, &lt;TokenType.DICTIONARY: &#39;DICTIONARY&#39;&gt;, &lt;TokenType.SETTINGS: &#39;SETTINGS&#39;&gt;, &lt;TokenType.ANY: &#39;ANY&#39;&gt;, &lt;TokenType.ISNULL: &#39;ISNULL&#39;&gt;, &lt;TokenType.UNPIVOT: &#39;UNPIVOT&#39;&gt;, &lt;TokenType.BEGIN: &#39;BEGIN&#39;&gt;, &lt;TokenType.DIV: &#39;DIV&#39;&gt;, &lt;TokenType.CURRENT_DATETIME: &#39;CURRENT_DATETIME&#39;&gt;, &lt;TokenType.WINDOW: &#39;WINDOW&#39;&gt;, &lt;TokenType.ANTI: &#39;ANTI&#39;&gt;, &lt;TokenType.CURRENT_DATE: &#39;CURRENT_DATE&#39;&gt;, &lt;TokenType.DESC: &#39;DESC&#39;&gt;, &lt;TokenType.FORMAT: &#39;FORMAT&#39;&gt;, &lt;TokenType.CURRENT_TIMESTAMP: &#39;CURRENT_TIMESTAMP&#39;&gt;, &lt;TokenType.ORDINALITY: &#39;ORDINALITY&#39;&gt;, &lt;TokenType.SHOW: &#39;SHOW&#39;&gt;, &lt;TokenType.END: &#39;END&#39;&gt;, &lt;TokenType.OFFSET: &#39;OFFSET&#39;&gt;, &lt;TokenType.REFERENCES: &#39;REFERENCES&#39;&gt;, &lt;TokenType.SOME: &#39;SOME&#39;&gt;, &lt;TokenType.PERCENT: &#39;PERCENT&#39;&gt;, &lt;TokenType.COLLATE: &#39;COLLATE&#39;&gt;, &lt;TokenType.VAR: &#39;VAR&#39;&gt;, &lt;TokenType.CACHE: &#39;CACHE&#39;&gt;, &lt;TokenType.EXISTS: &#39;EXISTS&#39;&gt;, &lt;TokenType.VIEW: &#39;VIEW&#39;&gt;, &lt;TokenType.FALSE: &#39;FALSE&#39;&gt;, &lt;TokenType.FILTER: &#39;FILTER&#39;&gt;, &lt;TokenType.COMMENT: &#39;COMMENT&#39;&gt;, &lt;TokenType.MERGE: &#39;MERGE&#39;&gt;, &lt;TokenType.PRAGMA: &#39;PRAGMA&#39;&gt;, &lt;TokenType.VOLATILE: &#39;VOLATILE&#39;&gt;, &lt;TokenType.KEEP: &#39;KEEP&#39;&gt;, &lt;TokenType.TOP: &#39;TOP&#39;&gt;, &lt;TokenType.SET: &#39;SET&#39;&gt;, &lt;TokenType.DATABASE: &#39;DATABASE&#39;&gt;, &lt;TokenType.LOAD: &#39;LOAD&#39;&gt;, &lt;TokenType.LEFT: &#39;LEFT&#39;&gt;, &lt;TokenType.AUTO_INCREMENT: &#39;AUTO_INCREMENT&#39;&gt;, &lt;TokenType.CURRENT_USER: &#39;CURRENT_USER&#39;&gt;, &lt;TokenType.INDEX: &#39;INDEX&#39;&gt;, &lt;TokenType.SEMI: &#39;SEMI&#39;&gt;, &lt;TokenType.IS: &#39;IS&#39;&gt;, &lt;TokenType.OVERWRITE: &#39;OVERWRITE&#39;&gt;, &lt;TokenType.ASC: &#39;ASC&#39;&gt;, &lt;TokenType.EXECUTE: &#39;EXECUTE&#39;&gt;, &lt;TokenType.CASE: &#39;CASE&#39;&gt;, &lt;TokenType.UNIQUE: &#39;UNIQUE&#39;&gt;, &lt;TokenType.ESCAPE: &#39;ESCAPE&#39;&gt;, &lt;TokenType.APPLY: &#39;APPLY&#39;&gt;, &lt;TokenType.DELETE: &#39;DELETE&#39;&gt;, &lt;TokenType.ROW: &#39;ROW&#39;&gt;, &lt;TokenType.PARTITION: &#39;PARTITION&#39;&gt;, &lt;TokenType.NEXT: &#39;NEXT&#39;&gt;, &lt;TokenType.TEMPORARY: &#39;TEMPORARY&#39;&gt;, &lt;TokenType.PIVOT: &#39;PIVOT&#39;&gt;, &lt;TokenType.FULL: &#39;FULL&#39;&gt;}</span>
</div>
@@ -2731,17 +2727,18 @@ Default: 3</li>
<dd id="TSQL.Parser.WINDOW_ALIAS_TOKENS" class="variable"><a href="../parser.html#Parser.WINDOW_ALIAS_TOKENS">WINDOW_ALIAS_TOKENS</a></dd>
<dd id="TSQL.Parser.WINDOW_BEFORE_PAREN_TOKENS" class="variable"><a href="../parser.html#Parser.WINDOW_BEFORE_PAREN_TOKENS">WINDOW_BEFORE_PAREN_TOKENS</a></dd>
<dd id="TSQL.Parser.WINDOW_SIDES" class="variable"><a href="../parser.html#Parser.WINDOW_SIDES">WINDOW_SIDES</a></dd>
+ <dd id="TSQL.Parser.FETCH_TOKENS" class="variable"><a href="../parser.html#Parser.FETCH_TOKENS">FETCH_TOKENS</a></dd>
<dd id="TSQL.Parser.ADD_CONSTRAINT_TOKENS" class="variable"><a href="../parser.html#Parser.ADD_CONSTRAINT_TOKENS">ADD_CONSTRAINT_TOKENS</a></dd>
<dd id="TSQL.Parser.DISTINCT_TOKENS" class="variable"><a href="../parser.html#Parser.DISTINCT_TOKENS">DISTINCT_TOKENS</a></dd>
<dd id="TSQL.Parser.STRICT_CAST" class="variable"><a href="../parser.html#Parser.STRICT_CAST">STRICT_CAST</a></dd>
<dd id="TSQL.Parser.PREFIXED_PIVOT_COLUMNS" class="variable"><a href="../parser.html#Parser.PREFIXED_PIVOT_COLUMNS">PREFIXED_PIVOT_COLUMNS</a></dd>
<dd id="TSQL.Parser.IDENTIFY_PIVOT_STRINGS" class="variable"><a href="../parser.html#Parser.IDENTIFY_PIVOT_STRINGS">IDENTIFY_PIVOT_STRINGS</a></dd>
- <dd id="TSQL.Parser.SUPPORTS_USER_DEFINED_TYPES" class="variable"><a href="../parser.html#Parser.SUPPORTS_USER_DEFINED_TYPES">SUPPORTS_USER_DEFINED_TYPES</a></dd>
<dd id="TSQL.Parser.TABLESAMPLE_CSV" class="variable"><a href="../parser.html#Parser.TABLESAMPLE_CSV">TABLESAMPLE_CSV</a></dd>
<dd id="TSQL.Parser.INDEX_OFFSET" class="variable"><a href="../parser.html#Parser.INDEX_OFFSET">INDEX_OFFSET</a></dd>
<dd id="TSQL.Parser.UNNEST_COLUMN_ONLY" class="variable"><a href="../parser.html#Parser.UNNEST_COLUMN_ONLY">UNNEST_COLUMN_ONLY</a></dd>
<dd id="TSQL.Parser.ALIAS_POST_TABLESAMPLE" class="variable"><a href="../parser.html#Parser.ALIAS_POST_TABLESAMPLE">ALIAS_POST_TABLESAMPLE</a></dd>
<dd id="TSQL.Parser.STRICT_STRING_CONCAT" class="variable"><a href="../parser.html#Parser.STRICT_STRING_CONCAT">STRICT_STRING_CONCAT</a></dd>
+ <dd id="TSQL.Parser.SUPPORTS_USER_DEFINED_TYPES" class="variable"><a href="../parser.html#Parser.SUPPORTS_USER_DEFINED_TYPES">SUPPORTS_USER_DEFINED_TYPES</a></dd>
<dd id="TSQL.Parser.NORMALIZE_FUNCTIONS" class="variable"><a href="../parser.html#Parser.NORMALIZE_FUNCTIONS">NORMALIZE_FUNCTIONS</a></dd>
<dd id="TSQL.Parser.FORMAT_MAPPING" class="variable"><a href="../parser.html#Parser.FORMAT_MAPPING">FORMAT_MAPPING</a></dd>
<dd id="TSQL.Parser.error_level" class="variable"><a href="../parser.html#Parser.error_level">error_level</a></dd>
@@ -2773,176 +2770,175 @@ Default: 3</li>
</div>
<a class="headerlink" href="#TSQL.Generator"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator-583"><a href="#TSQL.Generator-583"><span class="linenos">583</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
-</span><span id="TSQL.Generator-584"><a href="#TSQL.Generator-584"><span class="linenos">584</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="TSQL.Generator-585"><a href="#TSQL.Generator-585"><span class="linenos">585</span></a> <span class="n">LIMIT_IS_TOP</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="TSQL.Generator-586"><a href="#TSQL.Generator-586"><span class="linenos">586</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL.Generator-587"><a href="#TSQL.Generator-587"><span class="linenos">587</span></a> <span class="n">RETURNING_END</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL.Generator-588"><a href="#TSQL.Generator-588"><span class="linenos">588</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL.Generator-589"><a href="#TSQL.Generator-589"><span class="linenos">589</span></a> <span class="n">ALTER_TABLE_ADD_COLUMN_KEYWORD</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="TSQL.Generator-590"><a href="#TSQL.Generator-590"><span class="linenos">590</span></a> <span class="n">LIMIT_FETCH</span> <span class="o">=</span> <span class="s2">&quot;FETCH&quot;</span>
-</span><span id="TSQL.Generator-591"><a href="#TSQL.Generator-591"><span class="linenos">591</span></a>
-</span><span id="TSQL.Generator-592"><a href="#TSQL.Generator-592"><span class="linenos">592</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TSQL.Generator-593"><a href="#TSQL.Generator-593"><span class="linenos">593</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
-</span><span id="TSQL.Generator-594"><a href="#TSQL.Generator-594"><span class="linenos">594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">:</span> <span class="s2">&quot;BIT&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-595"><a href="#TSQL.Generator-595"><span class="linenos">595</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">:</span> <span class="s2">&quot;NUMERIC&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-596"><a href="#TSQL.Generator-596"><span class="linenos">596</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-597"><a href="#TSQL.Generator-597"><span class="linenos">597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">:</span> <span class="s2">&quot;INTEGER&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-598"><a href="#TSQL.Generator-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-599"><a href="#TSQL.Generator-599"><span class="linenos">599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">&quot;DATETIMEOFFSET&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-600"><a href="#TSQL.Generator-600"><span class="linenos">600</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">:</span> <span class="s2">&quot;SQL_VARIANT&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-601"><a href="#TSQL.Generator-601"><span class="linenos">601</span></a> <span class="p">}</span>
-</span><span id="TSQL.Generator-602"><a href="#TSQL.Generator-602"><span class="linenos">602</span></a>
-</span><span id="TSQL.Generator-603"><a href="#TSQL.Generator-603"><span class="linenos">603</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TSQL.Generator-604"><a href="#TSQL.Generator-604"><span class="linenos">604</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
-</span><span id="TSQL.Generator-605"><a href="#TSQL.Generator-605"><span class="linenos">605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">:</span> <span class="n">any_value_to_max_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-606"><a href="#TSQL.Generator-606"><span class="linenos">606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">&quot;IDENTITY&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-607"><a href="#TSQL.Generator-607"><span class="linenos">607</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-608"><a href="#TSQL.Generator-608"><span class="linenos">608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-609"><a href="#TSQL.Generator-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
-</span><span id="TSQL.Generator-610"><a href="#TSQL.Generator-610"><span class="linenos">610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
-</span><span id="TSQL.Generator-611"><a href="#TSQL.Generator-611"><span class="linenos">611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;DATEPART&quot;</span><span class="p">),</span>
-</span><span id="TSQL.Generator-612"><a href="#TSQL.Generator-612"><span class="linenos">612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-613"><a href="#TSQL.Generator-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;IIF&quot;</span><span class="p">),</span>
-</span><span id="TSQL.Generator-614"><a href="#TSQL.Generator-614"><span class="linenos">614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Max</span><span class="p">:</span> <span class="n">max_or_greatest</span><span class="p">,</span>
-</span><span id="TSQL.Generator-615"><a href="#TSQL.Generator-615"><span class="linenos">615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MD5</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;MD5&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
-</span><span id="TSQL.Generator-616"><a href="#TSQL.Generator-616"><span class="linenos">616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span>
-</span><span id="TSQL.Generator-617"><a href="#TSQL.Generator-617"><span class="linenos">617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-618"><a href="#TSQL.Generator-618"><span class="linenos">618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">([</span><span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">]),</span>
-</span><span id="TSQL.Generator-619"><a href="#TSQL.Generator-619"><span class="linenos">619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;SHA1&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
-</span><span id="TSQL.Generator-620"><a href="#TSQL.Generator-620"><span class="linenos">620</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span>
-</span><span id="TSQL.Generator-621"><a href="#TSQL.Generator-621"><span class="linenos">621</span></a> <span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-622"><a href="#TSQL.Generator-622"><span class="linenos">622</span></a> <span class="n">exp</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="sa">f</span><span class="s2">&quot;SHA2_</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;length&#39;</span><span class="p">,</span><span class="w"> </span><span class="mi">256</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
-</span><span id="TSQL.Generator-623"><a href="#TSQL.Generator-623"><span class="linenos">623</span></a> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span>
-</span><span id="TSQL.Generator-624"><a href="#TSQL.Generator-624"><span class="linenos">624</span></a> <span class="p">),</span>
-</span><span id="TSQL.Generator-625"><a href="#TSQL.Generator-625"><span class="linenos">625</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
-</span><span id="TSQL.Generator-626"><a href="#TSQL.Generator-626"><span class="linenos">626</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-627"><a href="#TSQL.Generator-627"><span class="linenos">627</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
-</span><span id="TSQL.Generator-628"><a href="#TSQL.Generator-628"><span class="linenos">628</span></a> <span class="p">}</span>
-</span><span id="TSQL.Generator-629"><a href="#TSQL.Generator-629"><span class="linenos">629</span></a>
-</span><span id="TSQL.Generator-630"><a href="#TSQL.Generator-630"><span class="linenos">630</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span>
-</span><span id="TSQL.Generator-631"><a href="#TSQL.Generator-631"><span class="linenos">631</span></a>
-</span><span id="TSQL.Generator-632"><a href="#TSQL.Generator-632"><span class="linenos">632</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TSQL.Generator-633"><a href="#TSQL.Generator-633"><span class="linenos">633</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span>
-</span><span id="TSQL.Generator-634"><a href="#TSQL.Generator-634"><span class="linenos">634</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatileProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span>
-</span><span id="TSQL.Generator-635"><a href="#TSQL.Generator-635"><span class="linenos">635</span></a> <span class="p">}</span>
-</span><span id="TSQL.Generator-636"><a href="#TSQL.Generator-636"><span class="linenos">636</span></a>
-</span><span id="TSQL.Generator-637"><a href="#TSQL.Generator-637"><span class="linenos">637</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-638"><a href="#TSQL.Generator-638"><span class="linenos">638</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
-</span><span id="TSQL.Generator-639"><a href="#TSQL.Generator-639"><span class="linenos">639</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
-</span><span id="TSQL.Generator-640"><a href="#TSQL.Generator-640"><span class="linenos">640</span></a>
-</span><span id="TSQL.Generator-641"><a href="#TSQL.Generator-641"><span class="linenos">641</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
-</span><span id="TSQL.Generator-642"><a href="#TSQL.Generator-642"><span class="linenos">642</span></a>
-</span><span id="TSQL.Generator-643"><a href="#TSQL.Generator-643"><span class="linenos">643</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-644"><a href="#TSQL.Generator-644"><span class="linenos">644</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
-</span><span id="TSQL.Generator-645"><a href="#TSQL.Generator-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-646"><a href="#TSQL.Generator-646"><span class="linenos">646</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-647"><a href="#TSQL.Generator-647"><span class="linenos">647</span></a>
-</span><span id="TSQL.Generator-648"><a href="#TSQL.Generator-648"><span class="linenos">648</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-649"><a href="#TSQL.Generator-649"><span class="linenos">649</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-650"><a href="#TSQL.Generator-650"><span class="linenos">650</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-651"><a href="#TSQL.Generator-651"><span class="linenos">651</span></a>
-</span><span id="TSQL.Generator-652"><a href="#TSQL.Generator-652"><span class="linenos">652</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
-</span><span id="TSQL.Generator-653"><a href="#TSQL.Generator-653"><span class="linenos">653</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
-</span><span id="TSQL.Generator-654"><a href="#TSQL.Generator-654"><span class="linenos">654</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
-</span><span id="TSQL.Generator-655"><a href="#TSQL.Generator-655"><span class="linenos">655</span></a> <span class="p">):</span>
-</span><span id="TSQL.Generator-656"><a href="#TSQL.Generator-656"><span class="linenos">656</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-657"><a href="#TSQL.Generator-657"><span class="linenos">657</span></a>
-</span><span id="TSQL.Generator-658"><a href="#TSQL.Generator-658"><span class="linenos">658</span></a> <span class="k">return</span> <span class="n">sql</span>
-</span><span id="TSQL.Generator-659"><a href="#TSQL.Generator-659"><span class="linenos">659</span></a>
-</span><span id="TSQL.Generator-660"><a href="#TSQL.Generator-660"><span class="linenos">660</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-661"><a href="#TSQL.Generator-661"><span class="linenos">661</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="TSQL.Generator-662"><a href="#TSQL.Generator-662"><span class="linenos">662</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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="TSQL.Generator-663"><a href="#TSQL.Generator-663"><span class="linenos">663</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="TSQL.Generator-664"><a href="#TSQL.Generator-664"><span class="linenos">664</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="TSQL.Generator-665"><a href="#TSQL.Generator-665"><span class="linenos">665</span></a>
-</span><span id="TSQL.Generator-666"><a href="#TSQL.Generator-666"><span class="linenos">666</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
-</span><span id="TSQL.Generator-667"><a href="#TSQL.Generator-667"><span class="linenos">667</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="TSQL.Generator-668"><a href="#TSQL.Generator-668"><span class="linenos">668</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
-</span><span id="TSQL.Generator-669"><a href="#TSQL.Generator-669"><span class="linenos">669</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator-670"><a href="#TSQL.Generator-670"><span class="linenos">670</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator-671"><a href="#TSQL.Generator-671"><span class="linenos">671</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator-672"><a href="#TSQL.Generator-672"><span class="linenos">672</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator-673"><a href="#TSQL.Generator-673"><span class="linenos">673</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator-674"><a href="#TSQL.Generator-674"><span class="linenos">674</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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="TSQL.Generator-675"><a href="#TSQL.Generator-675"><span class="linenos">675</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator-676"><a href="#TSQL.Generator-676"><span class="linenos">676</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator-677"><a href="#TSQL.Generator-677"><span class="linenos">677</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="TSQL.Generator-678"><a href="#TSQL.Generator-678"><span class="linenos">678</span></a>
-</span><span id="TSQL.Generator-679"><a href="#TSQL.Generator-679"><span class="linenos">679</span></a> <span class="k">return</span> <span class="n">sql</span>
-</span><span id="TSQL.Generator-680"><a href="#TSQL.Generator-680"><span class="linenos">680</span></a>
-</span><span id="TSQL.Generator-681"><a href="#TSQL.Generator-681"><span class="linenos">681</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-682"><a href="#TSQL.Generator-682"><span class="linenos">682</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
-</span><span id="TSQL.Generator-683"><a href="#TSQL.Generator-683"><span class="linenos">683</span></a>
-</span><span id="TSQL.Generator-684"><a href="#TSQL.Generator-684"><span class="linenos">684</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-685"><a href="#TSQL.Generator-685"><span class="linenos">685</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
-</span><span id="TSQL.Generator-686"><a href="#TSQL.Generator-686"><span class="linenos">686</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-687"><a href="#TSQL.Generator-687"><span class="linenos">687</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
-</span><span id="TSQL.Generator-688"><a href="#TSQL.Generator-688"><span class="linenos">688</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="TSQL.Generator-689"><a href="#TSQL.Generator-689"><span class="linenos">689</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator-690"><a href="#TSQL.Generator-690"><span class="linenos">690</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="TSQL.Generator-691"><a href="#TSQL.Generator-691"><span class="linenos">691</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
-</span><span id="TSQL.Generator-692"><a href="#TSQL.Generator-692"><span class="linenos">692</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-693"><a href="#TSQL.Generator-693"><span class="linenos">693</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="TSQL.Generator-694"><a href="#TSQL.Generator-694"><span class="linenos">694</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
-</span><span id="TSQL.Generator-695"><a href="#TSQL.Generator-695"><span class="linenos">695</span></a>
-</span><span id="TSQL.Generator-696"><a href="#TSQL.Generator-696"><span class="linenos">696</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-697"><a href="#TSQL.Generator-697"><span class="linenos">697</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-698"><a href="#TSQL.Generator-698"><span class="linenos">698</span></a>
-</span><span id="TSQL.Generator-699"><a href="#TSQL.Generator-699"><span class="linenos">699</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-700"><a href="#TSQL.Generator-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-701"><a href="#TSQL.Generator-701"><span class="linenos">701</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-702"><a href="#TSQL.Generator-702"><span class="linenos">702</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-703"><a href="#TSQL.Generator-703"><span class="linenos">703</span></a>
-</span><span id="TSQL.Generator-704"><a href="#TSQL.Generator-704"><span class="linenos">704</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-705"><a href="#TSQL.Generator-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-706"><a href="#TSQL.Generator-706"><span class="linenos">706</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-707"><a href="#TSQL.Generator-707"><span class="linenos">707</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-708"><a href="#TSQL.Generator-708"><span class="linenos">708</span></a>
-</span><span id="TSQL.Generator-709"><a href="#TSQL.Generator-709"><span class="linenos">709</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-710"><a href="#TSQL.Generator-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">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-711"><a href="#TSQL.Generator-711"><span class="linenos">711</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-712"><a href="#TSQL.Generator-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-713"><a href="#TSQL.Generator-713"><span class="linenos">713</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-714"><a href="#TSQL.Generator-714"><span class="linenos">714</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-715"><a href="#TSQL.Generator-715"><span class="linenos">715</span></a>
-</span><span id="TSQL.Generator-716"><a href="#TSQL.Generator-716"><span class="linenos">716</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-717"><a href="#TSQL.Generator-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-718"><a href="#TSQL.Generator-718"><span class="linenos">718</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-719"><a href="#TSQL.Generator-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-720"><a href="#TSQL.Generator-720"><span class="linenos">720</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="TSQL.Generator-721"><a href="#TSQL.Generator-721"><span class="linenos">721</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="TSQL.Generator-722"><a href="#TSQL.Generator-722"><span class="linenos">722</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="TSQL.Generator-723"><a href="#TSQL.Generator-723"><span class="linenos">723</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-724"><a href="#TSQL.Generator-724"><span class="linenos">724</span></a> <span class="p">)</span>
-</span><span id="TSQL.Generator-725"><a href="#TSQL.Generator-725"><span class="linenos">725</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-726"><a href="#TSQL.Generator-726"><span class="linenos">726</span></a>
-</span><span id="TSQL.Generator-727"><a href="#TSQL.Generator-727"><span class="linenos">727</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-728"><a href="#TSQL.Generator-728"><span class="linenos">728</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-729"><a href="#TSQL.Generator-729"><span class="linenos">729</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator-730"><a href="#TSQL.Generator-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-731"><a href="#TSQL.Generator-731"><span class="linenos">731</span></a>
-</span><span id="TSQL.Generator-732"><a href="#TSQL.Generator-732"><span class="linenos">732</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-733"><a href="#TSQL.Generator-733"><span class="linenos">733</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="TSQL.Generator-734"><a href="#TSQL.Generator-734"><span class="linenos">734</span></a>
-</span><span id="TSQL.Generator-735"><a href="#TSQL.Generator-735"><span class="linenos">735</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator-736"><a href="#TSQL.Generator-736"><span class="linenos">736</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-737"><a href="#TSQL.Generator-737"><span class="linenos">737</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator-738"><a href="#TSQL.Generator-738"><span class="linenos">738</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-739"><a href="#TSQL.Generator-739"><span class="linenos">739</span></a>
-</span><span id="TSQL.Generator-740"><a href="#TSQL.Generator-740"><span class="linenos">740</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="TSQL.Generator-741"><a href="#TSQL.Generator-741"><span class="linenos">741</span></a>
-</span><span id="TSQL.Generator-742"><a href="#TSQL.Generator-742"><span class="linenos">742</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-743"><a href="#TSQL.Generator-743"><span class="linenos">743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-744"><a href="#TSQL.Generator-744"><span class="linenos">744</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator-745"><a href="#TSQL.Generator-745"><span class="linenos">745</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator-746"><a href="#TSQL.Generator-746"><span class="linenos">746</span></a>
-</span><span id="TSQL.Generator-747"><a href="#TSQL.Generator-747"><span class="linenos">747</span></a> <span class="c1"># https://learn.microsoft.com/en-us/answers/questions/448821/create-table-in-sql-server</span>
-</span><span id="TSQL.Generator-748"><a href="#TSQL.Generator-748"><span class="linenos">748</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
-</span><span id="TSQL.Generator-749"><a href="#TSQL.Generator-749"><span class="linenos">749</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
-</span><span id="TSQL.Generator-750"><a href="#TSQL.Generator-750"><span class="linenos">750</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator-751"><a href="#TSQL.Generator-751"><span class="linenos">751</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="TSQL.Generator-752"><a href="#TSQL.Generator-752"><span class="linenos">752</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="TSQL.Generator-753"><a href="#TSQL.Generator-753"><span class="linenos">753</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="TSQL.Generator-584"><a href="#TSQL.Generator-584"><span class="linenos">584</span></a> <span class="n">LIMIT_IS_TOP</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="TSQL.Generator-585"><a href="#TSQL.Generator-585"><span class="linenos">585</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL.Generator-586"><a href="#TSQL.Generator-586"><span class="linenos">586</span></a> <span class="n">RETURNING_END</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL.Generator-587"><a href="#TSQL.Generator-587"><span class="linenos">587</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL.Generator-588"><a href="#TSQL.Generator-588"><span class="linenos">588</span></a> <span class="n">ALTER_TABLE_ADD_COLUMN_KEYWORD</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="TSQL.Generator-589"><a href="#TSQL.Generator-589"><span class="linenos">589</span></a> <span class="n">LIMIT_FETCH</span> <span class="o">=</span> <span class="s2">&quot;FETCH&quot;</span>
+</span><span id="TSQL.Generator-590"><a href="#TSQL.Generator-590"><span class="linenos">590</span></a>
+</span><span id="TSQL.Generator-591"><a href="#TSQL.Generator-591"><span class="linenos">591</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TSQL.Generator-592"><a href="#TSQL.Generator-592"><span class="linenos">592</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
+</span><span id="TSQL.Generator-593"><a href="#TSQL.Generator-593"><span class="linenos">593</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">:</span> <span class="s2">&quot;BIT&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-594"><a href="#TSQL.Generator-594"><span class="linenos">594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">:</span> <span class="s2">&quot;NUMERIC&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-595"><a href="#TSQL.Generator-595"><span class="linenos">595</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-596"><a href="#TSQL.Generator-596"><span class="linenos">596</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">:</span> <span class="s2">&quot;INTEGER&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-597"><a href="#TSQL.Generator-597"><span class="linenos">597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> <span class="s2">&quot;DATETIME2&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-598"><a href="#TSQL.Generator-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">&quot;DATETIMEOFFSET&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-599"><a href="#TSQL.Generator-599"><span class="linenos">599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">:</span> <span class="s2">&quot;SQL_VARIANT&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-600"><a href="#TSQL.Generator-600"><span class="linenos">600</span></a> <span class="p">}</span>
+</span><span id="TSQL.Generator-601"><a href="#TSQL.Generator-601"><span class="linenos">601</span></a>
+</span><span id="TSQL.Generator-602"><a href="#TSQL.Generator-602"><span class="linenos">602</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TSQL.Generator-603"><a href="#TSQL.Generator-603"><span class="linenos">603</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
+</span><span id="TSQL.Generator-604"><a href="#TSQL.Generator-604"><span class="linenos">604</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">:</span> <span class="n">any_value_to_max_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-605"><a href="#TSQL.Generator-605"><span class="linenos">605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">&quot;IDENTITY&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-606"><a href="#TSQL.Generator-606"><span class="linenos">606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-607"><a href="#TSQL.Generator-607"><span class="linenos">607</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-608"><a href="#TSQL.Generator-608"><span class="linenos">608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
+</span><span id="TSQL.Generator-609"><a href="#TSQL.Generator-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;GETDATE&quot;</span><span class="p">),</span>
+</span><span id="TSQL.Generator-610"><a href="#TSQL.Generator-610"><span class="linenos">610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;DATEPART&quot;</span><span class="p">),</span>
+</span><span id="TSQL.Generator-611"><a href="#TSQL.Generator-611"><span class="linenos">611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-612"><a href="#TSQL.Generator-612"><span class="linenos">612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">&quot;IIF&quot;</span><span class="p">),</span>
+</span><span id="TSQL.Generator-613"><a href="#TSQL.Generator-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Max</span><span class="p">:</span> <span class="n">max_or_greatest</span><span class="p">,</span>
+</span><span id="TSQL.Generator-614"><a href="#TSQL.Generator-614"><span class="linenos">614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MD5</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;MD5&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
+</span><span id="TSQL.Generator-615"><a href="#TSQL.Generator-615"><span class="linenos">615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span>
+</span><span id="TSQL.Generator-616"><a href="#TSQL.Generator-616"><span class="linenos">616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-617"><a href="#TSQL.Generator-617"><span class="linenos">617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">([</span><span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">]),</span>
+</span><span id="TSQL.Generator-618"><a href="#TSQL.Generator-618"><span class="linenos">618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span> <span class="n">exp</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;SHA1&quot;</span><span class="p">),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
+</span><span id="TSQL.Generator-619"><a href="#TSQL.Generator-619"><span class="linenos">619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span>
+</span><span id="TSQL.Generator-620"><a href="#TSQL.Generator-620"><span class="linenos">620</span></a> <span class="s2">&quot;HASHBYTES&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-621"><a href="#TSQL.Generator-621"><span class="linenos">621</span></a> <span class="n">exp</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="sa">f</span><span class="s2">&quot;SHA2_</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;length&#39;</span><span class="p">,</span><span class="w"> </span><span class="mi">256</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
+</span><span id="TSQL.Generator-622"><a href="#TSQL.Generator-622"><span class="linenos">622</span></a> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span>
+</span><span id="TSQL.Generator-623"><a href="#TSQL.Generator-623"><span class="linenos">623</span></a> <span class="p">),</span>
+</span><span id="TSQL.Generator-624"><a href="#TSQL.Generator-624"><span class="linenos">624</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+</span><span id="TSQL.Generator-625"><a href="#TSQL.Generator-625"><span class="linenos">625</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-626"><a href="#TSQL.Generator-626"><span class="linenos">626</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span>
+</span><span id="TSQL.Generator-627"><a href="#TSQL.Generator-627"><span class="linenos">627</span></a> <span class="p">}</span>
+</span><span id="TSQL.Generator-628"><a href="#TSQL.Generator-628"><span class="linenos">628</span></a>
+</span><span id="TSQL.Generator-629"><a href="#TSQL.Generator-629"><span class="linenos">629</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span>
+</span><span id="TSQL.Generator-630"><a href="#TSQL.Generator-630"><span class="linenos">630</span></a>
+</span><span id="TSQL.Generator-631"><a href="#TSQL.Generator-631"><span class="linenos">631</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TSQL.Generator-632"><a href="#TSQL.Generator-632"><span class="linenos">632</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span>
+</span><span id="TSQL.Generator-633"><a href="#TSQL.Generator-633"><span class="linenos">633</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatileProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span>
+</span><span id="TSQL.Generator-634"><a href="#TSQL.Generator-634"><span class="linenos">634</span></a> <span class="p">}</span>
+</span><span id="TSQL.Generator-635"><a href="#TSQL.Generator-635"><span class="linenos">635</span></a>
+</span><span id="TSQL.Generator-636"><a href="#TSQL.Generator-636"><span class="linenos">636</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-637"><a href="#TSQL.Generator-637"><span class="linenos">637</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
+</span><span id="TSQL.Generator-638"><a href="#TSQL.Generator-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
+</span><span id="TSQL.Generator-639"><a href="#TSQL.Generator-639"><span class="linenos">639</span></a>
+</span><span id="TSQL.Generator-640"><a href="#TSQL.Generator-640"><span class="linenos">640</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
+</span><span id="TSQL.Generator-641"><a href="#TSQL.Generator-641"><span class="linenos">641</span></a>
+</span><span id="TSQL.Generator-642"><a href="#TSQL.Generator-642"><span class="linenos">642</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-643"><a href="#TSQL.Generator-643"><span class="linenos">643</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
+</span><span id="TSQL.Generator-644"><a href="#TSQL.Generator-644"><span class="linenos">644</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-645"><a href="#TSQL.Generator-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-646"><a href="#TSQL.Generator-646"><span class="linenos">646</span></a>
+</span><span id="TSQL.Generator-647"><a href="#TSQL.Generator-647"><span class="linenos">647</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-648"><a href="#TSQL.Generator-648"><span class="linenos">648</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-649"><a href="#TSQL.Generator-649"><span class="linenos">649</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-650"><a href="#TSQL.Generator-650"><span class="linenos">650</span></a>
+</span><span id="TSQL.Generator-651"><a href="#TSQL.Generator-651"><span class="linenos">651</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
+</span><span id="TSQL.Generator-652"><a href="#TSQL.Generator-652"><span class="linenos">652</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
+</span><span id="TSQL.Generator-653"><a href="#TSQL.Generator-653"><span class="linenos">653</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
+</span><span id="TSQL.Generator-654"><a href="#TSQL.Generator-654"><span class="linenos">654</span></a> <span class="p">):</span>
+</span><span id="TSQL.Generator-655"><a href="#TSQL.Generator-655"><span class="linenos">655</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-656"><a href="#TSQL.Generator-656"><span class="linenos">656</span></a>
+</span><span id="TSQL.Generator-657"><a href="#TSQL.Generator-657"><span class="linenos">657</span></a> <span class="k">return</span> <span class="n">sql</span>
+</span><span id="TSQL.Generator-658"><a href="#TSQL.Generator-658"><span class="linenos">658</span></a>
+</span><span id="TSQL.Generator-659"><a href="#TSQL.Generator-659"><span class="linenos">659</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-660"><a href="#TSQL.Generator-660"><span class="linenos">660</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="TSQL.Generator-661"><a href="#TSQL.Generator-661"><span class="linenos">661</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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="TSQL.Generator-662"><a href="#TSQL.Generator-662"><span class="linenos">662</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="TSQL.Generator-663"><a href="#TSQL.Generator-663"><span class="linenos">663</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="TSQL.Generator-664"><a href="#TSQL.Generator-664"><span class="linenos">664</span></a>
+</span><span id="TSQL.Generator-665"><a href="#TSQL.Generator-665"><span class="linenos">665</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
+</span><span id="TSQL.Generator-666"><a href="#TSQL.Generator-666"><span class="linenos">666</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="TSQL.Generator-667"><a href="#TSQL.Generator-667"><span class="linenos">667</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
+</span><span id="TSQL.Generator-668"><a href="#TSQL.Generator-668"><span class="linenos">668</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator-669"><a href="#TSQL.Generator-669"><span class="linenos">669</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator-670"><a href="#TSQL.Generator-670"><span class="linenos">670</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator-671"><a href="#TSQL.Generator-671"><span class="linenos">671</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator-672"><a href="#TSQL.Generator-672"><span class="linenos">672</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator-673"><a href="#TSQL.Generator-673"><span class="linenos">673</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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="TSQL.Generator-674"><a href="#TSQL.Generator-674"><span class="linenos">674</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator-675"><a href="#TSQL.Generator-675"><span class="linenos">675</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator-676"><a href="#TSQL.Generator-676"><span class="linenos">676</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+</span><span id="TSQL.Generator-677"><a href="#TSQL.Generator-677"><span class="linenos">677</span></a>
+</span><span id="TSQL.Generator-678"><a href="#TSQL.Generator-678"><span class="linenos">678</span></a> <span class="k">return</span> <span class="n">sql</span>
+</span><span id="TSQL.Generator-679"><a href="#TSQL.Generator-679"><span class="linenos">679</span></a>
+</span><span id="TSQL.Generator-680"><a href="#TSQL.Generator-680"><span class="linenos">680</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-681"><a href="#TSQL.Generator-681"><span class="linenos">681</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
+</span><span id="TSQL.Generator-682"><a href="#TSQL.Generator-682"><span class="linenos">682</span></a>
+</span><span id="TSQL.Generator-683"><a href="#TSQL.Generator-683"><span class="linenos">683</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-684"><a href="#TSQL.Generator-684"><span class="linenos">684</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+</span><span id="TSQL.Generator-685"><a href="#TSQL.Generator-685"><span class="linenos">685</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-686"><a href="#TSQL.Generator-686"><span class="linenos">686</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
+</span><span id="TSQL.Generator-687"><a href="#TSQL.Generator-687"><span class="linenos">687</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="TSQL.Generator-688"><a href="#TSQL.Generator-688"><span class="linenos">688</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator-689"><a href="#TSQL.Generator-689"><span class="linenos">689</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="TSQL.Generator-690"><a href="#TSQL.Generator-690"><span class="linenos">690</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
+</span><span id="TSQL.Generator-691"><a href="#TSQL.Generator-691"><span class="linenos">691</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-692"><a href="#TSQL.Generator-692"><span class="linenos">692</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="TSQL.Generator-693"><a href="#TSQL.Generator-693"><span class="linenos">693</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
+</span><span id="TSQL.Generator-694"><a href="#TSQL.Generator-694"><span class="linenos">694</span></a>
+</span><span id="TSQL.Generator-695"><a href="#TSQL.Generator-695"><span class="linenos">695</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-696"><a href="#TSQL.Generator-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-697"><a href="#TSQL.Generator-697"><span class="linenos">697</span></a>
+</span><span id="TSQL.Generator-698"><a href="#TSQL.Generator-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-699"><a href="#TSQL.Generator-699"><span class="linenos">699</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-700"><a href="#TSQL.Generator-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-701"><a href="#TSQL.Generator-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-702"><a href="#TSQL.Generator-702"><span class="linenos">702</span></a>
+</span><span id="TSQL.Generator-703"><a href="#TSQL.Generator-703"><span class="linenos">703</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-704"><a href="#TSQL.Generator-704"><span class="linenos">704</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-705"><a href="#TSQL.Generator-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-706"><a href="#TSQL.Generator-706"><span class="linenos">706</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-707"><a href="#TSQL.Generator-707"><span class="linenos">707</span></a>
+</span><span id="TSQL.Generator-708"><a href="#TSQL.Generator-708"><span class="linenos">708</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-709"><a href="#TSQL.Generator-709"><span class="linenos">709</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-710"><a href="#TSQL.Generator-710"><span class="linenos">710</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-711"><a href="#TSQL.Generator-711"><span class="linenos">711</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-712"><a href="#TSQL.Generator-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-713"><a href="#TSQL.Generator-713"><span class="linenos">713</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-714"><a href="#TSQL.Generator-714"><span class="linenos">714</span></a>
+</span><span id="TSQL.Generator-715"><a href="#TSQL.Generator-715"><span class="linenos">715</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-716"><a href="#TSQL.Generator-716"><span class="linenos">716</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-717"><a href="#TSQL.Generator-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-718"><a href="#TSQL.Generator-718"><span class="linenos">718</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-719"><a href="#TSQL.Generator-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="TSQL.Generator-720"><a href="#TSQL.Generator-720"><span class="linenos">720</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="TSQL.Generator-721"><a href="#TSQL.Generator-721"><span class="linenos">721</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="TSQL.Generator-722"><a href="#TSQL.Generator-722"><span class="linenos">722</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-723"><a href="#TSQL.Generator-723"><span class="linenos">723</span></a> <span class="p">)</span>
+</span><span id="TSQL.Generator-724"><a href="#TSQL.Generator-724"><span class="linenos">724</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-725"><a href="#TSQL.Generator-725"><span class="linenos">725</span></a>
+</span><span id="TSQL.Generator-726"><a href="#TSQL.Generator-726"><span class="linenos">726</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-727"><a href="#TSQL.Generator-727"><span class="linenos">727</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-728"><a href="#TSQL.Generator-728"><span class="linenos">728</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator-729"><a href="#TSQL.Generator-729"><span class="linenos">729</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-730"><a href="#TSQL.Generator-730"><span class="linenos">730</span></a>
+</span><span id="TSQL.Generator-731"><a href="#TSQL.Generator-731"><span class="linenos">731</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-732"><a href="#TSQL.Generator-732"><span class="linenos">732</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="TSQL.Generator-733"><a href="#TSQL.Generator-733"><span class="linenos">733</span></a>
+</span><span id="TSQL.Generator-734"><a href="#TSQL.Generator-734"><span class="linenos">734</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator-735"><a href="#TSQL.Generator-735"><span class="linenos">735</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-736"><a href="#TSQL.Generator-736"><span class="linenos">736</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator-737"><a href="#TSQL.Generator-737"><span class="linenos">737</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-738"><a href="#TSQL.Generator-738"><span class="linenos">738</span></a>
+</span><span id="TSQL.Generator-739"><a href="#TSQL.Generator-739"><span class="linenos">739</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="TSQL.Generator-740"><a href="#TSQL.Generator-740"><span class="linenos">740</span></a>
+</span><span id="TSQL.Generator-741"><a href="#TSQL.Generator-741"><span class="linenos">741</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-742"><a href="#TSQL.Generator-742"><span class="linenos">742</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-743"><a href="#TSQL.Generator-743"><span class="linenos">743</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator-744"><a href="#TSQL.Generator-744"><span class="linenos">744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator-745"><a href="#TSQL.Generator-745"><span class="linenos">745</span></a>
+</span><span id="TSQL.Generator-746"><a href="#TSQL.Generator-746"><span class="linenos">746</span></a> <span class="c1"># https://learn.microsoft.com/en-us/answers/questions/448821/create-table-in-sql-server</span>
+</span><span id="TSQL.Generator-747"><a href="#TSQL.Generator-747"><span class="linenos">747</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
+</span><span id="TSQL.Generator-748"><a href="#TSQL.Generator-748"><span class="linenos">748</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
+</span><span id="TSQL.Generator-749"><a href="#TSQL.Generator-749"><span class="linenos">749</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator-750"><a href="#TSQL.Generator-750"><span class="linenos">750</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="TSQL.Generator-751"><a href="#TSQL.Generator-751"><span class="linenos">751</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="TSQL.Generator-752"><a href="#TSQL.Generator-752"><span class="linenos">752</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
</span></pre></div>
@@ -2985,18 +2981,6 @@ Default: True</li>
</div>
- <div id="TSQL.Generator.LOCKING_READS_SUPPORTED" class="classattr">
- <div class="attr variable">
- <span class="name">LOCKING_READS_SUPPORTED</span> =
-<span class="default_value">True</span>
-
-
- </div>
- <a class="headerlink" href="#TSQL.Generator.LOCKING_READS_SUPPORTED"></a>
-
-
-
- </div>
<div id="TSQL.Generator.LIMIT_IS_TOP" class="classattr">
<div class="attr variable">
<span class="name">LIMIT_IS_TOP</span> =
@@ -3119,11 +3103,11 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.boolean_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.boolean_sql-637"><a href="#TSQL.Generator.boolean_sql-637"><span class="linenos">637</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.boolean_sql-638"><a href="#TSQL.Generator.boolean_sql-638"><span class="linenos">638</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
-</span><span id="TSQL.Generator.boolean_sql-639"><a href="#TSQL.Generator.boolean_sql-639"><span class="linenos">639</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
-</span><span id="TSQL.Generator.boolean_sql-640"><a href="#TSQL.Generator.boolean_sql-640"><span class="linenos">640</span></a>
-</span><span id="TSQL.Generator.boolean_sql-641"><a href="#TSQL.Generator.boolean_sql-641"><span class="linenos">641</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.boolean_sql-636"><a href="#TSQL.Generator.boolean_sql-636"><span class="linenos">636</span></a> <span class="k">def</span> <span class="nf">boolean_sql</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">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.boolean_sql-637"><a href="#TSQL.Generator.boolean_sql-637"><span class="linenos">637</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">in</span> <span class="n">BIT_TYPES</span><span class="p">:</span>
+</span><span id="TSQL.Generator.boolean_sql-638"><a href="#TSQL.Generator.boolean_sql-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="s2">&quot;1&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;0&quot;</span>
+</span><span id="TSQL.Generator.boolean_sql-639"><a href="#TSQL.Generator.boolean_sql-639"><span class="linenos">639</span></a>
+</span><span id="TSQL.Generator.boolean_sql-640"><a href="#TSQL.Generator.boolean_sql-640"><span class="linenos">640</span></a> <span class="k">return</span> <span class="s2">&quot;(1 = 1)&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;(1 = 0)&quot;</span>
</span></pre></div>
@@ -3141,10 +3125,10 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.is_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.is_sql-643"><a href="#TSQL.Generator.is_sql-643"><span class="linenos">643</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.is_sql-644"><a href="#TSQL.Generator.is_sql-644"><span class="linenos">644</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
-</span><span id="TSQL.Generator.is_sql-645"><a href="#TSQL.Generator.is_sql-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.is_sql-646"><a href="#TSQL.Generator.is_sql-646"><span class="linenos">646</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.is_sql-642"><a href="#TSQL.Generator.is_sql-642"><span class="linenos">642</span></a> <span class="k">def</span> <span class="nf">is_sql</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">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.is_sql-643"><a href="#TSQL.Generator.is_sql-643"><span class="linenos">643</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Boolean</span><span class="p">):</span>
+</span><span id="TSQL.Generator.is_sql-644"><a href="#TSQL.Generator.is_sql-644"><span class="linenos">644</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.is_sql-645"><a href="#TSQL.Generator.is_sql-645"><span class="linenos">645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;IS&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -3162,17 +3146,17 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.createable_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.createable_sql-648"><a href="#TSQL.Generator.createable_sql-648"><span class="linenos">648</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.createable_sql-649"><a href="#TSQL.Generator.createable_sql-649"><span class="linenos">649</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.createable_sql-650"><a href="#TSQL.Generator.createable_sql-650"><span class="linenos">650</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.createable_sql-651"><a href="#TSQL.Generator.createable_sql-651"><span class="linenos">651</span></a>
-</span><span id="TSQL.Generator.createable_sql-652"><a href="#TSQL.Generator.createable_sql-652"><span class="linenos">652</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
-</span><span id="TSQL.Generator.createable_sql-653"><a href="#TSQL.Generator.createable_sql-653"><span class="linenos">653</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
-</span><span id="TSQL.Generator.createable_sql-654"><a href="#TSQL.Generator.createable_sql-654"><span class="linenos">654</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
-</span><span id="TSQL.Generator.createable_sql-655"><a href="#TSQL.Generator.createable_sql-655"><span class="linenos">655</span></a> <span class="p">):</span>
-</span><span id="TSQL.Generator.createable_sql-656"><a href="#TSQL.Generator.createable_sql-656"><span class="linenos">656</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator.createable_sql-657"><a href="#TSQL.Generator.createable_sql-657"><span class="linenos">657</span></a>
-</span><span id="TSQL.Generator.createable_sql-658"><a href="#TSQL.Generator.createable_sql-658"><span class="linenos">658</span></a> <span class="k">return</span> <span class="n">sql</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.createable_sql-647"><a href="#TSQL.Generator.createable_sql-647"><span class="linenos">647</span></a> <span class="k">def</span> <span class="nf">createable_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> <span class="n">locations</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">DefaultDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.createable_sql-648"><a href="#TSQL.Generator.createable_sql-648"><span class="linenos">648</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.createable_sql-649"><a href="#TSQL.Generator.createable_sql-649"><span class="linenos">649</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.createable_sql-650"><a href="#TSQL.Generator.createable_sql-650"><span class="linenos">650</span></a>
+</span><span id="TSQL.Generator.createable_sql-651"><a href="#TSQL.Generator.createable_sql-651"><span class="linenos">651</span></a> <span class="k">if</span> <span class="n">sql</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;#&quot;</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span>
+</span><span id="TSQL.Generator.createable_sql-652"><a href="#TSQL.Generator.createable_sql-652"><span class="linenos">652</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">)</span>
+</span><span id="TSQL.Generator.createable_sql-653"><a href="#TSQL.Generator.createable_sql-653"><span class="linenos">653</span></a> <span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">[])</span>
+</span><span id="TSQL.Generator.createable_sql-654"><a href="#TSQL.Generator.createable_sql-654"><span class="linenos">654</span></a> <span class="p">):</span>
+</span><span id="TSQL.Generator.createable_sql-655"><a href="#TSQL.Generator.createable_sql-655"><span class="linenos">655</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">sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator.createable_sql-656"><a href="#TSQL.Generator.createable_sql-656"><span class="linenos">656</span></a>
+</span><span id="TSQL.Generator.createable_sql-657"><a href="#TSQL.Generator.createable_sql-657"><span class="linenos">657</span></a> <span class="k">return</span> <span class="n">sql</span>
</span></pre></div>
@@ -3190,26 +3174,26 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.create_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.create_sql-660"><a href="#TSQL.Generator.create_sql-660"><span class="linenos">660</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.create_sql-661"><a href="#TSQL.Generator.create_sql-661"><span class="linenos">661</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="TSQL.Generator.create_sql-662"><a href="#TSQL.Generator.create_sql-662"><span class="linenos">662</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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="TSQL.Generator.create_sql-663"><a href="#TSQL.Generator.create_sql-663"><span class="linenos">663</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="TSQL.Generator.create_sql-664"><a href="#TSQL.Generator.create_sql-664"><span class="linenos">664</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="TSQL.Generator.create_sql-665"><a href="#TSQL.Generator.create_sql-665"><span class="linenos">665</span></a>
-</span><span id="TSQL.Generator.create_sql-666"><a href="#TSQL.Generator.create_sql-666"><span class="linenos">666</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
-</span><span id="TSQL.Generator.create_sql-667"><a href="#TSQL.Generator.create_sql-667"><span class="linenos">667</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="TSQL.Generator.create_sql-668"><a href="#TSQL.Generator.create_sql-668"><span class="linenos">668</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
-</span><span id="TSQL.Generator.create_sql-669"><a href="#TSQL.Generator.create_sql-669"><span class="linenos">669</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator.create_sql-670"><a href="#TSQL.Generator.create_sql-670"><span class="linenos">670</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator.create_sql-671"><a href="#TSQL.Generator.create_sql-671"><span class="linenos">671</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator.create_sql-672"><a href="#TSQL.Generator.create_sql-672"><span class="linenos">672</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator.create_sql-673"><a href="#TSQL.Generator.create_sql-673"><span class="linenos">673</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator.create_sql-674"><a href="#TSQL.Generator.create_sql-674"><span class="linenos">674</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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="TSQL.Generator.create_sql-675"><a href="#TSQL.Generator.create_sql-675"><span class="linenos">675</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator.create_sql-676"><a href="#TSQL.Generator.create_sql-676"><span class="linenos">676</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator.create_sql-677"><a href="#TSQL.Generator.create_sql-677"><span class="linenos">677</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="TSQL.Generator.create_sql-678"><a href="#TSQL.Generator.create_sql-678"><span class="linenos">678</span></a>
-</span><span id="TSQL.Generator.create_sql-679"><a href="#TSQL.Generator.create_sql-679"><span class="linenos">679</span></a> <span class="k">return</span> <span class="n">sql</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.create_sql-659"><a href="#TSQL.Generator.create_sql-659"><span class="linenos">659</span></a> <span class="k">def</span> <span class="nf">create_sql</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">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.create_sql-660"><a href="#TSQL.Generator.create_sql-660"><span class="linenos">660</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="TSQL.Generator.create_sql-661"><a href="#TSQL.Generator.create_sql-661"><span class="linenos">661</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</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="TSQL.Generator.create_sql-662"><a href="#TSQL.Generator.create_sql-662"><span class="linenos">662</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;exists&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="TSQL.Generator.create_sql-663"><a href="#TSQL.Generator.create_sql-663"><span class="linenos">663</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="TSQL.Generator.create_sql-664"><a href="#TSQL.Generator.create_sql-664"><span class="linenos">664</span></a>
+</span><span id="TSQL.Generator.create_sql-665"><a href="#TSQL.Generator.create_sql-665"><span class="linenos">665</span></a> <span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
+</span><span id="TSQL.Generator.create_sql-666"><a href="#TSQL.Generator.create_sql-666"><span class="linenos">666</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="TSQL.Generator.create_sql-667"><a href="#TSQL.Generator.create_sql-667"><span class="linenos">667</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">exp</span><span class="o">.</span><span class="n">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="p">))</span>
+</span><span id="TSQL.Generator.create_sql-668"><a href="#TSQL.Generator.create_sql-668"><span class="linenos">668</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;SCHEMA&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator.create_sql-669"><a href="#TSQL.Generator.create_sql-669"><span class="linenos">669</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator.create_sql-670"><a href="#TSQL.Generator.create_sql-670"><span class="linenos">670</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;TABLE&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator.create_sql-671"><a href="#TSQL.Generator.create_sql-671"><span class="linenos">671</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator.create_sql-672"><a href="#TSQL.Generator.create_sql-672"><span class="linenos">672</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;INDEX&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator.create_sql-673"><a href="#TSQL.Generator.create_sql-673"><span class="linenos">673</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">exp</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">expression</span><span class="o">.</span><span class="n">this</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="TSQL.Generator.create_sql-674"><a href="#TSQL.Generator.create_sql-674"><span class="linenos">674</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = object_id(</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">) AND name = </span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s2">) EXEC(&#39;</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&#39;)&quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator.create_sql-675"><a href="#TSQL.Generator.create_sql-675"><span class="linenos">675</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;replace&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator.create_sql-676"><a href="#TSQL.Generator.create_sql-676"><span class="linenos">676</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;CREATE OR REPLACE &quot;</span><span class="p">,</span> <span class="s2">&quot;CREATE OR ALTER &quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+</span><span id="TSQL.Generator.create_sql-677"><a href="#TSQL.Generator.create_sql-677"><span class="linenos">677</span></a>
+</span><span id="TSQL.Generator.create_sql-678"><a href="#TSQL.Generator.create_sql-678"><span class="linenos">678</span></a> <span class="k">return</span> <span class="n">sql</span>
</span></pre></div>
@@ -3227,8 +3211,8 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.offset_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.offset_sql-681"><a href="#TSQL.Generator.offset_sql-681"><span class="linenos">681</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.offset_sql-682"><a href="#TSQL.Generator.offset_sql-682"><span class="linenos">682</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.offset_sql-680"><a href="#TSQL.Generator.offset_sql-680"><span class="linenos">680</span></a> <span class="k">def</span> <span class="nf">offset_sql</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">exp</span><span class="o">.</span><span class="n">Offset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.offset_sql-681"><a href="#TSQL.Generator.offset_sql-681"><span class="linenos">681</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS&quot;</span>
</span></pre></div>
@@ -3246,20 +3230,20 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.version_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.version_sql-684"><a href="#TSQL.Generator.version_sql-684"><span class="linenos">684</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.version_sql-685"><a href="#TSQL.Generator.version_sql-685"><span class="linenos">685</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
-</span><span id="TSQL.Generator.version_sql-686"><a href="#TSQL.Generator.version_sql-686"><span class="linenos">686</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator.version_sql-687"><a href="#TSQL.Generator.version_sql-687"><span class="linenos">687</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
-</span><span id="TSQL.Generator.version_sql-688"><a href="#TSQL.Generator.version_sql-688"><span class="linenos">688</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="TSQL.Generator.version_sql-689"><a href="#TSQL.Generator.version_sql-689"><span class="linenos">689</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator.version_sql-690"><a href="#TSQL.Generator.version_sql-690"><span class="linenos">690</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="TSQL.Generator.version_sql-691"><a href="#TSQL.Generator.version_sql-691"><span class="linenos">691</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
-</span><span id="TSQL.Generator.version_sql-692"><a href="#TSQL.Generator.version_sql-692"><span class="linenos">692</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator.version_sql-693"><a href="#TSQL.Generator.version_sql-693"><span class="linenos">693</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="TSQL.Generator.version_sql-694"><a href="#TSQL.Generator.version_sql-694"><span class="linenos">694</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
-</span><span id="TSQL.Generator.version_sql-695"><a href="#TSQL.Generator.version_sql-695"><span class="linenos">695</span></a>
-</span><span id="TSQL.Generator.version_sql-696"><a href="#TSQL.Generator.version_sql-696"><span class="linenos">696</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.version_sql-697"><a href="#TSQL.Generator.version_sql-697"><span class="linenos">697</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.version_sql-683"><a href="#TSQL.Generator.version_sql-683"><span class="linenos">683</span></a> <span class="k">def</span> <span class="nf">version_sql</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">exp</span><span class="o">.</span><span class="n">Version</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.version_sql-684"><a href="#TSQL.Generator.version_sql-684"><span class="linenos">684</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;SYSTEM_TIME&quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;TIMESTAMP&quot;</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+</span><span id="TSQL.Generator.version_sql-685"><a href="#TSQL.Generator.version_sql-685"><span class="linenos">685</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;FOR </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator.version_sql-686"><a href="#TSQL.Generator.version_sql-686"><span class="linenos">686</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span>
+</span><span id="TSQL.Generator.version_sql-687"><a href="#TSQL.Generator.version_sql-687"><span class="linenos">687</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</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><span id="TSQL.Generator.version_sql-688"><a href="#TSQL.Generator.version_sql-688"><span class="linenos">688</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="s2">&quot;BETWEEN&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator.version_sql-689"><a href="#TSQL.Generator.version_sql-689"><span class="linenos">689</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expr</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="TSQL.Generator.version_sql-690"><a href="#TSQL.Generator.version_sql-690"><span class="linenos">690</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;TO&quot;</span> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;FROM&quot;</span> <span class="k">else</span> <span class="s2">&quot;AND&quot;</span>
+</span><span id="TSQL.Generator.version_sql-691"><a href="#TSQL.Generator.version_sql-691"><span class="linenos">691</span></a> <span class="n">expr_sql</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">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sep</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator.version_sql-692"><a href="#TSQL.Generator.version_sql-692"><span class="linenos">692</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="TSQL.Generator.version_sql-693"><a href="#TSQL.Generator.version_sql-693"><span class="linenos">693</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expr</span><span class="p">)</span>
+</span><span id="TSQL.Generator.version_sql-694"><a href="#TSQL.Generator.version_sql-694"><span class="linenos">694</span></a>
+</span><span id="TSQL.Generator.version_sql-695"><a href="#TSQL.Generator.version_sql-695"><span class="linenos">695</span></a> <span class="n">expr_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">expr_sql</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.version_sql-696"><a href="#TSQL.Generator.version_sql-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">expr_sql</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3277,10 +3261,10 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.returnsproperty_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.returnsproperty_sql-699"><a href="#TSQL.Generator.returnsproperty_sql-699"><span class="linenos">699</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.returnsproperty_sql-700"><a href="#TSQL.Generator.returnsproperty_sql-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.returnsproperty_sql-701"><a href="#TSQL.Generator.returnsproperty_sql-701"><span class="linenos">701</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.returnsproperty_sql-702"><a href="#TSQL.Generator.returnsproperty_sql-702"><span class="linenos">702</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.returnsproperty_sql-698"><a href="#TSQL.Generator.returnsproperty_sql-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">returnsproperty_sql</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">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.returnsproperty_sql-699"><a href="#TSQL.Generator.returnsproperty_sql-699"><span class="linenos">699</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.returnsproperty_sql-700"><a href="#TSQL.Generator.returnsproperty_sql-700"><span class="linenos">700</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> &quot;</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.returnsproperty_sql-701"><a href="#TSQL.Generator.returnsproperty_sql-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;RETURNS </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;this&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3298,10 +3282,10 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.returning_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.returning_sql-704"><a href="#TSQL.Generator.returning_sql-704"><span class="linenos">704</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.returning_sql-705"><a href="#TSQL.Generator.returning_sql-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.returning_sql-706"><a href="#TSQL.Generator.returning_sql-706"><span class="linenos">706</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.returning_sql-707"><a href="#TSQL.Generator.returning_sql-707"><span class="linenos">707</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.returning_sql-703"><a href="#TSQL.Generator.returning_sql-703"><span class="linenos">703</span></a> <span class="k">def</span> <span class="nf">returning_sql</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">exp</span><span class="o">.</span><span class="n">Returning</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.returning_sql-704"><a href="#TSQL.Generator.returning_sql-704"><span class="linenos">704</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.returning_sql-705"><a href="#TSQL.Generator.returning_sql-705"><span class="linenos">705</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;INTO </span><span class="si">{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.returning_sql-706"><a href="#TSQL.Generator.returning_sql-706"><span class="linenos">706</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">&#39;OUTPUT&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}{</span><span class="n">into</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3319,12 +3303,12 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.transaction_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.transaction_sql-709"><a href="#TSQL.Generator.transaction_sql-709"><span class="linenos">709</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.transaction_sql-710"><a href="#TSQL.Generator.transaction_sql-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">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.transaction_sql-711"><a href="#TSQL.Generator.transaction_sql-711"><span class="linenos">711</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.transaction_sql-712"><a href="#TSQL.Generator.transaction_sql-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.transaction_sql-713"><a href="#TSQL.Generator.transaction_sql-713"><span class="linenos">713</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.transaction_sql-714"><a href="#TSQL.Generator.transaction_sql-714"><span class="linenos">714</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.transaction_sql-708"><a href="#TSQL.Generator.transaction_sql-708"><span class="linenos">708</span></a> <span class="k">def</span> <span class="nf">transaction_sql</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">exp</span><span class="o">.</span><span class="n">Transaction</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.transaction_sql-709"><a href="#TSQL.Generator.transaction_sql-709"><span class="linenos">709</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.transaction_sql-710"><a href="#TSQL.Generator.transaction_sql-710"><span class="linenos">710</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.transaction_sql-711"><a href="#TSQL.Generator.transaction_sql-711"><span class="linenos">711</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.transaction_sql-712"><a href="#TSQL.Generator.transaction_sql-712"><span class="linenos">712</span></a> <span class="n">mark</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH MARK </span><span class="si">{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">mark</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.transaction_sql-713"><a href="#TSQL.Generator.transaction_sql-713"><span class="linenos">713</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;BEGIN TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">mark</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3342,16 +3326,16 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.commit_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.commit_sql-716"><a href="#TSQL.Generator.commit_sql-716"><span class="linenos">716</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.commit_sql-717"><a href="#TSQL.Generator.commit_sql-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.commit_sql-718"><a href="#TSQL.Generator.commit_sql-718"><span class="linenos">718</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.commit_sql-719"><a href="#TSQL.Generator.commit_sql-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.commit_sql-720"><a href="#TSQL.Generator.commit_sql-720"><span class="linenos">720</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="TSQL.Generator.commit_sql-721"><a href="#TSQL.Generator.commit_sql-721"><span class="linenos">721</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="TSQL.Generator.commit_sql-722"><a href="#TSQL.Generator.commit_sql-722"><span class="linenos">722</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="TSQL.Generator.commit_sql-723"><a href="#TSQL.Generator.commit_sql-723"><span class="linenos">723</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.commit_sql-724"><a href="#TSQL.Generator.commit_sql-724"><span class="linenos">724</span></a> <span class="p">)</span>
-</span><span id="TSQL.Generator.commit_sql-725"><a href="#TSQL.Generator.commit_sql-725"><span class="linenos">725</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.commit_sql-715"><a href="#TSQL.Generator.commit_sql-715"><span class="linenos">715</span></a> <span class="k">def</span> <span class="nf">commit_sql</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">exp</span><span class="o">.</span><span class="n">Commit</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.commit_sql-716"><a href="#TSQL.Generator.commit_sql-716"><span class="linenos">716</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.commit_sql-717"><a href="#TSQL.Generator.commit_sql-717"><span class="linenos">717</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.commit_sql-718"><a href="#TSQL.Generator.commit_sql-718"><span class="linenos">718</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;durability&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.commit_sql-719"><a href="#TSQL.Generator.commit_sql-719"><span class="linenos">719</span></a> <span class="n">durability</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="TSQL.Generator.commit_sql-720"><a href="#TSQL.Generator.commit_sql-720"><span class="linenos">720</span></a> <span class="sa">f</span><span class="s2">&quot; WITH (DELAYED_DURABILITY = </span><span class="si">{</span><span class="s1">&#39;ON&#39;</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">durability</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">&#39;OFF&#39;</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="TSQL.Generator.commit_sql-721"><a href="#TSQL.Generator.commit_sql-721"><span class="linenos">721</span></a> <span class="k">if</span> <span class="n">durability</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="TSQL.Generator.commit_sql-722"><a href="#TSQL.Generator.commit_sql-722"><span class="linenos">722</span></a> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.commit_sql-723"><a href="#TSQL.Generator.commit_sql-723"><span class="linenos">723</span></a> <span class="p">)</span>
+</span><span id="TSQL.Generator.commit_sql-724"><a href="#TSQL.Generator.commit_sql-724"><span class="linenos">724</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COMMIT TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">durability</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3369,10 +3353,10 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.rollback_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.rollback_sql-727"><a href="#TSQL.Generator.rollback_sql-727"><span class="linenos">727</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.rollback_sql-728"><a href="#TSQL.Generator.rollback_sql-728"><span class="linenos">728</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.rollback_sql-729"><a href="#TSQL.Generator.rollback_sql-729"><span class="linenos">729</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="TSQL.Generator.rollback_sql-730"><a href="#TSQL.Generator.rollback_sql-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.rollback_sql-726"><a href="#TSQL.Generator.rollback_sql-726"><span class="linenos">726</span></a> <span class="k">def</span> <span class="nf">rollback_sql</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">exp</span><span class="o">.</span><span class="n">Rollback</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.rollback_sql-727"><a href="#TSQL.Generator.rollback_sql-727"><span class="linenos">727</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.rollback_sql-728"><a href="#TSQL.Generator.rollback_sql-728"><span class="linenos">728</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="TSQL.Generator.rollback_sql-729"><a href="#TSQL.Generator.rollback_sql-729"><span class="linenos">729</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;ROLLBACK TRANSACTION</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3390,15 +3374,15 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.identifier_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.identifier_sql-732"><a href="#TSQL.Generator.identifier_sql-732"><span class="linenos">732</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.identifier_sql-733"><a href="#TSQL.Generator.identifier_sql-733"><span class="linenos">733</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="TSQL.Generator.identifier_sql-734"><a href="#TSQL.Generator.identifier_sql-734"><span class="linenos">734</span></a>
-</span><span id="TSQL.Generator.identifier_sql-735"><a href="#TSQL.Generator.identifier_sql-735"><span class="linenos">735</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator.identifier_sql-736"><a href="#TSQL.Generator.identifier_sql-736"><span class="linenos">736</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator.identifier_sql-737"><a href="#TSQL.Generator.identifier_sql-737"><span class="linenos">737</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
-</span><span id="TSQL.Generator.identifier_sql-738"><a href="#TSQL.Generator.identifier_sql-738"><span class="linenos">738</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="TSQL.Generator.identifier_sql-739"><a href="#TSQL.Generator.identifier_sql-739"><span class="linenos">739</span></a>
-</span><span id="TSQL.Generator.identifier_sql-740"><a href="#TSQL.Generator.identifier_sql-740"><span class="linenos">740</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.identifier_sql-731"><a href="#TSQL.Generator.identifier_sql-731"><span class="linenos">731</span></a> <span class="k">def</span> <span class="nf">identifier_sql</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.identifier_sql-732"><a href="#TSQL.Generator.identifier_sql-732"><span class="linenos">732</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">identifier_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="TSQL.Generator.identifier_sql-733"><a href="#TSQL.Generator.identifier_sql-733"><span class="linenos">733</span></a>
+</span><span id="TSQL.Generator.identifier_sql-734"><a href="#TSQL.Generator.identifier_sql-734"><span class="linenos">734</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;global&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator.identifier_sql-735"><a href="#TSQL.Generator.identifier_sql-735"><span class="linenos">735</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;##</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator.identifier_sql-736"><a href="#TSQL.Generator.identifier_sql-736"><span class="linenos">736</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;temporary&quot;</span><span class="p">):</span>
+</span><span id="TSQL.Generator.identifier_sql-737"><a href="#TSQL.Generator.identifier_sql-737"><span class="linenos">737</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="TSQL.Generator.identifier_sql-738"><a href="#TSQL.Generator.identifier_sql-738"><span class="linenos">738</span></a>
+</span><span id="TSQL.Generator.identifier_sql-739"><a href="#TSQL.Generator.identifier_sql-739"><span class="linenos">739</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -3416,10 +3400,10 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.constraint_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.constraint_sql-742"><a href="#TSQL.Generator.constraint_sql-742"><span class="linenos">742</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.constraint_sql-743"><a href="#TSQL.Generator.constraint_sql-743"><span class="linenos">743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.constraint_sql-744"><a href="#TSQL.Generator.constraint_sql-744"><span class="linenos">744</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
-</span><span id="TSQL.Generator.constraint_sql-745"><a href="#TSQL.Generator.constraint_sql-745"><span class="linenos">745</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.constraint_sql-741"><a href="#TSQL.Generator.constraint_sql-741"><span class="linenos">741</span></a> <span class="k">def</span> <span class="nf">constraint_sql</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">exp</span><span class="o">.</span><span class="n">Constraint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.constraint_sql-742"><a href="#TSQL.Generator.constraint_sql-742"><span class="linenos">742</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.constraint_sql-743"><a href="#TSQL.Generator.constraint_sql-743"><span class="linenos">743</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
+</span><span id="TSQL.Generator.constraint_sql-744"><a href="#TSQL.Generator.constraint_sql-744"><span class="linenos">744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@@ -3437,12 +3421,12 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-748"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-748"><span class="linenos">748</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
-</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-749"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-749"><span class="linenos">749</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
-</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-750"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-750"><span class="linenos">750</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-751"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-751"><span class="linenos">751</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-752"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-752"><span class="linenos">752</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
-</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-753"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-753"><span class="linenos">753</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-747"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-747"><span class="linenos">747</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span>
+</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-748"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-748"><span class="linenos">748</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span>
+</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-749"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-749"><span class="linenos">749</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-750"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-750"><span class="linenos">750</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-751"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-751"><span class="linenos">751</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;increment&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">&quot;1&quot;</span>
+</span><span id="TSQL.Generator.generatedasidentitycolumnconstraint_sql-752"><a href="#TSQL.Generator.generatedasidentitycolumnconstraint_sql-752"><span class="linenos">752</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;IDENTITY(</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">)&quot;</span>
</span></pre></div>
@@ -3511,26 +3495,26 @@ Default: True</li>
</div>
<a class="headerlink" href="#TSQL.Generator.can_identify"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.can_identify-257"><a href="#TSQL.Generator.can_identify-257"><span class="linenos">257</span></a> <span class="nd">@classmethod</span>
-</span><span id="TSQL.Generator.can_identify-258"><a href="#TSQL.Generator.can_identify-258"><span class="linenos">258</span></a> <span class="k">def</span> <span class="nf">can_identify</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">bool</span> <span class="o">=</span> <span class="s2">&quot;safe&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="TSQL.Generator.can_identify-259"><a href="#TSQL.Generator.can_identify-259"><span class="linenos">259</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks if text can be identified given an identify option.</span>
-</span><span id="TSQL.Generator.can_identify-260"><a href="#TSQL.Generator.can_identify-260"><span class="linenos">260</span></a>
-</span><span id="TSQL.Generator.can_identify-261"><a href="#TSQL.Generator.can_identify-261"><span class="linenos">261</span></a><span class="sd"> Args:</span>
-</span><span id="TSQL.Generator.can_identify-262"><a href="#TSQL.Generator.can_identify-262"><span class="linenos">262</span></a><span class="sd"> text: The text to check.</span>
-</span><span id="TSQL.Generator.can_identify-263"><a href="#TSQL.Generator.can_identify-263"><span class="linenos">263</span></a><span class="sd"> identify:</span>
-</span><span id="TSQL.Generator.can_identify-264"><a href="#TSQL.Generator.can_identify-264"><span class="linenos">264</span></a><span class="sd"> &quot;always&quot; or `True`: Always returns true.</span>
-</span><span id="TSQL.Generator.can_identify-265"><a href="#TSQL.Generator.can_identify-265"><span class="linenos">265</span></a><span class="sd"> &quot;safe&quot;: True if the identifier is case-insensitive.</span>
-</span><span id="TSQL.Generator.can_identify-266"><a href="#TSQL.Generator.can_identify-266"><span class="linenos">266</span></a>
-</span><span id="TSQL.Generator.can_identify-267"><a href="#TSQL.Generator.can_identify-267"><span class="linenos">267</span></a><span class="sd"> Returns:</span>
-</span><span id="TSQL.Generator.can_identify-268"><a href="#TSQL.Generator.can_identify-268"><span class="linenos">268</span></a><span class="sd"> Whether or not the given text can be identified.</span>
-</span><span id="TSQL.Generator.can_identify-269"><a href="#TSQL.Generator.can_identify-269"><span class="linenos">269</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="TSQL.Generator.can_identify-270"><a href="#TSQL.Generator.can_identify-270"><span class="linenos">270</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">is</span> <span class="kc">True</span> <span class="ow">or</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">&quot;always&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator.can_identify-271"><a href="#TSQL.Generator.can_identify-271"><span class="linenos">271</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="TSQL.Generator.can_identify-272"><a href="#TSQL.Generator.can_identify-272"><span class="linenos">272</span></a>
-</span><span id="TSQL.Generator.can_identify-273"><a href="#TSQL.Generator.can_identify-273"><span class="linenos">273</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span>
-</span><span id="TSQL.Generator.can_identify-274"><a href="#TSQL.Generator.can_identify-274"><span class="linenos">274</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="bp">cls</span><span class="o">.</span><span class="n">case_sensitive</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.can_identify-260"><a href="#TSQL.Generator.can_identify-260"><span class="linenos">260</span></a> <span class="nd">@classmethod</span>
+</span><span id="TSQL.Generator.can_identify-261"><a href="#TSQL.Generator.can_identify-261"><span class="linenos">261</span></a> <span class="k">def</span> <span class="nf">can_identify</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">bool</span> <span class="o">=</span> <span class="s2">&quot;safe&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="TSQL.Generator.can_identify-262"><a href="#TSQL.Generator.can_identify-262"><span class="linenos">262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks if text can be identified given an identify option.</span>
+</span><span id="TSQL.Generator.can_identify-263"><a href="#TSQL.Generator.can_identify-263"><span class="linenos">263</span></a>
+</span><span id="TSQL.Generator.can_identify-264"><a href="#TSQL.Generator.can_identify-264"><span class="linenos">264</span></a><span class="sd"> Args:</span>
+</span><span id="TSQL.Generator.can_identify-265"><a href="#TSQL.Generator.can_identify-265"><span class="linenos">265</span></a><span class="sd"> text: The text to check.</span>
+</span><span id="TSQL.Generator.can_identify-266"><a href="#TSQL.Generator.can_identify-266"><span class="linenos">266</span></a><span class="sd"> identify:</span>
+</span><span id="TSQL.Generator.can_identify-267"><a href="#TSQL.Generator.can_identify-267"><span class="linenos">267</span></a><span class="sd"> &quot;always&quot; or `True`: Always returns true.</span>
+</span><span id="TSQL.Generator.can_identify-268"><a href="#TSQL.Generator.can_identify-268"><span class="linenos">268</span></a><span class="sd"> &quot;safe&quot;: True if the identifier is case-insensitive.</span>
+</span><span id="TSQL.Generator.can_identify-269"><a href="#TSQL.Generator.can_identify-269"><span class="linenos">269</span></a>
+</span><span id="TSQL.Generator.can_identify-270"><a href="#TSQL.Generator.can_identify-270"><span class="linenos">270</span></a><span class="sd"> Returns:</span>
+</span><span id="TSQL.Generator.can_identify-271"><a href="#TSQL.Generator.can_identify-271"><span class="linenos">271</span></a><span class="sd"> Whether or not the given text can be identified.</span>
+</span><span id="TSQL.Generator.can_identify-272"><a href="#TSQL.Generator.can_identify-272"><span class="linenos">272</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="TSQL.Generator.can_identify-273"><a href="#TSQL.Generator.can_identify-273"><span class="linenos">273</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">is</span> <span class="kc">True</span> <span class="ow">or</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">&quot;always&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator.can_identify-274"><a href="#TSQL.Generator.can_identify-274"><span class="linenos">274</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="TSQL.Generator.can_identify-275"><a href="#TSQL.Generator.can_identify-275"><span class="linenos">275</span></a>
-</span><span id="TSQL.Generator.can_identify-276"><a href="#TSQL.Generator.can_identify-276"><span class="linenos">276</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="TSQL.Generator.can_identify-276"><a href="#TSQL.Generator.can_identify-276"><span class="linenos">276</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span>
+</span><span id="TSQL.Generator.can_identify-277"><a href="#TSQL.Generator.can_identify-277"><span class="linenos">277</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="bp">cls</span><span class="o">.</span><span class="n">case_sensitive</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
+</span><span id="TSQL.Generator.can_identify-278"><a href="#TSQL.Generator.can_identify-278"><span class="linenos">278</span></a>
+</span><span id="TSQL.Generator.can_identify-279"><a href="#TSQL.Generator.can_identify-279"><span class="linenos">279</span></a> <span class="k">return</span> <span class="kc">False</span>
</span></pre></div>
@@ -3691,6 +3675,7 @@ Default: True</li>
<div><dt><a href="../generator.html#Generator">sqlglot.generator.Generator</a></dt>
<dd id="TSQL.Generator.__init__" class="function"><a href="../generator.html#Generator.__init__">Generator</a></dd>
<dd id="TSQL.Generator.NULL_ORDERING_SUPPORTED" class="variable"><a href="../generator.html#Generator.NULL_ORDERING_SUPPORTED">NULL_ORDERING_SUPPORTED</a></dd>
+ <dd id="TSQL.Generator.LOCKING_READS_SUPPORTED" class="variable"><a href="../generator.html#Generator.LOCKING_READS_SUPPORTED">LOCKING_READS_SUPPORTED</a></dd>
<dd id="TSQL.Generator.EXPLICIT_UNION" class="variable"><a href="../generator.html#Generator.EXPLICIT_UNION">EXPLICIT_UNION</a></dd>
<dd id="TSQL.Generator.WRAP_DERIVED_VALUES" class="variable"><a href="../generator.html#Generator.WRAP_DERIVED_VALUES">WRAP_DERIVED_VALUES</a></dd>
<dd id="TSQL.Generator.CREATE_FUNCTION_RETURN_AS" class="variable"><a href="../generator.html#Generator.CREATE_FUNCTION_RETURN_AS">CREATE_FUNCTION_RETURN_AS</a></dd>