This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/asf-site by this push: new de8af8101e Publish built docs triggered by 7873e5c24922d27981b06e0dbbb95e78a5e659a1 de8af8101e is described below commit de8af8101e83b05d2dee5894304c80414da0a959 Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> AuthorDate: Fri Feb 14 14:37:25 2025 +0000 Publish built docs triggered by 7873e5c24922d27981b06e0dbbb95e78a5e659a1 --- _sources/user-guide/sql/scalar_functions.md.txt | 34 ++++++++ searchindex.js | 2 +- user-guide/sql/index.html | 1 + user-guide/sql/scalar_functions.html | 106 +++++++++++++++++++----- 4 files changed, 121 insertions(+), 22 deletions(-) diff --git a/_sources/user-guide/sql/scalar_functions.md.txt b/_sources/user-guide/sql/scalar_functions.md.txt index b14bf5b2cc..25ff296879 100644 --- a/_sources/user-guide/sql/scalar_functions.md.txt +++ b/_sources/user-guide/sql/scalar_functions.md.txt @@ -4339,6 +4339,40 @@ sha512(expression) +-------------------------------------------+ ``` +## Union Functions + +Functions to work with the union data type, also know as tagged unions, variant types, enums or sum types. Note: Not related to the SQL UNION operator + +- [union_extract](#union_extract) + +### `union_extract` + +Returns the value of the given field in the union when selected, or NULL otherwise. + +``` +union_extract(union, field_name) +``` + +#### Arguments + +- **union**: Union expression to operate on. Can be a constant, column, or function, and any combination of operators. +- **field_name**: String expression to operate on. Must be a constant. + +#### Example + +```sql +❯ select union_column, union_extract(union_column, 'a'), union_extract(union_column, 'b') from table_with_union; ++--------------+----------------------------------+----------------------------------+ +| union_column | union_extract(union_column, 'a') | union_extract(union_column, 'b') | ++--------------+----------------------------------+----------------------------------+ +| {a=1} | 1 | | +| {b=3.0} | | 3.0 | +| {a=4} | 4 | | +| {b=} | | | +| {a=} | | | ++--------------+----------------------------------+----------------------------------+ +``` + ## Other Functions - [arrow_cast](#arrow_cast) diff --git a/searchindex.js b/searchindex.js index 417b6d0852..f0e8fb6d6a 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"!=": [[50, "op-neq"]], "!~": [[50, "op-re-not-match"]], "!~*": [[50, "op-re-not-match-i"]], "!~~": [[50, "id19"]], "!~~*": [[50, "id20"]], "#": [[50, "op-bit-xor"]], "%": [[50, "op-modulo"]], "&": [[50, "op-bit-and"]], "(relation, name) tuples in logical fields and logical columns are unique": [[10, "relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]], "*": [[50, "op-multiply"]], "+": [[50, "op-plus"]], "-": [[50, "op-minus"]], "/": [[ [...] \ No newline at end of file +Search.setIndex({"alltitles": {"!=": [[50, "op-neq"]], "!~": [[50, "op-re-not-match"]], "!~*": [[50, "op-re-not-match-i"]], "!~~": [[50, "id19"]], "!~~*": [[50, "id20"]], "#": [[50, "op-bit-xor"]], "%": [[50, "op-modulo"]], "&": [[50, "op-bit-and"]], "(relation, name) tuples in logical fields and logical columns are unique": [[10, "relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]], "*": [[50, "op-multiply"]], "+": [[50, "op-plus"]], "-": [[50, "op-minus"]], "/": [[ [...] \ No newline at end of file diff --git a/user-guide/sql/index.html b/user-guide/sql/index.html index 6851d6f554..783a8d92d9 100644 --- a/user-guide/sql/index.html +++ b/user-guide/sql/index.html @@ -632,6 +632,7 @@ <li class="toctree-l2"><a class="reference internal" href="scalar_functions.html#struct-functions">Struct Functions</a></li> <li class="toctree-l2"><a class="reference internal" href="scalar_functions.html#map-functions">Map Functions</a></li> <li class="toctree-l2"><a class="reference internal" href="scalar_functions.html#hashing-functions">Hashing Functions</a></li> +<li class="toctree-l2"><a class="reference internal" href="scalar_functions.html#union-functions">Union Functions</a></li> <li class="toctree-l2"><a class="reference internal" href="scalar_functions.html#other-functions">Other Functions</a></li> </ul> </li> diff --git a/user-guide/sql/scalar_functions.html b/user-guide/sql/scalar_functions.html index d08ab2b497..9d1e9c832f 100644 --- a/user-guide/sql/scalar_functions.html +++ b/user-guide/sql/scalar_functions.html @@ -4350,6 +4350,34 @@ </li> </ul> </li> + <li class="toc-h2 nav-item toc-entry"> + <a class="reference internal nav-link" href="#union-functions"> + Union Functions + </a> + <ul class="nav section-nav flex-column"> + <li class="toc-h3 nav-item toc-entry"> + <a class="reference internal nav-link" href="#union-extract"> + <code class="docutils literal notranslate"> + <span class="pre"> + union_extract + </span> + </code> + </a> + <ul class="nav section-nav flex-column"> + <li class="toc-h4 nav-item toc-entry"> + <a class="reference internal nav-link" href="#id301"> + Arguments + </a> + </li> + <li class="toc-h4 nav-item toc-entry"> + <a class="reference internal nav-link" href="#id302"> + Example + </a> + </li> + </ul> + </li> + </ul> + </li> <li class="toc-h2 nav-item toc-entry"> <a class="reference internal nav-link" href="#other-functions"> Other Functions @@ -4365,12 +4393,12 @@ </a> <ul class="nav section-nav flex-column"> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id301"> + <a class="reference internal nav-link" href="#id303"> Arguments </a> </li> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id302"> + <a class="reference internal nav-link" href="#id304"> Example </a> </li> @@ -4386,12 +4414,12 @@ </a> <ul class="nav section-nav flex-column"> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id303"> + <a class="reference internal nav-link" href="#id305"> Arguments </a> </li> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id304"> + <a class="reference internal nav-link" href="#id306"> Example </a> </li> @@ -4407,12 +4435,12 @@ </a> <ul class="nav section-nav flex-column"> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id305"> + <a class="reference internal nav-link" href="#id307"> Arguments </a> </li> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id306"> + <a class="reference internal nav-link" href="#id308"> Example </a> </li> @@ -4428,7 +4456,7 @@ </a> <ul class="nav section-nav flex-column"> <li class="toc-h4 nav-item toc-entry"> - <a class="reference internal nav-link" href="#id307"> + <a class="reference internal nav-link" href="#id309"> Example </a> </li> @@ -9053,6 +9081,42 @@ For <code class="docutils literal notranslate"><span class="pre">make_map</span> </section> </section> </section> +<section id="union-functions"> +<h2>Union Functions<a class="headerlink" href="#union-functions" title="Link to this heading">¶</a></h2> +<p>Functions to work with the union data type, also know as tagged unions, variant types, enums or sum types. Note: Not related to the SQL UNION operator</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#union-extract">union_extract</a></p></li> +</ul> +<section id="union-extract"> +<h3><code class="docutils literal notranslate"><span class="pre">union_extract</span></code><a class="headerlink" href="#union-extract" title="Link to this heading">¶</a></h3> +<p>Returns the value of the given field in the union when selected, or NULL otherwise.</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">union_extract</span><span class="p">(</span><span class="n">union</span><span class="p">,</span> <span class="n">field_name</span><span class="p">)</span> +</pre></div> +</div> +<section id="id301"> +<h4>Arguments<a class="headerlink" href="#id301" title="Link to this heading">¶</a></h4> +<ul class="simple"> +<li><p><strong>union</strong>: Union expression to operate on. Can be a constant, column, or function, and any combination of operators.</p></li> +<li><p><strong>field_name</strong>: String expression to operate on. Must be a constant.</p></li> +</ul> +</section> +<section id="id302"> +<h4>Example<a class="headerlink" href="#id302" title="Link to this heading">¶</a></h4> +<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="err">❯</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">union_column</span><span class="p">,</span><span class="w"> </span><span class="n">union_extract</span><span class="p">(</span><span class="n">union_column</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">),</span><span class="w"> </span [...] +<span class="o">+</span><span class="c1">--------------+----------------------------------+----------------------------------+</span> +<span class="o">|</span><span class="w"> </span><span class="n">union_column</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">union_extract</span><span class="p">(</span><span class="n">union_column</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">union_extract</span><span class="p">(</span><sp [...] +<span class="o">+</span><span class="c1">--------------+----------------------------------+----------------------------------+</span> +<span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">a</span><span class="o">=</span><span class="mi">1</span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span> +<span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">b</span><span class="o">=</span><span class="mi">3</span><span class="p">.</span><span class="mi">0</span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="p">.</span><span class="mi">0</span><span class="w"> [...] +<span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">a</span><span class="o">=</span><span class="mi">4</span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span> +<span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">b</span><span class="o">=</span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span> +<span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">a</span><span class="o">=</span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span> +<span class="o">+</span><span class="c1">--------------+----------------------------------+----------------------------------+</span> +</pre></div> +</div> +</section> +</section> +</section> <section id="other-functions"> <h2>Other Functions<a class="headerlink" href="#other-functions" title="Link to this heading">¶</a></h2> <ul class="simple"> @@ -9067,15 +9131,15 @@ For <code class="docutils literal notranslate"><span class="pre">make_map</span> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="n">arrow_cast</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">datatype</span><span class="p">)</span> </pre></div> </div> -<section id="id301"> -<h4>Arguments<a class="headerlink" href="#id301" title="Link to this heading">¶</a></h4> +<section id="id303"> +<h4>Arguments<a class="headerlink" href="#id303" title="Link to this heading">¶</a></h4> <ul class="simple"> <li><p><strong>expression</strong>: Expression to cast. The expression can be a constant, column, or function, and any combination of operators.</p></li> <li><p><strong>datatype</strong>: <a class="reference external" href="https://docs.rs/arrow/latest/arrow/datatypes/enum.DataType.html">Arrow data type</a> name to cast to, as a string. The format is the same as that returned by [<code class="docutils literal notranslate"><span class="pre">arrow_typeof</span></code>]</p></li> </ul> </section> -<section id="id302"> -<h4>Example<a class="headerlink" href="#id302" title="Link to this heading">¶</a></h4> +<section id="id304"> +<h4>Example<a class="headerlink" href="#id304" title="Link to this heading">¶</a></h4> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">arrow_cast</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="s1">'Int8'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">a</ [...] <span class="w"> </span><span class="n">arrow_cast</span><span class="p">(</span><span class="s1">'foo'</span><span class="p">,</span><span class="w"> </span><span class="s1">'Dictionary(Int32, Utf8)'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">b</span><span class="p">,</span> <span class="w"> </span><span class="n">arrow_cast</span><span class="p">(</span><span class="s1">'bar'</span><span class="p">,</span><span class="w"> </span><span class="s1">'LargeUtf8'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="k">c</span><span class="p">,</span> @@ -9096,14 +9160,14 @@ For <code class="docutils literal notranslate"><span class="pre">make_map</span> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="n">arrow_typeof</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </pre></div> </div> -<section id="id303"> -<h4>Arguments<a class="headerlink" href="#id303" title="Link to this heading">¶</a></h4> +<section id="id305"> +<h4>Arguments<a class="headerlink" href="#id305" title="Link to this heading">¶</a></h4> <ul class="simple"> <li><p><strong>expression</strong>: Expression to evaluate. The expression can be a constant, column, or function, and any combination of operators.</p></li> </ul> </section> -<section id="id304"> -<h4>Example<a class="headerlink" href="#id304" title="Link to this heading">¶</a></h4> +<section id="id306"> +<h4>Example<a class="headerlink" href="#id306" title="Link to this heading">¶</a></h4> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">arrow_typeof</span><span class="p">(</span><span class="s1">'foo'</span><span class="p">),</span><span class="w"> </span><span class="n">arrow_typeof</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> <span class="o">+</span><span class="c1">---------------------------+------------------------+</span> <span class="o">|</span><span class="w"> </span><span class="n">arrow_typeof</span><span class="p">(</span><span class="n">Utf8</span><span class="p">(</span><span class="ss">"foo"</span><span class="p">))</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">arrow_typeof</span><span class="p">(</span><span class="n">Int64</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class=" [...] @@ -9123,15 +9187,15 @@ syntax such as <code class="docutils literal notranslate"><span class="pre">my_s <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="n">get_field</span><span class="p">(</span><span class="n">expression1</span><span class="p">,</span><span class="w"> </span><span class="n">expression2</span><span class="p">)</span> </pre></div> </div> -<section id="id305"> -<h4>Arguments<a class="headerlink" href="#id305" title="Link to this heading">¶</a></h4> +<section id="id307"> +<h4>Arguments<a class="headerlink" href="#id307" title="Link to this heading">¶</a></h4> <ul class="simple"> <li><p><strong>expression1</strong>: The map or struct to retrieve a field for.</p></li> <li><p><strong>expression2</strong>: The field name in the map or struct to retrieve data for. Must evaluate to a string.</p></li> </ul> </section> -<section id="id306"> -<h4>Example<a class="headerlink" href="#id306" title="Link to this heading">¶</a></h4> +<section id="id308"> +<h4>Example<a class="headerlink" href="#id308" title="Link to this heading">¶</a></h4> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="o">></span><span class="w"> </span><span class="k">create</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="p">(</span><span class="n">idx</span><span class="w"> </span><span class="nb">varchar</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span c [...] <span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">struct</span><span class="p">(</span><span class="n">idx</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p">)</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="k">c</span><span class="p">;</span> <span class="o">+</span><span class="c1">-------------------------+</span> @@ -9164,8 +9228,8 @@ syntax such as <code class="docutils literal notranslate"><span class="pre">my_s <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="k">version</span><span class="p">()</span> </pre></div> </div> -<section id="id307"> -<h4>Example<a class="headerlink" href="#id307" title="Link to this heading">¶</a></h4> +<section id="id309"> +<h4>Example<a class="headerlink" href="#id309" title="Link to this heading">¶</a></h4> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="k">version</span><span class="p">();</span> <span class="o">+</span><span class="c1">--------------------------------------------+</span> <span class="o">|</span><span class="w"> </span><span class="k">version</span><span class="p">()</span><span class="w"> </span><span class="o">|</span> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@datafusion.apache.org For additional commands, e-mail: commits-h...@datafusion.apache.org