Merging upstream version 21.0.2.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
7d0896f08b
commit
b7d506d9b2
58 changed files with 25616 additions and 25078 deletions
24
CHANGELOG.md
24
CHANGELOG.md
|
@ -1,6 +1,28 @@
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
## [v21.0.2] - 2024-02-08
|
||||||
|
### :sparkles: New Features
|
||||||
|
- [`1842c96`](https://github.com/tobymao/sqlglot/commit/1842c96611cadb0227dd3ce8f42457679ab0e08b) - **clickhouse**: add support for LIMIT BY clause *(PR [#2926](https://github.com/tobymao/sqlglot/pull/2926) by [@georgesittas](https://github.com/georgesittas))*
|
||||||
|
- [`9241858`](https://github.com/tobymao/sqlglot/commit/9241858e559f089b166d9b794e3ebb395624d84a) - add typing for explode closes [#2927](https://github.com/tobymao/sqlglot/pull/2927) *(commit by [@tobymao](https://github.com/tobymao))*
|
||||||
|
- [`85073d1`](https://github.com/tobymao/sqlglot/commit/85073d1538de8ceef3e5c622a901efd9e6bd38e3) - transpile multi-arg DISTINCT expression *(PR [#2936](https://github.com/tobymao/sqlglot/pull/2936) by [@georgesittas](https://github.com/georgesittas))*
|
||||||
|
- :arrow_lower_right: *addresses issue [#2930](https://github.com/tobymao/sqlglot/issues/2930) opened by [@Jake-00](https://github.com/Jake-00)*
|
||||||
|
|
||||||
|
### :bug: Bug Fixes
|
||||||
|
- [`b827626`](https://github.com/tobymao/sqlglot/commit/b8276262bdca57e358284fadfdd468d2bc957e84) - remove find method from Schema *(PR [#2934](https://github.com/tobymao/sqlglot/pull/2934) by [@georgesittas](https://github.com/georgesittas))*
|
||||||
|
- [`08cd117`](https://github.com/tobymao/sqlglot/commit/08cd117322302f08c95889ebf8699f4171c1d504) - **postgres**: fallback to parameter parser if heredoc is untokenizable *(PR [#2935](https://github.com/tobymao/sqlglot/pull/2935) by [@georgesittas](https://github.com/georgesittas))*
|
||||||
|
- :arrow_lower_right: *fixes issue [#2931](https://github.com/tobymao/sqlglot/issues/2931) opened by [@eric-zhu](https://github.com/eric-zhu)*
|
||||||
|
|
||||||
|
### :wrench: Chores
|
||||||
|
- [`e4b5edb`](https://github.com/tobymao/sqlglot/commit/e4b5edbef42944b44d11c35aea31411ce3d79826) - bump sqlglotrs to 0.1.1 *(commit by [@georgesittas](https://github.com/georgesittas))*
|
||||||
|
|
||||||
|
|
||||||
|
## [v21.0.1] - 2024-02-07
|
||||||
|
### :sparkles: New Features
|
||||||
|
- [`3a20eac`](https://github.com/tobymao/sqlglot/commit/3a20eaccbf5d5a80bd24b95c837cca8103dfe70a) - **clickhouse**: add support for JSONExtractString, clean up some helpers *(PR [#2925](https://github.com/tobymao/sqlglot/pull/2925) by [@georgesittas](https://github.com/georgesittas))*
|
||||||
|
- :arrow_lower_right: *addresses issue [#2051](https://github.com/tobymao/sqlglot/issues/2051) opened by [@BTheunissen](https://github.com/BTheunissen)*
|
||||||
|
|
||||||
|
|
||||||
## [v21.0.0] - 2024-02-07
|
## [v21.0.0] - 2024-02-07
|
||||||
### :boom: BREAKING CHANGES
|
### :boom: BREAKING CHANGES
|
||||||
- due to [`b4e8868`](https://github.com/tobymao/sqlglot/commit/b4e886877ecfbafdd64c515c765c3c54764bd987) - improve transpilation of JSON paths across dialects *(PR [#2883](https://github.com/tobymao/sqlglot/pull/2883) by [@georgesittas](https://github.com/georgesittas))*:
|
- due to [`b4e8868`](https://github.com/tobymao/sqlglot/commit/b4e886877ecfbafdd64c515c765c3c54764bd987) - improve transpilation of JSON paths across dialects *(PR [#2883](https://github.com/tobymao/sqlglot/pull/2883) by [@georgesittas](https://github.com/georgesittas))*:
|
||||||
|
@ -2570,3 +2592,5 @@ Changelog
|
||||||
[v20.10.0]: https://github.com/tobymao/sqlglot/compare/v20.9.0...v20.10.0
|
[v20.10.0]: https://github.com/tobymao/sqlglot/compare/v20.9.0...v20.10.0
|
||||||
[v20.11.0]: https://github.com/tobymao/sqlglot/compare/v20.10.0...v20.11.0
|
[v20.11.0]: https://github.com/tobymao/sqlglot/compare/v20.10.0...v20.11.0
|
||||||
[v21.0.0]: https://github.com/tobymao/sqlglot/compare/v20.11.0...v21.0.0
|
[v21.0.0]: https://github.com/tobymao/sqlglot/compare/v20.11.0...v21.0.0
|
||||||
|
[v21.0.1]: https://github.com/tobymao/sqlglot/compare/v21.0.0...v21.0.1
|
||||||
|
[v21.0.2]: https://github.com/tobymao/sqlglot/compare/v21.0.1...v21.0.2
|
File diff suppressed because one or more lines are too long
|
@ -68,7 +68,8 @@
|
||||||
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="n">A</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"A"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span>
|
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="n">A</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"A"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span>
|
||||||
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="n">B</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"B"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="s2">"sqlglot.exp.Binary"</span><span class="p">)</span>
|
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="n">B</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"B"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="s2">"sqlglot.exp.Binary"</span><span class="p">)</span>
|
||||||
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="n">E</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"E"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="s2">"sqlglot.exp.Expression"</span><span class="p">)</span>
|
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="n">E</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"E"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="s2">"sqlglot.exp.Expression"</span><span class="p">)</span>
|
||||||
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="n">T</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"T"</span><span class="p">)</span>
|
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="n">F</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"F"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="s2">"sqlglot.exp.Func"</span><span class="p">)</span>
|
||||||
|
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="n">T</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"T"</span><span class="p">)</span>
|
||||||
</span></pre></div>
|
</span></pre></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -76,8 +76,8 @@
|
||||||
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="n">__version_tuple__</span><span class="p">:</span> <span class="n">VERSION_TUPLE</span>
|
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="n">__version_tuple__</span><span class="p">:</span> <span class="n">VERSION_TUPLE</span>
|
||||||
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="n">version_tuple</span><span class="p">:</span> <span class="n">VERSION_TUPLE</span>
|
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="n">version_tuple</span><span class="p">:</span> <span class="n">VERSION_TUPLE</span>
|
||||||
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a>
|
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a>
|
||||||
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="n">__version__</span> <span class="o">=</span> <span class="n">version</span> <span class="o">=</span> <span class="s1">'21.0.0'</span>
|
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="n">__version__</span> <span class="o">=</span> <span class="n">version</span> <span class="o">=</span> <span class="s1">'21.0.3.dev0'</span>
|
||||||
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="n">__version_tuple__</span> <span class="o">=</span> <span class="n">version_tuple</span> <span class="o">=</span> <span class="p">(</span><span class="mi">21</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="n">__version_tuple__</span> <span class="o">=</span> <span class="n">version_tuple</span> <span class="o">=</span> <span class="p">(</span><span class="mi">21</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'dev0'</span><span class="p">)</span>
|
||||||
</span></pre></div>
|
</span></pre></div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
<section id="version">
|
<section id="version">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">version</span><span class="annotation">: str</span> =
|
<span class="name">version</span><span class="annotation">: str</span> =
|
||||||
<span class="default_value">'21.0.0'</span>
|
<span class="default_value">'21.0.3.dev0'</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<section id="version_tuple">
|
<section id="version_tuple">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">version_tuple</span><span class="annotation">: object</span> =
|
<span class="name">version_tuple</span><span class="annotation">: object</span> =
|
||||||
<span class="default_value">(21, 0, 0)</span>
|
<span class="default_value">(21, 0, 3, 'dev0')</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -786,7 +786,7 @@
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">createDataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854402048'</span><span class="o">></span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854402048'</span><span class="o">></span><span class="p">],</span> <span class="n">Tuple</span><span class="p">]]</span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688855867008'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">samplingRatio</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">verifySchema</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
<span class="name">createDataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763522736'</span><span class="o">></span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763522736'</span><span class="o">></span><span class="p">],</span> <span class="n">Tuple</span><span class="p">]]</span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595765140864'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">samplingRatio</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">verifySchema</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="SparkSession.createDataFrame-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="SparkSession.createDataFrame-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -1844,7 +1844,7 @@
|
||||||
<input id="DataFrame.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="DataFrame.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="name">DataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">spark</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688858878976'</span><span class="o">></span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Select">sqlglot.expressions.Select</a></span>,</span><span class="param"> <span class="n">branch_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sequence_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">last_op</span><span class="p">:</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">dataframe</span><span class="o">.</span><span class="n">sql</span><span class="o">.</span><span class="n">operations</span><span class="o">.</span><span class="n">Operation</span> <span class="o">=</span> <span class="o"><</span><span class="n">Operation</span><span class="o">.</span><span class="n">INIT</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="o">></span>,</span><span class="param"> <span class="n">pending_hints</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">output_expression_container</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688859097632'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span>)</span>
|
<span class="name">DataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">spark</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595768209808'</span><span class="o">></span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Select">sqlglot.expressions.Select</a></span>,</span><span class="param"> <span class="n">branch_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sequence_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">last_op</span><span class="p">:</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">dataframe</span><span class="o">.</span><span class="n">sql</span><span class="o">.</span><span class="n">operations</span><span class="o">.</span><span class="n">Operation</span> <span class="o">=</span> <span class="o"><</span><span class="n">Operation</span><span class="o">.</span><span class="n">INIT</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="o">></span>,</span><span class="param"> <span class="n">pending_hints</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">output_expression_container</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595768526640'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span>)</span>
|
||||||
|
|
||||||
<label class="view-source-button" for="DataFrame.__init__-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="DataFrame.__init__-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -2092,7 +2092,7 @@
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">sql</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853981648'</span><span class="o">></span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">optimize</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>:</span></span>
|
<span class="name">sql</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763912496'</span><span class="o">></span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">optimize</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="DataFrame.sql-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="DataFrame.sql-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -2841,7 +2841,7 @@ is unlikely to come up.</p>
|
||||||
<div class="decorator">@operation(Operation.FROM)</div>
|
<div class="decorator">@operation(Operation.FROM)</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">fillna</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854309184'</span><span class="o">></span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
<span class="name">fillna</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595764027520'</span><span class="o">></span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="DataFrame.fillna-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="DataFrame.fillna-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -2910,7 +2910,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="decorator">@operation(Operation.FROM)</div>
|
<div class="decorator">@operation(Operation.FROM)</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">replace</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">to_replace</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">]</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Collection</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854920384'</span><span class="o">></span><span class="p">],</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854920384'</span><span class="o">></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
<span class="name">replace</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">to_replace</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">]</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Collection</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595762701712'</span><span class="o">></span><span class="p">],</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595762701712'</span><span class="o">></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="DataFrame.replace-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="DataFrame.replace-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3115,7 +3115,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="decorator">@operation(Operation.NO_OP)</div>
|
<div class="decorator">@operation(Operation.NO_OP)</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">repartition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">numPartitions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854920384'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688854920384'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
<span class="name">repartition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">numPartitions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595762701712'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595762701712'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">DataFrame</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="DataFrame.repartition-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="DataFrame.repartition-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3835,7 +3835,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<input id="Column.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="Column.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="name">Column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span>)</span>
|
<span class="name">Column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span>)</span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.__init__-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.__init__-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3879,7 +3879,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="decorator">@classmethod</div>
|
<div class="decorator">@classmethod</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">ensure_col</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">ensure_col</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.ensure_col-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.ensure_col-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3900,7 +3900,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="decorator">@classmethod</div>
|
<div class="decorator">@classmethod</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">ensure_cols</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">args</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="n"><a href="#Column">Column</a></span><span class="p">]</span>:</span></span>
|
<span class="name">ensure_cols</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">args</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="n"><a href="#Column">Column</a></span><span class="p">]</span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.ensure_cols-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.ensure_cols-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3921,7 +3921,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="decorator">@classmethod</div>
|
<div class="decorator">@classmethod</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">invoke_anonymous_function</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">invoke_anonymous_function</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.invoke_anonymous_function-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.invoke_anonymous_function-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3948,7 +3948,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="decorator">@classmethod</div>
|
<div class="decorator">@classmethod</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">invoke_expression_over_column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">callable_expression</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">invoke_expression_over_column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">callable_expression</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.invoke_expression_over_column-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.invoke_expression_over_column-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -3987,7 +3987,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.binary_op-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.binary_op-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -4008,7 +4008,7 @@ and check if it matches the type of the value provided. If not then make it null
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">inverse_binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">inverse_binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.inverse_binary_op-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.inverse_binary_op-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -4602,7 +4602,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">,</span> <span class="n">Iterable</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">):</span></span>
|
<span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">,</span> <span class="n">Iterable</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">):</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.isin-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.isin-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -4623,7 +4623,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">lowerBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span>,</span><span class="param"> <span class="n">upperBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688856903568'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">lowerBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span>,</span><span class="param"> <span class="n">upperBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595766433424'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.between-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.between-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -4658,7 +4658,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">over</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">window</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853198576'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
<span class="name">over</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">window</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595762334880'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Column.over-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Column.over-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -4903,7 +4903,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="decorator">@classmethod</div>
|
<div class="decorator">@classmethod</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
<span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Window.partitionBy-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Window.partitionBy-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -4924,7 +4924,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="decorator">@classmethod</div>
|
<div class="decorator">@classmethod</div>
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
<span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="Window.orderBy-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="Window.orderBy-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -5166,7 +5166,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
<span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="WindowSpec.partitionBy-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="WindowSpec.partitionBy-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
@ -5193,7 +5193,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p>
|
||||||
<div class="attr function">
|
<div class="attr function">
|
||||||
|
|
||||||
<span class="def">def</span>
|
<span class="def">def</span>
|
||||||
<span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'139688853906400'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
<span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140595763234272'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">WindowSpec</a></span>:</span></span>
|
||||||
|
|
||||||
<label class="view-source-button" for="WindowSpec.orderBy-view-source"><span>View Source</span></label>
|
<label class="view-source-button" for="WindowSpec.orderBy-view-source"><span>View Source</span></label>
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1139,6 +1139,7 @@ Default: True</li>
|
||||||
<dd id="Databricks.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Databricks.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Databricks.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Databricks.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Databricks.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Databricks.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Databricks.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Databricks.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Databricks.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Databricks.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Databricks.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Databricks.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
<dd id="Databricks.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
||||||
|
@ -1535,6 +1536,8 @@ Default: True</li>
|
||||||
<dd id="Databricks.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
<dd id="Databricks.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
||||||
<dd id="Databricks.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
<dd id="Databricks.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
||||||
<dd id="Databricks.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="Databricks.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="Databricks.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Databricks.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Databricks.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Databricks.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Databricks.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Databricks.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="Databricks.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="Databricks.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1984,6 +1984,8 @@
|
||||||
<dd id="Hive.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
<dd id="Hive.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
||||||
<dd id="Hive.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
<dd id="Hive.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
||||||
<dd id="Hive.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="Hive.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="Hive.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Hive.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Hive.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Hive.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Hive.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Hive.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="Hive.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="Hive.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
@ -2766,7 +2768,7 @@ Default: True</li>
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">EXPRESSIONS_WITHOUT_NESTED_CTES</span> =
|
<span class="name">EXPRESSIONS_WITHOUT_NESTED_CTES</span> =
|
||||||
<input id="Hive.Generator.EXPRESSIONS_WITHOUT_NESTED_CTES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="Hive.Generator.EXPRESSIONS_WITHOUT_NESTED_CTES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="Hive.Generator.EXPRESSIONS_WITHOUT_NESTED_CTES-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#Union">sqlglot.expressions.Union</a>'>, <class '<a href="../expressions.html#Insert">sqlglot.expressions.Insert</a>'>, <class '<a href="../expressions.html#Subquery">sqlglot.expressions.Subquery</a>'>, <class '<a href="../expressions.html#Select">sqlglot.expressions.Select</a>'>}</span>
|
<label class="view-value-button pdoc-button" for="Hive.Generator.EXPRESSIONS_WITHOUT_NESTED_CTES-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#Select">sqlglot.expressions.Select</a>'>, <class '<a href="../expressions.html#Union">sqlglot.expressions.Union</a>'>, <class '<a href="../expressions.html#Insert">sqlglot.expressions.Insert</a>'>, <class '<a href="../expressions.html#Subquery">sqlglot.expressions.Subquery</a>'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -2779,7 +2781,7 @@ Default: True</li>
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">SUPPORTED_JSON_PATH_PARTS</span> =
|
<span class="name">SUPPORTED_JSON_PATH_PARTS</span> =
|
||||||
<input id="Hive.Generator.SUPPORTED_JSON_PATH_PARTS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="Hive.Generator.SUPPORTED_JSON_PATH_PARTS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="Hive.Generator.SUPPORTED_JSON_PATH_PARTS-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#JSONPathWildcard">sqlglot.expressions.JSONPathWildcard</a>'>, <class '<a href="../expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>'>, <class '<a href="../expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>'>, <class '<a href="../expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>'>}</span>
|
<label class="view-value-button pdoc-button" for="Hive.Generator.SUPPORTED_JSON_PATH_PARTS-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>'>, <class '<a href="../expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>'>, <class '<a href="../expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>'>, <class '<a href="../expressions.html#JSONPathWildcard">sqlglot.expressions.JSONPathWildcard</a>'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -3101,6 +3103,7 @@ Default: True</li>
|
||||||
<dd id="Hive.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Hive.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Hive.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Hive.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Hive.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Hive.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Hive.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Hive.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Hive.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Hive.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Hive.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Hive.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
<dd id="Hive.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1304,7 +1304,7 @@ Default: 3</li>
|
||||||
<div id="Oracle.Parser.DISTINCT_TOKENS" class="classattr">
|
<div id="Oracle.Parser.DISTINCT_TOKENS" class="classattr">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">DISTINCT_TOKENS</span> =
|
<span class="name">DISTINCT_TOKENS</span> =
|
||||||
<span class="default_value">{<TokenType.UNIQUE: 'UNIQUE'>, <TokenType.DISTINCT: 'DISTINCT'>}</span>
|
<span class="default_value">{<TokenType.DISTINCT: 'DISTINCT'>, <TokenType.UNIQUE: 'UNIQUE'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -1894,6 +1894,7 @@ Default: True</li>
|
||||||
<dd id="Oracle.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Oracle.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Oracle.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Oracle.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Oracle.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Oracle.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Oracle.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Oracle.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Oracle.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Oracle.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Oracle.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Oracle.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
<dd id="Oracle.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
||||||
|
@ -2259,7 +2260,7 @@ Default: True</li>
|
||||||
<div id="Oracle.Tokenizer.VAR_SINGLE_TOKENS" class="classattr">
|
<div id="Oracle.Tokenizer.VAR_SINGLE_TOKENS" class="classattr">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">VAR_SINGLE_TOKENS</span> =
|
<span class="name">VAR_SINGLE_TOKENS</span> =
|
||||||
<span class="default_value">{'@', '#', '$'}</span>
|
<span class="default_value">{'#', '@', '$'}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -2297,6 +2298,8 @@ Default: True</li>
|
||||||
<dd id="Oracle.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
<dd id="Oracle.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
||||||
<dd id="Oracle.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
<dd id="Oracle.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
||||||
<dd id="Oracle.Tokenizer.STRING_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.STRING_ESCAPES">STRING_ESCAPES</a></dd>
|
<dd id="Oracle.Tokenizer.STRING_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.STRING_ESCAPES">STRING_ESCAPES</a></dd>
|
||||||
|
<dd id="Oracle.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Oracle.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Oracle.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Oracle.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Oracle.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Oracle.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="Oracle.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="Oracle.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -703,6 +703,8 @@
|
||||||
<dd id="Spark.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
<dd id="Spark.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
||||||
<dd id="Spark.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
<dd id="Spark.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
||||||
<dd id="Spark.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="Spark.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="Spark.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Spark.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Spark.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Spark.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Spark.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Spark.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="Spark.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="Spark.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
@ -1185,6 +1187,7 @@ Default: True</li>
|
||||||
<dd id="Spark.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Spark.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Spark.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Spark.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Spark.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Spark.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Spark.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Spark.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Spark.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Spark.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Spark.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Spark.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
<dd id="Spark.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
||||||
|
|
|
@ -1642,6 +1642,7 @@ Default: True</li>
|
||||||
<dd id="Spark2.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Spark2.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Spark2.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Spark2.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Spark2.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Spark2.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Spark2.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Spark2.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Spark2.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Spark2.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Spark2.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Spark2.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
<dd id="Spark2.Generator.STAR_MAPPING" class="variable"><a href="../generator.html#Generator.STAR_MAPPING">STAR_MAPPING</a></dd>
|
||||||
|
@ -2025,6 +2026,8 @@ Default: True</li>
|
||||||
<dd id="Spark2.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
<dd id="Spark2.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
||||||
<dd id="Spark2.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
<dd id="Spark2.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
||||||
<dd id="Spark2.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="Spark2.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="Spark2.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Spark2.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Spark2.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Spark2.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Spark2.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Spark2.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="Spark2.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="Spark2.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -805,6 +805,7 @@ Default: True</li>
|
||||||
<dd id="Tableau.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Tableau.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Tableau.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Tableau.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Tableau.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Tableau.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Tableau.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Tableau.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Tableau.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Tableau.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Tableau.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Tableau.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
<dd id="Tableau.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1005,6 +1005,7 @@ Default: True</li>
|
||||||
<dd id="Trino.Generator.LIMIT_ONLY_LITERALS" class="variable"><a href="presto.html#Presto.Generator.LIMIT_ONLY_LITERALS">LIMIT_ONLY_LITERALS</a></dd>
|
<dd id="Trino.Generator.LIMIT_ONLY_LITERALS" class="variable"><a href="presto.html#Presto.Generator.LIMIT_ONLY_LITERALS">LIMIT_ONLY_LITERALS</a></dd>
|
||||||
<dd id="Trino.Generator.SUPPORTS_SINGLE_ARG_CONCAT" class="variable"><a href="presto.html#Presto.Generator.SUPPORTS_SINGLE_ARG_CONCAT">SUPPORTS_SINGLE_ARG_CONCAT</a></dd>
|
<dd id="Trino.Generator.SUPPORTS_SINGLE_ARG_CONCAT" class="variable"><a href="presto.html#Presto.Generator.SUPPORTS_SINGLE_ARG_CONCAT">SUPPORTS_SINGLE_ARG_CONCAT</a></dd>
|
||||||
<dd id="Trino.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="presto.html#Presto.Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Trino.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="presto.html#Presto.Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Trino.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="presto.html#Presto.Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Trino.Generator.PROPERTIES_LOCATION" class="variable"><a href="presto.html#Presto.Generator.PROPERTIES_LOCATION">PROPERTIES_LOCATION</a></dd>
|
<dd id="Trino.Generator.PROPERTIES_LOCATION" class="variable"><a href="presto.html#Presto.Generator.PROPERTIES_LOCATION">PROPERTIES_LOCATION</a></dd>
|
||||||
<dd id="Trino.Generator.TYPE_MAPPING" class="variable"><a href="presto.html#Presto.Generator.TYPE_MAPPING">TYPE_MAPPING</a></dd>
|
<dd id="Trino.Generator.TYPE_MAPPING" class="variable"><a href="presto.html#Presto.Generator.TYPE_MAPPING">TYPE_MAPPING</a></dd>
|
||||||
<dd id="Trino.Generator.bracket_sql" class="function"><a href="presto.html#Presto.Generator.bracket_sql">bracket_sql</a></dd>
|
<dd id="Trino.Generator.bracket_sql" class="function"><a href="presto.html#Presto.Generator.bracket_sql">bracket_sql</a></dd>
|
||||||
|
@ -1064,6 +1065,8 @@ Default: True</li>
|
||||||
<dd id="Trino.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
<dd id="Trino.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
||||||
<dd id="Trino.Tokenizer.STRING_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.STRING_ESCAPES">STRING_ESCAPES</a></dd>
|
<dd id="Trino.Tokenizer.STRING_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.STRING_ESCAPES">STRING_ESCAPES</a></dd>
|
||||||
<dd id="Trino.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="Trino.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="Trino.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Trino.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Trino.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Trino.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Trino.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Trino.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="Trino.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="Trino.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -214,7 +214,7 @@
|
||||||
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">sqlglot.executor.context</span> <span class="kn">import</span> <span class="n">Context</span>
|
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">sqlglot.executor.context</span> <span class="kn">import</span> <span class="n">Context</span>
|
||||||
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">sqlglot.executor.env</span> <span class="kn">import</span> <span class="n">ENV</span>
|
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">sqlglot.executor.env</span> <span class="kn">import</span> <span class="n">ENV</span>
|
||||||
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">sqlglot.executor.table</span> <span class="kn">import</span> <span class="n">RowReader</span><span class="p">,</span> <span class="n">Table</span>
|
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">sqlglot.executor.table</span> <span class="kn">import</span> <span class="n">RowReader</span><span class="p">,</span> <span class="n">Table</span>
|
||||||
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">csv_reader</span><span class="p">,</span> <span class="n">subclasses</span>
|
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">csv_reader</span><span class="p">,</span> <span class="n">ensure_list</span><span class="p">,</span> <span class="n">subclasses</span>
|
||||||
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a>
|
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a>
|
||||||
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a>
|
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a>
|
||||||
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="k">class</span> <span class="nc">PythonExecutor</span><span class="p">:</span>
|
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="k">class</span> <span class="nc">PythonExecutor</span><span class="p">:</span>
|
||||||
|
@ -573,7 +573,7 @@
|
||||||
</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a>
|
</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a>
|
||||||
</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Func</span><span class="p">)</span> <span class="ow">and</span> <span class="n">e</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
|
</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Func</span><span class="p">)</span> <span class="ow">and</span> <span class="n">e</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
|
||||||
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="o">*</span><span class="n">head</span><span class="p">,</span> <span class="n">tail</span> <span class="o">=</span> <span class="n">values</span>
|
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="o">*</span><span class="n">head</span><span class="p">,</span> <span class="n">tail</span> <span class="o">=</span> <span class="n">values</span>
|
||||||
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="o">*</span><span class="n">head</span><span class="p">,</span> <span class="o">*</span><span class="n">tail</span><span class="p">)</span>
|
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="o">*</span><span class="n">head</span><span class="p">,</span> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">tail</span><span class="p">))</span>
|
||||||
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a>
|
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a>
|
||||||
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="o">*</span><span class="n">values</span><span class="p">)</span>
|
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="o">*</span><span class="n">values</span><span class="p">)</span>
|
||||||
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
||||||
|
@ -2015,6 +2015,8 @@
|
||||||
<dd id="Python.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
<dd id="Python.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
||||||
<dd id="Python.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
<dd id="Python.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
||||||
<dd id="Python.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="Python.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="Python.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="Python.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="../tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="Python.Tokenizer.KEYWORDS" class="variable"><a href="../tokens.html#Tokenizer.KEYWORDS">KEYWORDS</a></dd>
|
<dd id="Python.Tokenizer.KEYWORDS" class="variable"><a href="../tokens.html#Tokenizer.KEYWORDS">KEYWORDS</a></dd>
|
||||||
<dd id="Python.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="Python.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="Python.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="Python.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
|
@ -2205,6 +2207,7 @@ Default: True</li>
|
||||||
<dd id="Python.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
<dd id="Python.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
||||||
<dd id="Python.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
<dd id="Python.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
||||||
<dd id="Python.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
<dd id="Python.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="../generator.html#Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
||||||
|
<dd id="Python.Generator.MULTI_ARG_DISTINCT" class="variable"><a href="../generator.html#Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a></dd>
|
||||||
<dd id="Python.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
<dd id="Python.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="../generator.html#Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
||||||
<dd id="Python.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
<dd id="Python.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
||||||
<dd id="Python.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
<dd id="Python.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
||||||
|
|
|
@ -5738,6 +5738,9 @@
|
||||||
<li>
|
<li>
|
||||||
<a class="variable" href="#JSONExtract.arg_types">arg_types</a>
|
<a class="variable" href="#JSONExtract.arg_types">arg_types</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="variable" href="#JSONExtract.is_var_len_args">is_var_len_args</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="variable" href="#JSONExtract.output_name">output_name</a>
|
<a class="variable" href="#JSONExtract.output_name">output_name</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -5753,6 +5756,9 @@
|
||||||
<li>
|
<li>
|
||||||
<a class="variable" href="#JSONExtractScalar.arg_types">arg_types</a>
|
<a class="variable" href="#JSONExtractScalar.arg_types">arg_types</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="variable" href="#JSONExtractScalar.is_var_len_args">is_var_len_args</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="variable" href="#JSONExtractScalar.output_name">output_name</a>
|
<a class="variable" href="#JSONExtractScalar.output_name">output_name</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -8878,7 +8884,7 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
|
||||||
</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a>
|
</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a>
|
||||||
</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a>
|
</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a>
|
||||||
</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
||||||
</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a>
|
</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a>
|
||||||
</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a>
|
</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a>
|
||||||
</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
|
</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
|
||||||
|
@ -9051,7 +9057,7 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
|
||||||
</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a>
|
</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a>
|
||||||
</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a>
|
</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a>
|
||||||
</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
||||||
</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
|
</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a>
|
</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a>
|
||||||
</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a>
|
</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a>
|
||||||
</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
||||||
|
@ -12099,19 +12105,19 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
|
||||||
</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a>
|
</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a>
|
||||||
</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a>
|
</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a>
|
||||||
</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
||||||
</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="c1"># MySQL and SQLite support a variant of JSON_EXTRACT where you can have multiple JSON</span>
|
</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a> <span class="c1"># paths and you get back a list of values. These paths will be stored in `expressions`</span>
|
</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span>
|
||||||
</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span>
|
</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a>
|
||||||
</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a>
|
</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a> <span class="nd">@property</span>
|
||||||
</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a> <span class="nd">@property</span>
|
</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||||
</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span>
|
||||||
</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span>
|
</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a>
|
||||||
</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
|
</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
|
||||||
</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a>
|
</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
||||||
</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"null_if_invalid"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span>
|
||||||
</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span>
|
</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a>
|
</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a>
|
||||||
</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a> <span class="nd">@property</span>
|
</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a> <span class="nd">@property</span>
|
||||||
</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||||
|
@ -29837,7 +29843,7 @@ Otherwise, this resets the expressions.</li>
|
||||||
</div>
|
</div>
|
||||||
<a class="headerlink" href="#Limit"></a>
|
<a class="headerlink" href="#Limit"></a>
|
||||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1799"><a href="#Limit-1799"><span class="linenos">1799</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1799"><a href="#Limit-1799"><span class="linenos">1799</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
||||||
</span><span id="Limit-1800"><a href="#Limit-1800"><span class="linenos">1800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
</span><span id="Limit-1800"><a href="#Limit-1800"><span class="linenos">1800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span></pre></div>
|
</span></pre></div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -29846,7 +29852,7 @@ Otherwise, this resets the expressions.</li>
|
||||||
<div id="Limit.arg_types" class="classattr">
|
<div id="Limit.arg_types" class="classattr">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">arg_types</span> =
|
<span class="name">arg_types</span> =
|
||||||
<span class="default_value">{'this': False, 'expression': True, 'offset': False}</span>
|
<span class="default_value">{'this': False, 'expression': True, 'offset': False, 'expressions': False}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -31051,7 +31057,7 @@ Otherwise, this resets the expression.</li>
|
||||||
</div>
|
</div>
|
||||||
<a class="headerlink" href="#Offset"></a>
|
<a class="headerlink" href="#Offset"></a>
|
||||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Offset-1972"><a href="#Offset-1972"><span class="linenos">1972</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Offset-1972"><a href="#Offset-1972"><span class="linenos">1972</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
|
||||||
</span><span id="Offset-1973"><a href="#Offset-1973"><span class="linenos">1973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
|
</span><span id="Offset-1973"><a href="#Offset-1973"><span class="linenos">1973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span></pre></div>
|
</span></pre></div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -31060,7 +31066,7 @@ Otherwise, this resets the expression.</li>
|
||||||
<div id="Offset.arg_types" class="classattr">
|
<div id="Offset.arg_types" class="classattr">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">arg_types</span> =
|
<span class="name">arg_types</span> =
|
||||||
<span class="default_value">{'this': False, 'expression': True}</span>
|
<span class="default_value">{'this': False, 'expression': True, 'expressions': False}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -47900,7 +47906,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">TEXT_TYPES</span> =
|
<span class="name">TEXT_TYPES</span> =
|
||||||
<input id="DataType.TEXT_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="DataType.TEXT_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{<Type.CHAR: 'CHAR'>, <Type.NVARCHAR: 'NVARCHAR'>, <Type.NCHAR: 'NCHAR'>, <Type.VARCHAR: 'VARCHAR'>, <Type.TEXT: 'TEXT'>}</span>
|
<label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{<Type.TEXT: 'TEXT'>, <Type.NCHAR: 'NCHAR'>, <Type.CHAR: 'CHAR'>, <Type.VARCHAR: 'VARCHAR'>, <Type.NVARCHAR: 'NVARCHAR'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -47913,7 +47919,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">INTEGER_TYPES</span> =
|
<span class="name">INTEGER_TYPES</span> =
|
||||||
<input id="DataType.INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="DataType.INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{<Type.BIT: 'BIT'>, <Type.INT: 'INT'>, <Type.TINYINT: 'TINYINT'>, <Type.INT128: 'INT128'>, <Type.SMALLINT: 'SMALLINT'>, <Type.INT256: 'INT256'>, <Type.BIGINT: 'BIGINT'>}</span>
|
<label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{<Type.INT256: 'INT256'>, <Type.INT: 'INT'>, <Type.TINYINT: 'TINYINT'>, <Type.BIT: 'BIT'>, <Type.INT128: 'INT128'>, <Type.SMALLINT: 'SMALLINT'>, <Type.BIGINT: 'BIGINT'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -47938,7 +47944,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">NUMERIC_TYPES</span> =
|
<span class="name">NUMERIC_TYPES</span> =
|
||||||
<input id="DataType.NUMERIC_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="DataType.NUMERIC_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{<Type.FLOAT: 'FLOAT'>, <Type.BIT: 'BIT'>, <Type.INT: 'INT'>, <Type.TINYINT: 'TINYINT'>, <Type.INT128: 'INT128'>, <Type.SMALLINT: 'SMALLINT'>, <Type.DOUBLE: 'DOUBLE'>, <Type.INT256: 'INT256'>, <Type.BIGINT: 'BIGINT'>}</span>
|
<label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{<Type.INT256: 'INT256'>, <Type.INT: 'INT'>, <Type.FLOAT: 'FLOAT'>, <Type.TINYINT: 'TINYINT'>, <Type.BIT: 'BIT'>, <Type.INT128: 'INT128'>, <Type.DOUBLE: 'DOUBLE'>, <Type.SMALLINT: 'SMALLINT'>, <Type.BIGINT: 'BIGINT'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -47951,7 +47957,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">TEMPORAL_TYPES</span> =
|
<span class="name">TEMPORAL_TYPES</span> =
|
||||||
<input id="DataType.TEMPORAL_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="DataType.TEMPORAL_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{<Type.TIMESTAMP: 'TIMESTAMP'>, <Type.TIME: 'TIME'>, <Type.TIMESTAMP_NS: 'TIMESTAMP_NS'>, <Type.DATE: 'DATE'>, <Type.TIMESTAMP_S: 'TIMESTAMP_S'>, <Type.DATE32: 'DATE32'>, <Type.DATETIME: 'DATETIME'>, <Type.TIMETZ: 'TIMETZ'>, <Type.TIMESTAMPTZ: 'TIMESTAMPTZ'>, <Type.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>, <Type.TIMESTAMP_MS: 'TIMESTAMP_MS'>, <Type.DATETIME64: 'DATETIME64'>}</span>
|
<label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{<Type.DATE: 'DATE'>, <Type.TIMETZ: 'TIMETZ'>, <Type.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>, <Type.TIMESTAMPTZ: 'TIMESTAMPTZ'>, <Type.TIMESTAMP: 'TIMESTAMP'>, <Type.TIMESTAMP_MS: 'TIMESTAMP_MS'>, <Type.DATE32: 'DATE32'>, <Type.DATETIME64: 'DATETIME64'>, <Type.TIMESTAMP_S: 'TIMESTAMP_S'>, <Type.DATETIME: 'DATETIME'>, <Type.TIMESTAMP_NS: 'TIMESTAMP_NS'>, <Type.TIME: 'TIME'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -75298,14 +75304,13 @@ array<int> != array<float>.</p>
|
||||||
</div>
|
</div>
|
||||||
<a class="headerlink" href="#JSONExtract"></a>
|
<a class="headerlink" href="#JSONExtract"></a>
|
||||||
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-5020"><a href="#JSONExtract-5020"><span class="linenos">5020</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-5020"><a href="#JSONExtract-5020"><span class="linenos">5020</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
||||||
</span><span id="JSONExtract-5021"><a href="#JSONExtract-5021"><span class="linenos">5021</span></a> <span class="c1"># MySQL and SQLite support a variant of JSON_EXTRACT where you can have multiple JSON</span>
|
</span><span id="JSONExtract-5021"><a href="#JSONExtract-5021"><span class="linenos">5021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span><span id="JSONExtract-5022"><a href="#JSONExtract-5022"><span class="linenos">5022</span></a> <span class="c1"># paths and you get back a list of values. These paths will be stored in `expressions`</span>
|
</span><span id="JSONExtract-5022"><a href="#JSONExtract-5022"><span class="linenos">5022</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span>
|
||||||
</span><span id="JSONExtract-5023"><a href="#JSONExtract-5023"><span class="linenos">5023</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
</span><span id="JSONExtract-5023"><a href="#JSONExtract-5023"><span class="linenos">5023</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
</span><span id="JSONExtract-5024"><a href="#JSONExtract-5024"><span class="linenos">5024</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span>
|
</span><span id="JSONExtract-5024"><a href="#JSONExtract-5024"><span class="linenos">5024</span></a>
|
||||||
</span><span id="JSONExtract-5025"><a href="#JSONExtract-5025"><span class="linenos">5025</span></a>
|
</span><span id="JSONExtract-5025"><a href="#JSONExtract-5025"><span class="linenos">5025</span></a> <span class="nd">@property</span>
|
||||||
</span><span id="JSONExtract-5026"><a href="#JSONExtract-5026"><span class="linenos">5026</span></a> <span class="nd">@property</span>
|
</span><span id="JSONExtract-5026"><a href="#JSONExtract-5026"><span class="linenos">5026</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||||
</span><span id="JSONExtract-5027"><a href="#JSONExtract-5027"><span class="linenos">5027</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
</span><span id="JSONExtract-5027"><a href="#JSONExtract-5027"><span class="linenos">5027</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span>
|
||||||
</span><span id="JSONExtract-5028"><a href="#JSONExtract-5028"><span class="linenos">5028</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span>
|
|
||||||
</span></pre></div>
|
</span></pre></div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -75322,6 +75327,18 @@ array<int> != array<float>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="JSONExtract.is_var_len_args" class="classattr">
|
||||||
|
<div class="attr variable">
|
||||||
|
<span class="name">is_var_len_args</span> =
|
||||||
|
<span class="default_value">True</span>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<a class="headerlink" href="#JSONExtract.is_var_len_args"></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="JSONExtract.output_name" class="classattr">
|
<div id="JSONExtract.output_name" class="classattr">
|
||||||
<input id="JSONExtract.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="JSONExtract.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
|
@ -75332,9 +75349,9 @@ array<int> != array<float>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<a class="headerlink" href="#JSONExtract.output_name"></a>
|
<a class="headerlink" href="#JSONExtract.output_name"></a>
|
||||||
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract.output_name-5026"><a href="#JSONExtract.output_name-5026"><span class="linenos">5026</span></a> <span class="nd">@property</span>
|
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract.output_name-5025"><a href="#JSONExtract.output_name-5025"><span class="linenos">5025</span></a> <span class="nd">@property</span>
|
||||||
</span><span id="JSONExtract.output_name-5027"><a href="#JSONExtract.output_name-5027"><span class="linenos">5027</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
</span><span id="JSONExtract.output_name-5026"><a href="#JSONExtract.output_name-5026"><span class="linenos">5026</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||||
</span><span id="JSONExtract.output_name-5028"><a href="#JSONExtract.output_name-5028"><span class="linenos">5028</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span>
|
</span><span id="JSONExtract.output_name-5027"><a href="#JSONExtract.output_name-5027"><span class="linenos">5027</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span>
|
||||||
</span></pre></div>
|
</span></pre></div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -75448,7 +75465,6 @@ array<int> != array<float>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div><dt><a href="#Func">Func</a></dt>
|
<div><dt><a href="#Func">Func</a></dt>
|
||||||
<dd id="JSONExtract.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
|
|
||||||
<dd id="JSONExtract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
|
<dd id="JSONExtract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
|
||||||
<dd id="JSONExtract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
|
<dd id="JSONExtract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
|
||||||
<dd id="JSONExtract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
|
<dd id="JSONExtract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
|
||||||
|
@ -75469,9 +75485,10 @@ array<int> != array<float>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<a class="headerlink" href="#JSONExtractScalar"></a>
|
<a class="headerlink" href="#JSONExtractScalar"></a>
|
||||||
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-5031"><a href="#JSONExtractScalar-5031"><span class="linenos">5031</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-5030"><a href="#JSONExtractScalar-5030"><span class="linenos">5030</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
|
||||||
</span><span id="JSONExtractScalar-5032"><a href="#JSONExtractScalar-5032"><span class="linenos">5032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"null_if_invalid"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
</span><span id="JSONExtractScalar-5031"><a href="#JSONExtractScalar-5031"><span class="linenos">5031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
||||||
</span><span id="JSONExtractScalar-5033"><a href="#JSONExtractScalar-5033"><span class="linenos">5033</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span>
|
</span><span id="JSONExtractScalar-5032"><a href="#JSONExtractScalar-5032"><span class="linenos">5032</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span>
|
||||||
|
</span><span id="JSONExtractScalar-5033"><a href="#JSONExtractScalar-5033"><span class="linenos">5033</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
</span><span id="JSONExtractScalar-5034"><a href="#JSONExtractScalar-5034"><span class="linenos">5034</span></a>
|
</span><span id="JSONExtractScalar-5034"><a href="#JSONExtractScalar-5034"><span class="linenos">5034</span></a>
|
||||||
</span><span id="JSONExtractScalar-5035"><a href="#JSONExtractScalar-5035"><span class="linenos">5035</span></a> <span class="nd">@property</span>
|
</span><span id="JSONExtractScalar-5035"><a href="#JSONExtractScalar-5035"><span class="linenos">5035</span></a> <span class="nd">@property</span>
|
||||||
</span><span id="JSONExtractScalar-5036"><a href="#JSONExtractScalar-5036"><span class="linenos">5036</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
</span><span id="JSONExtractScalar-5036"><a href="#JSONExtractScalar-5036"><span class="linenos">5036</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||||
|
@ -75484,7 +75501,7 @@ array<int> != array<float>.</p>
|
||||||
<div id="JSONExtractScalar.arg_types" class="classattr">
|
<div id="JSONExtractScalar.arg_types" class="classattr">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">arg_types</span> =
|
<span class="name">arg_types</span> =
|
||||||
<span class="default_value">{'this': True, 'expression': True, 'null_if_invalid': False}</span>
|
<span class="default_value">{'this': True, 'expression': True, 'expressions': False}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -75492,6 +75509,18 @@ array<int> != array<float>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="JSONExtractScalar.is_var_len_args" class="classattr">
|
||||||
|
<div class="attr variable">
|
||||||
|
<span class="name">is_var_len_args</span> =
|
||||||
|
<span class="default_value">True</span>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<a class="headerlink" href="#JSONExtractScalar.is_var_len_args"></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="JSONExtractScalar.output_name" class="classattr">
|
<div id="JSONExtractScalar.output_name" class="classattr">
|
||||||
<input id="JSONExtractScalar.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="JSONExtractScalar.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
|
@ -75618,7 +75647,6 @@ array<int> != array<float>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div><dt><a href="#Func">Func</a></dt>
|
<div><dt><a href="#Func">Func</a></dt>
|
||||||
<dd id="JSONExtractScalar.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
|
|
||||||
<dd id="JSONExtractScalar.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
|
<dd id="JSONExtractScalar.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
|
||||||
<dd id="JSONExtractScalar.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
|
<dd id="JSONExtractScalar.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
|
||||||
<dd id="JSONExtractScalar.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
|
<dd id="JSONExtractScalar.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1808,7 +1808,7 @@ belong to some totally-ordered set.</p>
|
||||||
<section id="DATE_UNITS">
|
<section id="DATE_UNITS">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">DATE_UNITS</span> =
|
<span class="name">DATE_UNITS</span> =
|
||||||
<span class="default_value">{'year_month', 'quarter', 'day', 'week', 'year', 'month'}</span>
|
<span class="default_value">{'year_month', 'quarter', 'month', 'year', 'week', 'day'}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -384,6 +384,8 @@
|
||||||
<dd id="JSONPathTokenizer.IDENTIFIERS" class="variable"><a href="tokens.html#Tokenizer.IDENTIFIERS">IDENTIFIERS</a></dd>
|
<dd id="JSONPathTokenizer.IDENTIFIERS" class="variable"><a href="tokens.html#Tokenizer.IDENTIFIERS">IDENTIFIERS</a></dd>
|
||||||
<dd id="JSONPathTokenizer.QUOTES" class="variable"><a href="tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
<dd id="JSONPathTokenizer.QUOTES" class="variable"><a href="tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
||||||
<dd id="JSONPathTokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
<dd id="JSONPathTokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="tokens.html#Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
||||||
|
<dd id="JSONPathTokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="tokens.html#Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
||||||
|
<dd id="JSONPathTokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="tokens.html#Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
||||||
<dd id="JSONPathTokenizer.WHITE_SPACE" class="variable"><a href="tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
<dd id="JSONPathTokenizer.WHITE_SPACE" class="variable"><a href="tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
||||||
<dd id="JSONPathTokenizer.COMMANDS" class="variable"><a href="tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
<dd id="JSONPathTokenizer.COMMANDS" class="variable"><a href="tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
||||||
<dd id="JSONPathTokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
<dd id="JSONPathTokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
||||||
|
@ -576,7 +578,7 @@
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">ALL_JSON_PATH_PARTS</span> =
|
<span class="name">ALL_JSON_PATH_PARTS</span> =
|
||||||
<input id="ALL_JSON_PATH_PARTS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="ALL_JSON_PATH_PARTS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="ALL_JSON_PATH_PARTS-view-value"></label><span class="default_value">{<class '<a href="expressions.html#JSONPathScript">sqlglot.expressions.JSONPathScript</a>'>, <class '<a href="expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>'>, <class '<a href="expressions.html#JSONPathRecursive">sqlglot.expressions.JSONPathRecursive</a>'>, <class '<a href="expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>'>, <class '<a href="expressions.html#JSONPathWildcard">sqlglot.expressions.JSONPathWildcard</a>'>, <class '<a href="expressions.html#JSONPathFilter">sqlglot.expressions.JSONPathFilter</a>'>, <class '<a href="expressions.html#JSONPathUnion">sqlglot.expressions.JSONPathUnion</a>'>, <class '<a href="expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>'>, <class '<a href="expressions.html#JSONPathSelector">sqlglot.expressions.JSONPathSelector</a>'>, <class '<a href="expressions.html#JSONPathSlice">sqlglot.expressions.JSONPathSlice</a>'>}</span>
|
<label class="view-value-button pdoc-button" for="ALL_JSON_PATH_PARTS-view-value"></label><span class="default_value">{<class '<a href="expressions.html#JSONPathSelector">sqlglot.expressions.JSONPathSelector</a>'>, <class '<a href="expressions.html#JSONPathSlice">sqlglot.expressions.JSONPathSlice</a>'>, <class '<a href="expressions.html#JSONPathUnion">sqlglot.expressions.JSONPathUnion</a>'>, <class '<a href="expressions.html#JSONPathScript">sqlglot.expressions.JSONPathScript</a>'>, <class '<a href="expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>'>, <class '<a href="expressions.html#JSONPathRecursive">sqlglot.expressions.JSONPathRecursive</a>'>, <class '<a href="expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>'>, <class '<a href="expressions.html#JSONPathWildcard">sqlglot.expressions.JSONPathWildcard</a>'>, <class '<a href="expressions.html#JSONPathFilter">sqlglot.expressions.JSONPathFilter</a>'>, <class '<a href="expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -585,7 +585,7 @@ queries if it would result in multiple table selects in a single query:</p>
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">UNMERGABLE_ARGS</span> =
|
<span class="name">UNMERGABLE_ARGS</span> =
|
||||||
<input id="UNMERGABLE_ARGS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="UNMERGABLE_ARGS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="UNMERGABLE_ARGS-view-value"></label><span class="default_value">{'distribute', 'settings', 'windows', 'format', 'group', 'having', 'limit', 'laterals', 'with', 'offset', 'into', 'cluster', 'locks', 'distinct', 'match', 'connect', 'kind', 'sample', 'qualify', 'sort', 'pivots'}</span>
|
<label class="view-value-button pdoc-button" for="UNMERGABLE_ARGS-view-value"></label><span class="default_value">{'match', 'format', 'having', 'windows', 'settings', 'laterals', 'connect', 'qualify', 'group', 'cluster', 'distribute', 'kind', 'sample', 'sort', 'locks', 'offset', 'with', 'pivots', 'into', 'distinct', 'limit'}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2546,7 +2546,7 @@ prefix are statically known.</p>
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">DATETRUNC_COMPARISONS</span> =
|
<span class="name">DATETRUNC_COMPARISONS</span> =
|
||||||
<input id="DATETRUNC_COMPARISONS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
<input id="DATETRUNC_COMPARISONS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||||
<label class="view-value-button pdoc-button" for="DATETRUNC_COMPARISONS-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#LT">sqlglot.expressions.LT</a>'>, <class '<a href="../expressions.html#NEQ">sqlglot.expressions.NEQ</a>'>, <class '<a href="../expressions.html#In">sqlglot.expressions.In</a>'>, <class '<a href="../expressions.html#GTE">sqlglot.expressions.GTE</a>'>, <class '<a href="../expressions.html#LTE">sqlglot.expressions.LTE</a>'>, <class '<a href="../expressions.html#EQ">sqlglot.expressions.EQ</a>'>, <class '<a href="../expressions.html#GT">sqlglot.expressions.GT</a>'>}</span>
|
<label class="view-value-button pdoc-button" for="DATETRUNC_COMPARISONS-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#LTE">sqlglot.expressions.LTE</a>'>, <class '<a href="../expressions.html#GT">sqlglot.expressions.GT</a>'>, <class '<a href="../expressions.html#EQ">sqlglot.expressions.EQ</a>'>, <class '<a href="../expressions.html#LT">sqlglot.expressions.LT</a>'>, <class '<a href="../expressions.html#NEQ">sqlglot.expressions.NEQ</a>'>, <class '<a href="../expressions.html#In">sqlglot.expressions.In</a>'>, <class '<a href="../expressions.html#GTE">sqlglot.expressions.GTE</a>'>}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -2626,7 +2626,7 @@ prefix are statically known.</p>
|
||||||
<section id="JOINS">
|
<section id="JOINS">
|
||||||
<div class="attr variable">
|
<div class="attr variable">
|
||||||
<span class="name">JOINS</span> =
|
<span class="name">JOINS</span> =
|
||||||
<span class="default_value">{('RIGHT', 'OUTER'), ('RIGHT', ''), ('', 'INNER'), ('', '')}</span>
|
<span class="default_value">{('', ''), ('', 'INNER'), ('RIGHT', ''), ('RIGHT', 'OUTER')}</span>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
12892
docs/sqlglot/parser.html
12892
docs/sqlglot/parser.html
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -333,6 +333,7 @@ class DuckDB(Dialect):
|
||||||
IGNORE_NULLS_IN_FUNC = True
|
IGNORE_NULLS_IN_FUNC = True
|
||||||
JSON_PATH_BRACKETED_KEY_SUPPORTED = False
|
JSON_PATH_BRACKETED_KEY_SUPPORTED = False
|
||||||
SUPPORTS_CREATE_TABLE_LIKE = False
|
SUPPORTS_CREATE_TABLE_LIKE = False
|
||||||
|
MULTI_ARG_DISTINCT = False
|
||||||
|
|
||||||
TRANSFORMS = {
|
TRANSFORMS = {
|
||||||
**generator.Generator.TRANSFORMS,
|
**generator.Generator.TRANSFORMS,
|
||||||
|
|
|
@ -232,6 +232,9 @@ class Postgres(Dialect):
|
||||||
BYTE_STRINGS = [("e'", "'"), ("E'", "'")]
|
BYTE_STRINGS = [("e'", "'"), ("E'", "'")]
|
||||||
HEREDOC_STRINGS = ["$"]
|
HEREDOC_STRINGS = ["$"]
|
||||||
|
|
||||||
|
HEREDOC_TAG_IS_IDENTIFIER = True
|
||||||
|
HEREDOC_STRING_ALTERNATIVE = TokenType.PARAMETER
|
||||||
|
|
||||||
KEYWORDS = {
|
KEYWORDS = {
|
||||||
**tokens.Tokenizer.KEYWORDS,
|
**tokens.Tokenizer.KEYWORDS,
|
||||||
"~~": TokenType.LIKE,
|
"~~": TokenType.LIKE,
|
||||||
|
@ -381,6 +384,7 @@ class Postgres(Dialect):
|
||||||
JSON_TYPE_REQUIRED_FOR_EXTRACTION = True
|
JSON_TYPE_REQUIRED_FOR_EXTRACTION = True
|
||||||
SUPPORTS_UNLOGGED_TABLES = True
|
SUPPORTS_UNLOGGED_TABLES = True
|
||||||
LIKE_PROPERTY_INSIDE_SCHEMA = True
|
LIKE_PROPERTY_INSIDE_SCHEMA = True
|
||||||
|
MULTI_ARG_DISTINCT = False
|
||||||
|
|
||||||
SUPPORTED_JSON_PATH_PARTS = {
|
SUPPORTED_JSON_PATH_PARTS = {
|
||||||
exp.JSONPathKey,
|
exp.JSONPathKey,
|
||||||
|
|
|
@ -292,6 +292,7 @@ class Presto(Dialect):
|
||||||
LIMIT_ONLY_LITERALS = True
|
LIMIT_ONLY_LITERALS = True
|
||||||
SUPPORTS_SINGLE_ARG_CONCAT = False
|
SUPPORTS_SINGLE_ARG_CONCAT = False
|
||||||
LIKE_PROPERTY_INSIDE_SCHEMA = True
|
LIKE_PROPERTY_INSIDE_SCHEMA = True
|
||||||
|
MULTI_ARG_DISTINCT = False
|
||||||
|
|
||||||
PROPERTIES_LOCATION = {
|
PROPERTIES_LOCATION = {
|
||||||
**generator.Generator.PROPERTIES_LOCATION,
|
**generator.Generator.PROPERTIES_LOCATION,
|
||||||
|
|
|
@ -50,9 +50,6 @@ class Spark(Spark2):
|
||||||
"DATEDIFF": _parse_datediff,
|
"DATEDIFF": _parse_datediff,
|
||||||
}
|
}
|
||||||
|
|
||||||
FUNCTION_PARSERS = Spark2.Parser.FUNCTION_PARSERS.copy()
|
|
||||||
FUNCTION_PARSERS.pop("ANY_VALUE")
|
|
||||||
|
|
||||||
def _parse_generated_as_identity(
|
def _parse_generated_as_identity(
|
||||||
self,
|
self,
|
||||||
) -> (
|
) -> (
|
||||||
|
|
|
@ -1796,7 +1796,7 @@ class Lambda(Expression):
|
||||||
|
|
||||||
|
|
||||||
class Limit(Expression):
|
class Limit(Expression):
|
||||||
arg_types = {"this": False, "expression": True, "offset": False}
|
arg_types = {"this": False, "expression": True, "offset": False, "expressions": False}
|
||||||
|
|
||||||
|
|
||||||
class Literal(Condition):
|
class Literal(Condition):
|
||||||
|
@ -1969,7 +1969,7 @@ class Final(Expression):
|
||||||
|
|
||||||
|
|
||||||
class Offset(Expression):
|
class Offset(Expression):
|
||||||
arg_types = {"this": False, "expression": True}
|
arg_types = {"this": False, "expression": True, "expressions": False}
|
||||||
|
|
||||||
|
|
||||||
class Order(Expression):
|
class Order(Expression):
|
||||||
|
@ -4291,6 +4291,11 @@ class RespectNulls(Expression):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
# https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate-function-calls#max_min_clause
|
||||||
|
class HavingMax(Expression):
|
||||||
|
arg_types = {"this": True, "expression": True, "max": True}
|
||||||
|
|
||||||
|
|
||||||
# Functions
|
# Functions
|
||||||
class Func(Condition):
|
class Func(Condition):
|
||||||
"""
|
"""
|
||||||
|
@ -4491,7 +4496,7 @@ class Avg(AggFunc):
|
||||||
|
|
||||||
|
|
||||||
class AnyValue(AggFunc):
|
class AnyValue(AggFunc):
|
||||||
arg_types = {"this": True, "having": False, "max": False}
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Lag(AggFunc):
|
class Lag(AggFunc):
|
||||||
|
|
|
@ -296,6 +296,10 @@ class Generator(metaclass=_Generator):
|
||||||
# Whether or not the LikeProperty needs to be specified inside of the schema clause
|
# Whether or not the LikeProperty needs to be specified inside of the schema clause
|
||||||
LIKE_PROPERTY_INSIDE_SCHEMA = False
|
LIKE_PROPERTY_INSIDE_SCHEMA = False
|
||||||
|
|
||||||
|
# Whether or not DISTINCT can be followed by multiple args in an AggFunc. If not, it will be
|
||||||
|
# transpiled into a series of CASE-WHEN-ELSE, ultimately using a tuple conseisting of the args
|
||||||
|
MULTI_ARG_DISTINCT = True
|
||||||
|
|
||||||
# Whether or not the JSON extraction operators expect a value of type JSON
|
# Whether or not the JSON extraction operators expect a value of type JSON
|
||||||
JSON_TYPE_REQUIRED_FOR_EXTRACTION = False
|
JSON_TYPE_REQUIRED_FOR_EXTRACTION = False
|
||||||
|
|
||||||
|
@ -1841,15 +1845,18 @@ class Generator(metaclass=_Generator):
|
||||||
|
|
||||||
args_sql = ", ".join(self.sql(e) for e in args)
|
args_sql = ", ".join(self.sql(e) for e in args)
|
||||||
args_sql = f"({args_sql})" if any(top and not e.is_number for e in args) else args_sql
|
args_sql = f"({args_sql})" if any(top and not e.is_number for e in args) else args_sql
|
||||||
return f"{this}{self.seg('TOP' if top else 'LIMIT')} {args_sql}"
|
expressions = self.expressions(expression, flat=True)
|
||||||
|
expressions = f" BY {expressions}" if expressions else ""
|
||||||
|
|
||||||
|
return f"{this}{self.seg('TOP' if top else 'LIMIT')} {args_sql}{expressions}"
|
||||||
|
|
||||||
def offset_sql(self, expression: exp.Offset) -> str:
|
def offset_sql(self, expression: exp.Offset) -> str:
|
||||||
this = self.sql(expression, "this")
|
this = self.sql(expression, "this")
|
||||||
expression = expression.expression
|
value = expression.expression
|
||||||
expression = (
|
value = self._simplify_unless_literal(value) if self.LIMIT_ONLY_LITERALS else value
|
||||||
self._simplify_unless_literal(expression) if self.LIMIT_ONLY_LITERALS else expression
|
expressions = self.expressions(expression, flat=True)
|
||||||
)
|
expressions = f" BY {expressions}" if expressions else ""
|
||||||
return f"{this}{self.seg('OFFSET')} {self.sql(expression)}"
|
return f"{this}{self.seg('OFFSET')} {self.sql(value)}{expressions}"
|
||||||
|
|
||||||
def setitem_sql(self, expression: exp.SetItem) -> str:
|
def setitem_sql(self, expression: exp.SetItem) -> str:
|
||||||
kind = self.sql(expression, "kind")
|
kind = self.sql(expression, "kind")
|
||||||
|
@ -2834,6 +2841,13 @@ class Generator(metaclass=_Generator):
|
||||||
|
|
||||||
def distinct_sql(self, expression: exp.Distinct) -> str:
|
def distinct_sql(self, expression: exp.Distinct) -> str:
|
||||||
this = self.expressions(expression, flat=True)
|
this = self.expressions(expression, flat=True)
|
||||||
|
|
||||||
|
if not self.MULTI_ARG_DISTINCT and len(expression.expressions) > 1:
|
||||||
|
case = exp.case()
|
||||||
|
for arg in expression.expressions:
|
||||||
|
case = case.when(arg.is_(exp.null()), exp.null())
|
||||||
|
this = self.sql(case.else_(f"({this})"))
|
||||||
|
|
||||||
this = f" {this}" if this else ""
|
this = f" {this}" if this else ""
|
||||||
|
|
||||||
on = self.sql(expression, "on")
|
on = self.sql(expression, "on")
|
||||||
|
@ -2846,13 +2860,33 @@ class Generator(metaclass=_Generator):
|
||||||
def respectnulls_sql(self, expression: exp.RespectNulls) -> str:
|
def respectnulls_sql(self, expression: exp.RespectNulls) -> str:
|
||||||
return self._embed_ignore_nulls(expression, "RESPECT NULLS")
|
return self._embed_ignore_nulls(expression, "RESPECT NULLS")
|
||||||
|
|
||||||
|
def havingmax_sql(self, expression: exp.HavingMax) -> str:
|
||||||
|
this_sql = self.sql(expression, "this")
|
||||||
|
expression_sql = self.sql(expression, "expression")
|
||||||
|
kind = "MAX" if expression.args.get("max") else "MIN"
|
||||||
|
return f"{this_sql} HAVING {kind} {expression_sql}"
|
||||||
|
|
||||||
def _embed_ignore_nulls(self, expression: exp.IgnoreNulls | exp.RespectNulls, text: str) -> str:
|
def _embed_ignore_nulls(self, expression: exp.IgnoreNulls | exp.RespectNulls, text: str) -> str:
|
||||||
if self.IGNORE_NULLS_IN_FUNC:
|
if self.IGNORE_NULLS_IN_FUNC and not expression.meta.get("inline"):
|
||||||
this = expression.find(exp.AggFunc)
|
# The first modifier here will be the one closest to the AggFunc's arg
|
||||||
if this:
|
mods = sorted(
|
||||||
sql = self.sql(this)
|
expression.find_all(exp.HavingMax, exp.Order, exp.Limit),
|
||||||
sql = sql[:-1] + f" {text})"
|
key=lambda x: 0
|
||||||
return sql
|
if isinstance(x, exp.HavingMax)
|
||||||
|
else (1 if isinstance(x, exp.Order) else 2),
|
||||||
|
)
|
||||||
|
|
||||||
|
if mods:
|
||||||
|
mod = mods[0]
|
||||||
|
this = expression.__class__(this=mod.this.copy())
|
||||||
|
this.meta["inline"] = True
|
||||||
|
mod.this.replace(this)
|
||||||
|
return self.sql(expression.this)
|
||||||
|
|
||||||
|
agg_func = expression.find(exp.AggFunc)
|
||||||
|
|
||||||
|
if agg_func:
|
||||||
|
return self.sql(agg_func)[:-1] + f" {text})"
|
||||||
|
|
||||||
return f"{self.sql(expression, 'this')} {text}"
|
return f"{self.sql(expression, 'this')} {text}"
|
||||||
|
|
||||||
|
|
|
@ -263,6 +263,7 @@ class TypeAnnotator(metaclass=_TypeAnnotator):
|
||||||
exp.DateTrunc: lambda self, e: self._annotate_timeunit(e),
|
exp.DateTrunc: lambda self, e: self._annotate_timeunit(e),
|
||||||
exp.Distinct: lambda self, e: self._annotate_by_args(e, "expressions"),
|
exp.Distinct: lambda self, e: self._annotate_by_args(e, "expressions"),
|
||||||
exp.Div: lambda self, e: self._annotate_div(e),
|
exp.Div: lambda self, e: self._annotate_div(e),
|
||||||
|
exp.Explode: lambda self, e: self._annotate_explode(e),
|
||||||
exp.Filter: lambda self, e: self._annotate_by_args(e, "this"),
|
exp.Filter: lambda self, e: self._annotate_by_args(e, "this"),
|
||||||
exp.If: lambda self, e: self._annotate_by_args(e, "true", "false"),
|
exp.If: lambda self, e: self._annotate_by_args(e, "true", "false"),
|
||||||
exp.Interval: lambda self, e: self._annotate_with_type(e, exp.DataType.Type.INTERVAL),
|
exp.Interval: lambda self, e: self._annotate_with_type(e, exp.DataType.Type.INTERVAL),
|
||||||
|
@ -333,9 +334,9 @@ class TypeAnnotator(metaclass=_TypeAnnotator):
|
||||||
self._visited: t.Set[int] = set()
|
self._visited: t.Set[int] = set()
|
||||||
|
|
||||||
def _set_type(
|
def _set_type(
|
||||||
self, expression: exp.Expression, target_type: exp.DataType | exp.DataType.Type
|
self, expression: exp.Expression, target_type: t.Optional[exp.DataType | exp.DataType.Type]
|
||||||
) -> None:
|
) -> None:
|
||||||
expression.type = target_type # type: ignore
|
expression.type = target_type or exp.DataType.Type.UNKNOWN # type: ignore
|
||||||
self._visited.add(id(expression))
|
self._visited.add(id(expression))
|
||||||
|
|
||||||
def annotate(self, expression: E) -> E:
|
def annotate(self, expression: E) -> E:
|
||||||
|
@ -564,13 +565,11 @@ class TypeAnnotator(metaclass=_TypeAnnotator):
|
||||||
if isinstance(bracket_arg, exp.Slice):
|
if isinstance(bracket_arg, exp.Slice):
|
||||||
self._set_type(expression, this.type)
|
self._set_type(expression, this.type)
|
||||||
elif this.type.is_type(exp.DataType.Type.ARRAY):
|
elif this.type.is_type(exp.DataType.Type.ARRAY):
|
||||||
contained_type = seq_get(this.type.expressions, 0) or exp.DataType.Type.UNKNOWN
|
self._set_type(expression, seq_get(this.type.expressions, 0))
|
||||||
self._set_type(expression, contained_type)
|
|
||||||
elif isinstance(this, (exp.Map, exp.VarMap)) and bracket_arg in this.keys:
|
elif isinstance(this, (exp.Map, exp.VarMap)) and bracket_arg in this.keys:
|
||||||
index = this.keys.index(bracket_arg)
|
index = this.keys.index(bracket_arg)
|
||||||
value = seq_get(this.values, index)
|
value = seq_get(this.values, index)
|
||||||
value_type = value.type if value else exp.DataType.Type.UNKNOWN
|
self._set_type(expression, value.type if value else None)
|
||||||
self._set_type(expression, value_type or exp.DataType.Type.UNKNOWN)
|
|
||||||
else:
|
else:
|
||||||
self._set_type(expression, exp.DataType.Type.UNKNOWN)
|
self._set_type(expression, exp.DataType.Type.UNKNOWN)
|
||||||
|
|
||||||
|
@ -591,3 +590,8 @@ class TypeAnnotator(metaclass=_TypeAnnotator):
|
||||||
self._set_type(expression, self._maybe_coerce(left_type, right_type))
|
self._set_type(expression, self._maybe_coerce(left_type, right_type))
|
||||||
|
|
||||||
return expression
|
return expression
|
||||||
|
|
||||||
|
def _annotate_explode(self, expression: exp.Explode) -> exp.Explode:
|
||||||
|
self._annotate_args(expression)
|
||||||
|
self._set_type(expression, seq_get(expression.this.type.expressions, 0))
|
||||||
|
return expression
|
||||||
|
|
|
@ -872,7 +872,6 @@ class Parser(metaclass=_Parser):
|
||||||
FUNCTIONS_WITH_ALIASED_ARGS = {"STRUCT"}
|
FUNCTIONS_WITH_ALIASED_ARGS = {"STRUCT"}
|
||||||
|
|
||||||
FUNCTION_PARSERS = {
|
FUNCTION_PARSERS = {
|
||||||
"ANY_VALUE": lambda self: self._parse_any_value(),
|
|
||||||
"CAST": lambda self: self._parse_cast(self.STRICT_CAST),
|
"CAST": lambda self: self._parse_cast(self.STRICT_CAST),
|
||||||
"CONVERT": lambda self: self._parse_convert(self.STRICT_CAST),
|
"CONVERT": lambda self: self._parse_convert(self.STRICT_CAST),
|
||||||
"DECODE": lambda self: self._parse_decode(),
|
"DECODE": lambda self: self._parse_decode(),
|
||||||
|
@ -2465,8 +2464,14 @@ class Parser(metaclass=_Parser):
|
||||||
this.set(key, expression)
|
this.set(key, expression)
|
||||||
if key == "limit":
|
if key == "limit":
|
||||||
offset = expression.args.pop("offset", None)
|
offset = expression.args.pop("offset", None)
|
||||||
|
|
||||||
if offset:
|
if offset:
|
||||||
this.set("offset", exp.Offset(expression=offset))
|
offset = exp.Offset(expression=offset)
|
||||||
|
this.set("offset", offset)
|
||||||
|
|
||||||
|
limit_by_expressions = expression.expressions
|
||||||
|
expression.set("expressions", None)
|
||||||
|
offset.set("expressions", limit_by_expressions)
|
||||||
continue
|
continue
|
||||||
break
|
break
|
||||||
return this
|
return this
|
||||||
|
@ -3341,7 +3346,12 @@ class Parser(metaclass=_Parser):
|
||||||
offset = None
|
offset = None
|
||||||
|
|
||||||
limit_exp = self.expression(
|
limit_exp = self.expression(
|
||||||
exp.Limit, this=this, expression=expression, offset=offset, comments=comments
|
exp.Limit,
|
||||||
|
this=this,
|
||||||
|
expression=expression,
|
||||||
|
offset=offset,
|
||||||
|
comments=comments,
|
||||||
|
expressions=self._parse_limit_by(),
|
||||||
)
|
)
|
||||||
|
|
||||||
return limit_exp
|
return limit_exp
|
||||||
|
@ -3377,7 +3387,13 @@ class Parser(metaclass=_Parser):
|
||||||
|
|
||||||
count = self._parse_term()
|
count = self._parse_term()
|
||||||
self._match_set((TokenType.ROW, TokenType.ROWS))
|
self._match_set((TokenType.ROW, TokenType.ROWS))
|
||||||
return self.expression(exp.Offset, this=this, expression=count)
|
|
||||||
|
return self.expression(
|
||||||
|
exp.Offset, this=this, expression=count, expressions=self._parse_limit_by()
|
||||||
|
)
|
||||||
|
|
||||||
|
def _parse_limit_by(self) -> t.Optional[t.List[exp.Expression]]:
|
||||||
|
return self._match_text_seq("BY") and self._parse_csv(self._parse_bitwise)
|
||||||
|
|
||||||
def _parse_locks(self) -> t.List[exp.Lock]:
|
def _parse_locks(self) -> t.List[exp.Lock]:
|
||||||
locks = []
|
locks = []
|
||||||
|
@ -4115,7 +4131,9 @@ class Parser(metaclass=_Parser):
|
||||||
else:
|
else:
|
||||||
this = self._parse_select_or_expression(alias=alias)
|
this = self._parse_select_or_expression(alias=alias)
|
||||||
|
|
||||||
return self._parse_limit(self._parse_order(self._parse_respect_or_ignore_nulls(this)))
|
return self._parse_limit(
|
||||||
|
self._parse_order(self._parse_having_max(self._parse_respect_or_ignore_nulls(this)))
|
||||||
|
)
|
||||||
|
|
||||||
def _parse_schema(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]:
|
def _parse_schema(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]:
|
||||||
index = self._index
|
index = self._index
|
||||||
|
@ -4549,18 +4567,6 @@ class Parser(metaclass=_Parser):
|
||||||
|
|
||||||
return self.expression(exp.Extract, this=this, expression=self._parse_bitwise())
|
return self.expression(exp.Extract, this=this, expression=self._parse_bitwise())
|
||||||
|
|
||||||
def _parse_any_value(self) -> exp.AnyValue:
|
|
||||||
this = self._parse_lambda()
|
|
||||||
is_max = None
|
|
||||||
having = None
|
|
||||||
|
|
||||||
if self._match(TokenType.HAVING):
|
|
||||||
self._match_texts(("MAX", "MIN"))
|
|
||||||
is_max = self._prev.text == "MAX"
|
|
||||||
having = self._parse_column()
|
|
||||||
|
|
||||||
return self.expression(exp.AnyValue, this=this, having=having, max=is_max)
|
|
||||||
|
|
||||||
def _parse_cast(self, strict: bool, safe: t.Optional[bool] = None) -> exp.Expression:
|
def _parse_cast(self, strict: bool, safe: t.Optional[bool] = None) -> exp.Expression:
|
||||||
this = self._parse_conjunction()
|
this = self._parse_conjunction()
|
||||||
|
|
||||||
|
@ -4941,6 +4947,16 @@ class Parser(metaclass=_Parser):
|
||||||
return self.expression(exp.RespectNulls, this=this)
|
return self.expression(exp.RespectNulls, this=this)
|
||||||
return this
|
return this
|
||||||
|
|
||||||
|
def _parse_having_max(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
|
||||||
|
if self._match(TokenType.HAVING):
|
||||||
|
self._match_texts(("MAX", "MIN"))
|
||||||
|
max = self._prev.text.upper() != "MIN"
|
||||||
|
return self.expression(
|
||||||
|
exp.HavingMax, this=this, expression=self._parse_column(), max=max
|
||||||
|
)
|
||||||
|
|
||||||
|
return this
|
||||||
|
|
||||||
def _parse_window(
|
def _parse_window(
|
||||||
self, this: t.Optional[exp.Expression], alias: bool = False
|
self, this: t.Optional[exp.Expression], alias: bool = False
|
||||||
) -> t.Optional[exp.Expression]:
|
) -> t.Optional[exp.Expression]:
|
||||||
|
|
|
@ -106,19 +106,6 @@ class Schema(abc.ABC):
|
||||||
name = column if isinstance(column, str) else column.name
|
name = column if isinstance(column, str) else column.name
|
||||||
return name in self.column_names(table, dialect=dialect, normalize=normalize)
|
return name in self.column_names(table, dialect=dialect, normalize=normalize)
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def find(self, table: exp.Table, raise_on_missing: bool = True) -> t.Optional[t.Any]:
|
|
||||||
"""
|
|
||||||
Returns the schema of a given table.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
table: the target table.
|
|
||||||
raise_on_missing: whether or not to raise in case the schema is not found.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The schema of the target table.
|
|
||||||
"""
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def supported_table_args(self) -> t.Tuple[str, ...]:
|
def supported_table_args(self) -> t.Tuple[str, ...]:
|
||||||
|
@ -170,6 +157,16 @@ class AbstractMappingSchema:
|
||||||
return [table.text(part) for part in exp.TABLE_PARTS if table.text(part)]
|
return [table.text(part) for part in exp.TABLE_PARTS if table.text(part)]
|
||||||
|
|
||||||
def find(self, table: exp.Table, raise_on_missing: bool = True) -> t.Optional[t.Any]:
|
def find(self, table: exp.Table, raise_on_missing: bool = True) -> t.Optional[t.Any]:
|
||||||
|
"""
|
||||||
|
Returns the schema of a given table.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
table: the target table.
|
||||||
|
raise_on_missing: whether or not to raise in case the schema is not found.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The schema of the target table.
|
||||||
|
"""
|
||||||
parts = self.table_parts(table)[0 : len(self.supported_table_args)]
|
parts = self.table_parts(table)[0 : len(self.supported_table_args)]
|
||||||
value, trie = in_trie(self.mapping_trie, parts)
|
value, trie = in_trie(self.mapping_trie, parts)
|
||||||
|
|
||||||
|
|
|
@ -504,6 +504,7 @@ class _Tokenizer(type):
|
||||||
command_prefix_tokens={
|
command_prefix_tokens={
|
||||||
_TOKEN_TYPE_TO_INDEX[v] for v in klass.COMMAND_PREFIX_TOKENS
|
_TOKEN_TYPE_TO_INDEX[v] for v in klass.COMMAND_PREFIX_TOKENS
|
||||||
},
|
},
|
||||||
|
heredoc_tag_is_identifier=klass.HEREDOC_TAG_IS_IDENTIFIER,
|
||||||
)
|
)
|
||||||
token_types = RsTokenTypeSettings(
|
token_types = RsTokenTypeSettings(
|
||||||
bit_string=_TOKEN_TYPE_TO_INDEX[TokenType.BIT_STRING],
|
bit_string=_TOKEN_TYPE_TO_INDEX[TokenType.BIT_STRING],
|
||||||
|
@ -517,6 +518,7 @@ class _Tokenizer(type):
|
||||||
semicolon=_TOKEN_TYPE_TO_INDEX[TokenType.SEMICOLON],
|
semicolon=_TOKEN_TYPE_TO_INDEX[TokenType.SEMICOLON],
|
||||||
string=_TOKEN_TYPE_TO_INDEX[TokenType.STRING],
|
string=_TOKEN_TYPE_TO_INDEX[TokenType.STRING],
|
||||||
var=_TOKEN_TYPE_TO_INDEX[TokenType.VAR],
|
var=_TOKEN_TYPE_TO_INDEX[TokenType.VAR],
|
||||||
|
heredoc_string_alternative=_TOKEN_TYPE_TO_INDEX[klass.HEREDOC_STRING_ALTERNATIVE],
|
||||||
)
|
)
|
||||||
klass._RS_TOKENIZER = RsTokenizer(settings, token_types)
|
klass._RS_TOKENIZER = RsTokenizer(settings, token_types)
|
||||||
else:
|
else:
|
||||||
|
@ -573,6 +575,12 @@ class Tokenizer(metaclass=_Tokenizer):
|
||||||
STRING_ESCAPES = ["'"]
|
STRING_ESCAPES = ["'"]
|
||||||
VAR_SINGLE_TOKENS: t.Set[str] = set()
|
VAR_SINGLE_TOKENS: t.Set[str] = set()
|
||||||
|
|
||||||
|
# Whether or not the heredoc tags follow the same lexical rules as unquoted identifiers
|
||||||
|
HEREDOC_TAG_IS_IDENTIFIER = False
|
||||||
|
|
||||||
|
# Token that we'll generate as a fallback if the heredoc prefix doesn't correspond to a heredoc
|
||||||
|
HEREDOC_STRING_ALTERNATIVE = TokenType.VAR
|
||||||
|
|
||||||
# Autofilled
|
# Autofilled
|
||||||
_COMMENTS: t.Dict[str, str] = {}
|
_COMMENTS: t.Dict[str, str] = {}
|
||||||
_FORMAT_STRINGS: t.Dict[str, t.Tuple[str, TokenType]] = {}
|
_FORMAT_STRINGS: t.Dict[str, t.Tuple[str, TokenType]] = {}
|
||||||
|
@ -1249,6 +1257,18 @@ class Tokenizer(metaclass=_Tokenizer):
|
||||||
elif token_type == TokenType.BIT_STRING:
|
elif token_type == TokenType.BIT_STRING:
|
||||||
base = 2
|
base = 2
|
||||||
elif token_type == TokenType.HEREDOC_STRING:
|
elif token_type == TokenType.HEREDOC_STRING:
|
||||||
|
if (
|
||||||
|
self.HEREDOC_TAG_IS_IDENTIFIER
|
||||||
|
and not self._peek.isidentifier()
|
||||||
|
and not self._peek == end
|
||||||
|
):
|
||||||
|
if self.HEREDOC_STRING_ALTERNATIVE != token_type.VAR:
|
||||||
|
self._add(self.HEREDOC_STRING_ALTERNATIVE)
|
||||||
|
else:
|
||||||
|
self._scan_var()
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
self._advance()
|
self._advance()
|
||||||
tag = "" if self._char == end else self._extract_string(end)
|
tag = "" if self._char == end else self._extract_string(end)
|
||||||
end = f"{start}{tag}{end}"
|
end = f"{start}{tag}{end}"
|
||||||
|
|
2
sqlglotrs/Cargo.lock
generated
2
sqlglotrs/Cargo.lock
generated
|
@ -188,7 +188,7 @@ checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sqlglotrs"
|
name = "sqlglotrs"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pyo3",
|
"pyo3",
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "sqlglotrs"
|
name = "sqlglotrs"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|
|
@ -17,6 +17,7 @@ pub struct TokenTypeSettings {
|
||||||
pub semicolon: TokenType,
|
pub semicolon: TokenType,
|
||||||
pub string: TokenType,
|
pub string: TokenType,
|
||||||
pub var: TokenType,
|
pub var: TokenType,
|
||||||
|
pub heredoc_string_alternative: TokenType,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pymethods]
|
#[pymethods]
|
||||||
|
@ -34,6 +35,7 @@ impl TokenTypeSettings {
|
||||||
semicolon: TokenType,
|
semicolon: TokenType,
|
||||||
string: TokenType,
|
string: TokenType,
|
||||||
var: TokenType,
|
var: TokenType,
|
||||||
|
heredoc_string_alternative: TokenType,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
TokenTypeSettings {
|
TokenTypeSettings {
|
||||||
bit_string,
|
bit_string,
|
||||||
|
@ -47,6 +49,7 @@ impl TokenTypeSettings {
|
||||||
semicolon,
|
semicolon,
|
||||||
string,
|
string,
|
||||||
var,
|
var,
|
||||||
|
heredoc_string_alternative,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,6 +72,7 @@ pub struct TokenizerSettings {
|
||||||
pub var_single_tokens: HashSet<char>,
|
pub var_single_tokens: HashSet<char>,
|
||||||
pub commands: HashSet<TokenType>,
|
pub commands: HashSet<TokenType>,
|
||||||
pub command_prefix_tokens: HashSet<TokenType>,
|
pub command_prefix_tokens: HashSet<TokenType>,
|
||||||
|
pub heredoc_tag_is_identifier: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pymethods]
|
#[pymethods]
|
||||||
|
@ -90,6 +94,7 @@ impl TokenizerSettings {
|
||||||
var_single_tokens: HashSet<String>,
|
var_single_tokens: HashSet<String>,
|
||||||
commands: HashSet<TokenType>,
|
commands: HashSet<TokenType>,
|
||||||
command_prefix_tokens: HashSet<TokenType>,
|
command_prefix_tokens: HashSet<TokenType>,
|
||||||
|
heredoc_tag_is_identifier: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let to_char = |v: &String| {
|
let to_char = |v: &String| {
|
||||||
if v.len() == 1 {
|
if v.len() == 1 {
|
||||||
|
@ -138,6 +143,7 @@ impl TokenizerSettings {
|
||||||
var_single_tokens: var_single_tokens_native,
|
var_single_tokens: var_single_tokens_native,
|
||||||
commands,
|
commands,
|
||||||
command_prefix_tokens,
|
command_prefix_tokens,
|
||||||
|
heredoc_tag_is_identifier,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -399,6 +399,19 @@ impl<'a> TokenizerState<'a> {
|
||||||
} else if *token_type == self.token_types.bit_string {
|
} else if *token_type == self.token_types.bit_string {
|
||||||
(Some(2), *token_type, end.clone())
|
(Some(2), *token_type, end.clone())
|
||||||
} else if *token_type == self.token_types.heredoc_string {
|
} else if *token_type == self.token_types.heredoc_string {
|
||||||
|
if self.settings.heredoc_tag_is_identifier
|
||||||
|
&& !self.is_identifier(self.peek_char)
|
||||||
|
&& self.peek_char.to_string() != *end
|
||||||
|
{
|
||||||
|
if self.token_types.heredoc_string_alternative != self.token_types.var {
|
||||||
|
self.add(self.token_types.heredoc_string_alternative, None)?
|
||||||
|
} else {
|
||||||
|
self.scan_var()?
|
||||||
|
};
|
||||||
|
|
||||||
|
return Ok(true)
|
||||||
|
};
|
||||||
|
|
||||||
self.advance(1)?;
|
self.advance(1)?;
|
||||||
let tag = if self.current_char.to_string() == *end {
|
let tag = if self.current_char.to_string() == *end {
|
||||||
String::from("")
|
String::from("")
|
||||||
|
@ -469,7 +482,7 @@ impl<'a> TokenizerState<'a> {
|
||||||
} else if self.peek_char.to_ascii_uppercase() == 'E' && scientific == 0 {
|
} else if self.peek_char.to_ascii_uppercase() == 'E' && scientific == 0 {
|
||||||
scientific += 1;
|
scientific += 1;
|
||||||
self.advance(1)?;
|
self.advance(1)?;
|
||||||
} else if self.peek_char.is_alphabetic() || self.peek_char == '_' {
|
} else if self.is_identifier(self.peek_char) {
|
||||||
let number_text = self.text();
|
let number_text = self.text();
|
||||||
let mut literal = String::from("");
|
let mut literal = String::from("");
|
||||||
|
|
||||||
|
@ -643,6 +656,10 @@ impl<'a> TokenizerState<'a> {
|
||||||
Ok(text)
|
Ok(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_identifier(&mut self, name: char) -> bool {
|
||||||
|
name.is_alphabetic() || name == '_'
|
||||||
|
}
|
||||||
|
|
||||||
fn extract_value(&mut self) -> Result<String, TokenizerError> {
|
fn extract_value(&mut self) -> Result<String, TokenizerError> {
|
||||||
loop {
|
loop {
|
||||||
if !self.peek_char.is_whitespace()
|
if !self.peek_char.is_whitespace()
|
||||||
|
|
|
@ -18,6 +18,12 @@ class TestBigQuery(Validator):
|
||||||
maxDiff = None
|
maxDiff = None
|
||||||
|
|
||||||
def test_bigquery(self):
|
def test_bigquery(self):
|
||||||
|
self.validate_identity("ARRAY_AGG(x IGNORE NULLS LIMIT 1)")
|
||||||
|
self.validate_identity("ARRAY_AGG(x IGNORE NULLS ORDER BY x LIMIT 1)")
|
||||||
|
self.validate_identity("ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY x LIMIT 1)")
|
||||||
|
self.validate_identity("ARRAY_AGG(x IGNORE NULLS)")
|
||||||
|
self.validate_identity("ARRAY_AGG(DISTINCT x IGNORE NULLS HAVING MAX x ORDER BY x LIMIT 1)")
|
||||||
|
|
||||||
self.validate_all(
|
self.validate_all(
|
||||||
"SELECT SUM(x IGNORE NULLS) AS x",
|
"SELECT SUM(x IGNORE NULLS) AS x",
|
||||||
read={
|
read={
|
||||||
|
@ -55,6 +61,7 @@ class TestBigQuery(Validator):
|
||||||
self.validate_all(
|
self.validate_all(
|
||||||
"SELECT PERCENTILE_CONT(x, 0.5 RESPECT NULLS) OVER ()",
|
"SELECT PERCENTILE_CONT(x, 0.5 RESPECT NULLS) OVER ()",
|
||||||
write={
|
write={
|
||||||
|
"bigquery": "SELECT PERCENTILE_CONT(x, 0.5 RESPECT NULLS) OVER ()",
|
||||||
"duckdb": "SELECT QUANTILE_CONT(x, 0.5 RESPECT NULLS) OVER ()",
|
"duckdb": "SELECT QUANTILE_CONT(x, 0.5 RESPECT NULLS) OVER ()",
|
||||||
"spark": "SELECT PERCENTILE_CONT(x, 0.5) RESPECT NULLS OVER ()",
|
"spark": "SELECT PERCENTILE_CONT(x, 0.5) RESPECT NULLS OVER ()",
|
||||||
},
|
},
|
||||||
|
@ -62,14 +69,16 @@ class TestBigQuery(Validator):
|
||||||
self.validate_all(
|
self.validate_all(
|
||||||
"SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a, b DESC LIMIT 10) AS x",
|
"SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a, b DESC LIMIT 10) AS x",
|
||||||
write={
|
write={
|
||||||
"duckdb": "SELECT ARRAY_AGG(DISTINCT x ORDER BY a NULLS FIRST, b DESC LIMIT 10 IGNORE NULLS) AS x",
|
"bigquery": "SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a, b DESC LIMIT 10) AS x",
|
||||||
|
"duckdb": "SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a NULLS FIRST, b DESC LIMIT 10) AS x",
|
||||||
"spark": "SELECT COLLECT_LIST(DISTINCT x ORDER BY a, b DESC LIMIT 10) IGNORE NULLS AS x",
|
"spark": "SELECT COLLECT_LIST(DISTINCT x ORDER BY a, b DESC LIMIT 10) IGNORE NULLS AS x",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.validate_all(
|
self.validate_all(
|
||||||
"SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a, b DESC LIMIT 1, 10) AS x",
|
"SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a, b DESC LIMIT 1, 10) AS x",
|
||||||
write={
|
write={
|
||||||
"duckdb": "SELECT ARRAY_AGG(DISTINCT x ORDER BY a NULLS FIRST, b DESC LIMIT 1, 10 IGNORE NULLS) AS x",
|
"bigquery": "SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a, b DESC LIMIT 1, 10) AS x",
|
||||||
|
"duckdb": "SELECT ARRAY_AGG(DISTINCT x IGNORE NULLS ORDER BY a NULLS FIRST, b DESC LIMIT 1, 10) AS x",
|
||||||
"spark": "SELECT COLLECT_LIST(DISTINCT x ORDER BY a, b DESC LIMIT 1, 10) IGNORE NULLS AS x",
|
"spark": "SELECT COLLECT_LIST(DISTINCT x ORDER BY a, b DESC LIMIT 1, 10) IGNORE NULLS AS x",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -75,6 +75,19 @@ class TestClickhouse(Validator):
|
||||||
self.validate_identity("CAST(x as MEDIUMINT)", "CAST(x AS Int32)")
|
self.validate_identity("CAST(x as MEDIUMINT)", "CAST(x AS Int32)")
|
||||||
self.validate_identity("SELECT arrayJoin([1, 2, 3] AS src) AS dst, 'Hello', src")
|
self.validate_identity("SELECT arrayJoin([1, 2, 3] AS src) AS dst, 'Hello', src")
|
||||||
self.validate_identity("""SELECT JSONExtractString('{"x": {"y": 1}}', 'x', 'y')""")
|
self.validate_identity("""SELECT JSONExtractString('{"x": {"y": 1}}', 'x', 'y')""")
|
||||||
|
self.validate_identity("SELECT * FROM table LIMIT 1 BY a, b")
|
||||||
|
self.validate_identity("SELECT * FROM table LIMIT 2 OFFSET 1 BY a, b")
|
||||||
|
self.validate_identity(
|
||||||
|
"SELECT $1$foo$1$",
|
||||||
|
"SELECT 'foo'",
|
||||||
|
)
|
||||||
|
self.validate_identity(
|
||||||
|
"SELECT * FROM table LIMIT 1, 2 BY a, b",
|
||||||
|
"SELECT * FROM table LIMIT 2 OFFSET 1 BY a, b",
|
||||||
|
)
|
||||||
|
self.validate_identity(
|
||||||
|
"SELECT * FROM table LIMIT 1 BY CONCAT(datalayerVariantNo, datalayerProductId, warehouse)"
|
||||||
|
)
|
||||||
self.validate_identity(
|
self.validate_identity(
|
||||||
"""SELECT JSONExtractString('{"a": "hello", "b": [-100, 200.0, 300]}', 'a')"""
|
"""SELECT JSONExtractString('{"a": "hello", "b": [-100, 200.0, 300]}', 'a')"""
|
||||||
)
|
)
|
||||||
|
|
|
@ -33,6 +33,7 @@ class TestPostgres(Validator):
|
||||||
self.assertIsInstance(expr, exp.AlterTable)
|
self.assertIsInstance(expr, exp.AlterTable)
|
||||||
self.assertEqual(expr.sql(dialect="postgres"), alter_table_only)
|
self.assertEqual(expr.sql(dialect="postgres"), alter_table_only)
|
||||||
|
|
||||||
|
self.validate_identity("SELECT x FROM t WHERE CAST($1 AS TEXT) = 'ok'")
|
||||||
self.validate_identity("SELECT * FROM t TABLESAMPLE SYSTEM (50) REPEATABLE (55)")
|
self.validate_identity("SELECT * FROM t TABLESAMPLE SYSTEM (50) REPEATABLE (55)")
|
||||||
self.validate_identity("x @@ y")
|
self.validate_identity("x @@ y")
|
||||||
self.validate_identity("CAST(x AS MONEY)")
|
self.validate_identity("CAST(x AS MONEY)")
|
||||||
|
|
|
@ -277,6 +277,21 @@ TBLPROPERTIES (
|
||||||
"SELECT STR_TO_MAP('a:1,b:2,c:3', ',', ':')",
|
"SELECT STR_TO_MAP('a:1,b:2,c:3', ',', ':')",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.validate_all(
|
||||||
|
"WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
write={
|
||||||
|
"clickhouse": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
"databricks": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
"doris": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
"duckdb": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT CASE WHEN id IS NULL THEN NULL WHEN name IS NULL THEN NULL ELSE (id, name) END) AS cnt FROM tbl",
|
||||||
|
"hive": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
"mysql": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
"postgres": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT CASE WHEN id IS NULL THEN NULL WHEN name IS NULL THEN NULL ELSE (id, name) END) AS cnt FROM tbl",
|
||||||
|
"presto": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT CASE WHEN id IS NULL THEN NULL WHEN name IS NULL THEN NULL ELSE (id, name) END) AS cnt FROM tbl",
|
||||||
|
"snowflake": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
"spark": "WITH tbl AS (SELECT 1 AS id, 'eggy' AS name UNION ALL SELECT NULL AS id, 'jake' AS name) SELECT COUNT(DISTINCT id, name) AS cnt FROM tbl",
|
||||||
|
},
|
||||||
|
)
|
||||||
self.validate_all(
|
self.validate_all(
|
||||||
"SELECT TO_UTC_TIMESTAMP('2016-08-31', 'Asia/Seoul')",
|
"SELECT TO_UTC_TIMESTAMP('2016-08-31', 'Asia/Seoul')",
|
||||||
write={
|
write={
|
||||||
|
|
|
@ -980,6 +980,12 @@ FROM READ_CSV('tests/fixtures/optimizer/tpc-h/nation.csv.gz', 'delimiter', '|')
|
||||||
|
|
||||||
self.assertEqual(expression.selects[0].type.sql(dialect="bigquery"), "STRUCT<`f` STRING>")
|
self.assertEqual(expression.selects[0].type.sql(dialect="bigquery"), "STRUCT<`f` STRING>")
|
||||||
|
|
||||||
|
expression = annotate_types(
|
||||||
|
parse_one("SELECT unnest(t.x) FROM t AS t", dialect="postgres"),
|
||||||
|
schema={"t": {"x": "array<int>"}},
|
||||||
|
)
|
||||||
|
self.assertTrue(expression.selects[0].is_type("int"))
|
||||||
|
|
||||||
def test_type_annotation_cache(self):
|
def test_type_annotation_cache(self):
|
||||||
sql = "SELECT 1 + 1"
|
sql = "SELECT 1 + 1"
|
||||||
expression = annotate_types(parse_one(sql))
|
expression = annotate_types(parse_one(sql))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue