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 8135200fa3 Publish built docs triggered by 
a405d3fe4a5c0dcfb27b9a2a32476f2469917802
8135200fa3 is described below

commit 8135200fa335812d6f48fa3193e46c5ee2c46df5
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Dec 24 12:55:50 2025 +0000

    Publish built docs triggered by a405d3fe4a5c0dcfb27b9a2a32476f2469917802
---
 _sources/user-guide/sql/scalar_functions.md.txt | 59 ++++++++++++++----------
 searchindex.js                                  |  2 +-
 user-guide/sql/scalar_functions.html            | 61 ++++++++++++++-----------
 3 files changed, 70 insertions(+), 52 deletions(-)

diff --git a/_sources/user-guide/sql/scalar_functions.md.txt 
b/_sources/user-guide/sql/scalar_functions.md.txt
index 3f0939d00d..e454788003 100644
--- a/_sources/user-guide/sql/scalar_functions.md.txt
+++ b/_sources/user-guide/sql/scalar_functions.md.txt
@@ -5098,44 +5098,53 @@ arrow_typeof(expression)
 ### `get_field`
 
 Returns a field within a map or a struct with the given key.
+Supports nested field access by providing multiple field names.
 Note: most users invoke `get_field` indirectly via field access
 syntax such as `my_struct_col['field_name']` which results in a call to
 `get_field(my_struct_col, 'field_name')`.
+Nested access like `my_struct['a']['b']` is optimized to a single call:
+`get_field(my_struct, 'a', 'b')`.
 
 ```sql
-get_field(expression1, expression2)
+get_field(expression, field_name[, field_name2, ...])
 ```
 
 #### Arguments
 
-- **expression1**: The map or struct to retrieve a field for.
-- **expression2**: The field name in the map or struct to retrieve data for. 
Must evaluate to a string.
+- **expression**: The map or struct to retrieve a field from.
+- **field_name**: The field name(s) to access, in order for nested access. 
Must evaluate to strings.
 
 #### Example
 
 ```sql
-> create table t (idx varchar, v varchar) as values ('data','fusion'), 
('apache', 'arrow');
-> select struct(idx, v) from t as c;
-+-------------------------+
-| struct(c.idx,c.v)       |
-+-------------------------+
-| {c0: data, c1: fusion}  |
-| {c0: apache, c1: arrow} |
-+-------------------------+
-> select get_field((select struct(idx, v) from t), 'c0');
-+-----------------------+
-| struct(t.idx,t.v)[c0] |
-+-----------------------+
-| data                  |
-| apache                |
-+-----------------------+
-> select get_field((select struct(idx, v) from t), 'c1');
-+-----------------------+
-| struct(t.idx,t.v)[c1] |
-+-----------------------+
-| fusion                |
-| arrow                 |
-+-----------------------+
+> -- Access a field from a struct column
+> create table test( struct_col) as values
+    ({name: 'Alice', age: 30}),
+    ({name: 'Bob', age: 25});
+> select struct_col from test;
++-----------------------------+
+| struct_col                  |
++-----------------------------+
+| {name: Alice, age: 30}      |
+| {name: Bob, age: 25}        |
++-----------------------------+
+> select struct_col['name'] as name from test;
++-------+
+| name  |
++-------+
+| Alice |
+| Bob   |
++-------+
+
+> -- Nested field access with multiple arguments
+> create table test(struct_col) as values
+    ({outer: {inner_val: 42}});
+> select struct_col['outer']['inner_val'] as result from test;
++--------+
+| result |
++--------+
+| 42     |
++--------+
 ```
 
 ### `version`
diff --git a/searchindex.js b/searchindex.js
index 3c7d3946ab..23d8eb4435 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[61,"op-neq"]],"!~":[[61,"op-re-not-match"]],"!~*":[[61,"op-re-not-match-i"]],"!~~":[[61,"id19"]],"!~~*":[[61,"id20"]],"#":[[61,"op-bit-xor"]],"%":[[61,"op-modulo"]],"&":[[61,"op-bit-and"]],"(relation,
 name) tuples in logical fields and logical columns are 
unique":[[13,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[61,"op-multiply"]],"+":[[61,"op-plus"]],"-":[[61,"op-minus"]],"/":[[61,"op-divide"]],"<":[[61,"op-lt"]],"<
 [...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[61,"op-neq"]],"!~":[[61,"op-re-not-match"]],"!~*":[[61,"op-re-not-match-i"]],"!~~":[[61,"id19"]],"!~~*":[[61,"id20"]],"#":[[61,"op-bit-xor"]],"%":[[61,"op-modulo"]],"&":[[61,"op-bit-and"]],"(relation,
 name) tuples in logical fields and logical columns are 
unique":[[13,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[61,"op-multiply"]],"+":[[61,"op-plus"]],"-":[[61,"op-minus"]],"/":[[61,"op-divide"]],"<":[[61,"op-lt"]],"<
 [...]
\ No newline at end of file
diff --git a/user-guide/sql/scalar_functions.html 
b/user-guide/sql/scalar_functions.html
index c75d487469..8ef79998f9 100644
--- a/user-guide/sql/scalar_functions.html
+++ b/user-guide/sql/scalar_functions.html
@@ -5751,43 +5751,52 @@ For <code class="docutils literal notranslate"><span 
class="pre">make_map</span>
 <section id="get-field">
 <h3><code class="docutils literal notranslate"><span 
class="pre">get_field</span></code><a class="headerlink" href="#get-field" 
title="Link to this heading">#</a></h3>
 <p>Returns a field within a map or a struct with the given key.
+Supports nested field access by providing multiple field names.
 Note: most users invoke <code class="docutils literal notranslate"><span 
class="pre">get_field</span></code> indirectly via field access
 syntax such as <code class="docutils literal notranslate"><span 
class="pre">my_struct_col['field_name']</span></code> which results in a call to
-<code class="docutils literal notranslate"><span 
class="pre">get_field(my_struct_col,</span> <span 
class="pre">'field_name')</span></code>.</p>
-<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>
+<code class="docutils literal notranslate"><span 
class="pre">get_field(my_struct_col,</span> <span 
class="pre">'field_name')</span></code>.
+Nested access like <code class="docutils literal notranslate"><span 
class="pre">my_struct['a']['b']</span></code> is optimized to a single call:
+<code class="docutils literal notranslate"><span 
class="pre">get_field(my_struct,</span> <span class="pre">'a',</span> <span 
class="pre">'b')</span></code>.</p>
+<div class="highlight-sql notranslate"><div 
class="highlight"><pre><span></span><span class="n">get_field</span><span 
class="p">(</span><span class="n">expression</span><span 
class="p">,</span><span class="w"> </span><span 
class="n">field_name</span><span class="p">[,</span><span class="w"> 
</span><span class="n">field_name2</span><span class="p">,</span><span 
class="w"> </span><span class="p">...])</span>
 </pre></div>
 </div>
 <section id="id360">
 <h4>Arguments<a class="headerlink" href="#id360" 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>
+<li><p><strong>expression</strong>: The map or struct to retrieve a field 
from.</p></li>
+<li><p><strong>field_name</strong>: The field name(s) to access, in order for 
nested access. Must evaluate to strings.</p></li>
 </ul>
 </section>
 <section id="id361">
 <h4>Example<a class="headerlink" href="#id361" title="Link to this 
heading">#</a></h4>
-<div class="highlight-sql notranslate"><div 
class="highlight"><pre><span></span><span class="o">&gt;</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">&gt;</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>
-<span class="o">|</span><span class="w"> </span><span 
class="n">struct</span><span class="p">(</span><span class="k">c</span><span 
class="p">.</span><span class="n">idx</span><span class="p">,</span><span 
class="k">c</span><span class="p">.</span><span class="n">v</span><span 
class="p">)</span><span class="w">       </span><span class="o">|</span>
-<span class="o">+</span><span class="c1">-------------------------+</span>
-<span class="o">|</span><span class="w"> </span><span 
class="err">{</span><span class="n">c0</span><span class="p">:</span><span 
class="w"> </span><span class="k">data</span><span class="p">,</span><span 
class="w"> </span><span class="n">c1</span><span class="p">:</span><span 
class="w"> </span><span class="n">fusion</span><span class="err">}</span><span 
class="w">  </span><span class="o">|</span>
-<span class="o">|</span><span class="w"> </span><span 
class="err">{</span><span class="n">c0</span><span class="p">:</span><span 
class="w"> </span><span class="n">apache</span><span class="p">,</span><span 
class="w"> </span><span class="n">c1</span><span class="p">:</span><span 
class="w"> </span><span class="n">arrow</span><span class="err">}</span><span 
class="w"> </span><span class="o">|</span>
-<span class="o">+</span><span class="c1">-------------------------+</span>
-<span class="o">&gt;</span><span class="w"> </span><span 
class="k">select</span><span class="w"> </span><span 
class="n">get_field</span><span class="p">((</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><spa [...]
-<span class="o">+</span><span class="c1">-----------------------+</span>
-<span class="o">|</span><span class="w"> </span><span 
class="n">struct</span><span class="p">(</span><span class="n">t</span><span 
class="p">.</span><span class="n">idx</span><span class="p">,</span><span 
class="n">t</span><span class="p">.</span><span class="n">v</span><span 
class="p">)[</span><span class="n">c0</span><span class="p">]</span><span 
class="w"> </span><span class="o">|</span>
-<span class="o">+</span><span class="c1">-----------------------+</span>
-<span class="o">|</span><span class="w"> </span><span 
class="k">data</span><span class="w">                  </span><span 
class="o">|</span>
-<span class="o">|</span><span class="w"> </span><span 
class="n">apache</span><span class="w">                </span><span 
class="o">|</span>
-<span class="o">+</span><span class="c1">-----------------------+</span>
-<span class="o">&gt;</span><span class="w"> </span><span 
class="k">select</span><span class="w"> </span><span 
class="n">get_field</span><span class="p">((</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><spa [...]
-<span class="o">+</span><span class="c1">-----------------------+</span>
-<span class="o">|</span><span class="w"> </span><span 
class="n">struct</span><span class="p">(</span><span class="n">t</span><span 
class="p">.</span><span class="n">idx</span><span class="p">,</span><span 
class="n">t</span><span class="p">.</span><span class="n">v</span><span 
class="p">)[</span><span class="n">c1</span><span class="p">]</span><span 
class="w"> </span><span class="o">|</span>
-<span class="o">+</span><span class="c1">-----------------------+</span>
-<span class="o">|</span><span class="w"> </span><span 
class="n">fusion</span><span class="w">                </span><span 
class="o">|</span>
-<span class="o">|</span><span class="w"> </span><span 
class="n">arrow</span><span class="w">                 </span><span 
class="o">|</span>
-<span class="o">+</span><span class="c1">-----------------------+</span>
+<div class="highlight-sql notranslate"><div 
class="highlight"><pre><span></span><span class="o">&gt;</span><span class="w"> 
</span><span class="c1">-- Access a field from a struct column</span>
+<span class="o">&gt;</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">test</span><span 
class="p">(</span><span class="w"> </span><span 
class="n">struct_col</span><span class="p">)</span><span class="w"> 
</span><span class="k">as</span><span class="w"> </span><span 
class="k">values</span>
+<span class="w">    </span><span class="p">(</span><span 
class="err">{</span><span class="n">name</span><span class="p">:</span><span 
class="w"> </span><span class="s1">&#39;Alice&#39;</span><span 
class="p">,</span><span class="w"> </span><span class="n">age</span><span 
class="p">:</span><span class="w"> </span><span class="mi">30</span><span 
class="err">}</span><span class="p">),</span>
+<span class="w">    </span><span class="p">(</span><span 
class="err">{</span><span class="n">name</span><span class="p">:</span><span 
class="w"> </span><span class="s1">&#39;Bob&#39;</span><span 
class="p">,</span><span class="w"> </span><span class="n">age</span><span 
class="p">:</span><span class="w"> </span><span class="mi">25</span><span 
class="err">}</span><span class="p">);</span>
+<span class="o">&gt;</span><span class="w"> </span><span 
class="k">select</span><span class="w"> </span><span 
class="n">struct_col</span><span class="w"> </span><span 
class="k">from</span><span class="w"> </span><span class="n">test</span><span 
class="p">;</span>
+<span class="o">+</span><span class="c1">-----------------------------+</span>
+<span class="o">|</span><span class="w"> </span><span 
class="n">struct_col</span><span class="w">                  </span><span 
class="o">|</span>
+<span class="o">+</span><span class="c1">-----------------------------+</span>
+<span class="o">|</span><span class="w"> </span><span 
class="err">{</span><span class="n">name</span><span class="p">:</span><span 
class="w"> </span><span class="n">Alice</span><span class="p">,</span><span 
class="w"> </span><span class="n">age</span><span class="p">:</span><span 
class="w"> </span><span class="mi">30</span><span class="err">}</span><span 
class="w">      </span><span class="o">|</span>
+<span class="o">|</span><span class="w"> </span><span 
class="err">{</span><span class="n">name</span><span class="p">:</span><span 
class="w"> </span><span class="n">Bob</span><span class="p">,</span><span 
class="w"> </span><span class="n">age</span><span class="p">:</span><span 
class="w"> </span><span class="mi">25</span><span class="err">}</span><span 
class="w">        </span><span class="o">|</span>
+<span class="o">+</span><span class="c1">-----------------------------+</span>
+<span class="o">&gt;</span><span class="w"> </span><span 
class="k">select</span><span class="w"> </span><span 
class="n">struct_col</span><span class="p">[</span><span 
class="s1">&#39;name&#39;</span><span class="p">]</span><span class="w"> 
</span><span class="k">as</span><span class="w"> </span><span 
class="n">name</span><span class="w"> </span><span class="k">from</span><span 
class="w"> </span><span class="n">test</span><span class="p">;</span>
+<span class="o">+</span><span class="c1">-------+</span>
+<span class="o">|</span><span class="w"> </span><span 
class="n">name</span><span class="w">  </span><span class="o">|</span>
+<span class="o">+</span><span class="c1">-------+</span>
+<span class="o">|</span><span class="w"> </span><span 
class="n">Alice</span><span class="w"> </span><span class="o">|</span>
+<span class="o">|</span><span class="w"> </span><span 
class="n">Bob</span><span class="w">   </span><span class="o">|</span>
+<span class="o">+</span><span class="c1">-------+</span>
+
+<span class="o">&gt;</span><span class="w"> </span><span class="c1">-- Nested 
field access with multiple arguments</span>
+<span class="o">&gt;</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">test</span><span 
class="p">(</span><span class="n">struct_col</span><span 
class="p">)</span><span class="w"> </span><span class="k">as</span><span 
class="w"> </span><span class="k">values</span>
+<span class="w">    </span><span class="p">(</span><span 
class="err">{</span><span class="k">outer</span><span class="p">:</span><span 
class="w"> </span><span class="err">{</span><span 
class="n">inner_val</span><span class="p">:</span><span class="w"> </span><span 
class="mi">42</span><span class="err">}}</span><span class="p">);</span>
+<span class="o">&gt;</span><span class="w"> </span><span 
class="k">select</span><span class="w"> </span><span 
class="n">struct_col</span><span class="p">[</span><span 
class="s1">&#39;outer&#39;</span><span class="p">][</span><span 
class="s1">&#39;inner_val&#39;</span><span class="p">]</span><span class="w"> 
</span><span class="k">as</span><span class="w"> </span><span 
class="k">result</span><span class="w"> </span><span class="k">from</span><span 
class="w"> </span><span class="n">test</s [...]
+<span class="o">+</span><span class="c1">--------+</span>
+<span class="o">|</span><span class="w"> </span><span 
class="k">result</span><span class="w"> </span><span class="o">|</span>
+<span class="o">+</span><span class="c1">--------+</span>
+<span class="o">|</span><span class="w"> </span><span 
class="mi">42</span><span class="w">     </span><span class="o">|</span>
+<span class="o">+</span><span class="c1">--------+</span>
 </pre></div>
 </div>
 </section>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to