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 e8369855cc Publish built docs triggered by 
012c1f01e6b1ad72e1c8d5419b563f1480d2198a
e8369855cc is described below

commit e8369855ccd5f1eec54cc5a13d9b071c2e324af0
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Mar 18 17:46:20 2025 +0000

    Publish built docs triggered by 012c1f01e6b1ad72e1c8d5419b563f1480d2198a
---
 _sources/library-user-guide/upgrading.md.txt | 85 ++++++++++++++++++++++++++++
 library-user-guide/upgrading.html            | 75 ++++++++++++++++++++++++
 searchindex.js                               |  2 +-
 3 files changed, 161 insertions(+), 1 deletion(-)

diff --git a/_sources/library-user-guide/upgrading.md.txt 
b/_sources/library-user-guide/upgrading.md.txt
index 7e477d4786..d124bb7e2c 100644
--- a/_sources/library-user-guide/upgrading.md.txt
+++ b/_sources/library-user-guide/upgrading.md.txt
@@ -200,4 +200,89 @@ To include special characters (such as newlines via `\n`) 
you can use an `E` lit
 Elapsed 0.005 seconds.
 ```
 
+### Changes to array scalar function signatures
+
+DataFusion 46 has changed the way scalar array function signatures are
+declared. Previously, functions needed to select from a list of predefined
+signatures within the `ArrayFunctionSignature` enum. Now the signatures
+can be defined via a `Vec` of psuedo-types, which each correspond to a
+single argument. Those psuedo-types are the variants of the
+`ArrayFunctionArgument` enum and are as follows:
+
+- `Array`: An argument of type List/LargeList/FixedSizeList. All Array
+  arguments must be coercible to the same type.
+- `Element`: An argument that is coercible to the inner type of the `Array`
+  arguments.
+- `Index`: An `Int64` argument.
+
+Each of the old variants can be converted to the new format as follows:
+
+`TypeSignature::ArraySignature(ArrayFunctionSignature::ArrayAndElement)`:
+
+```rust
+
+TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
+    arguments: vec![ArrayFunctionArgument::Array, 
ArrayFunctionArgument::Element],
+    array_coercion: Some(ListCoercion::FixedSizedListToList),
+});
+```
+
+`TypeSignature::ArraySignature(ArrayFunctionSignature::ElementAndArray)`:
+
+```rust
+
+TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
+    arguments: vec![ArrayFunctionArgument::Element, 
ArrayFunctionArgument::Array],
+    array_coercion: Some(ListCoercion::FixedSizedListToList),
+});
+```
+
+`TypeSignature::ArraySignature(ArrayFunctionSignature::ArrayAndIndex)`:
+
+```rust
+
+TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
+    arguments: vec![ArrayFunctionArgument::Array, 
ArrayFunctionArgument::Index],
+    array_coercion: None,
+});
+```
+
+`TypeSignature::ArraySignature(ArrayFunctionSignature::ArrayAndElementAndOptionalIndex)`:
+
+```rust
+
+TypeSignature::OneOf(vec![
+    TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
+        arguments: vec![ArrayFunctionArgument::Array, 
ArrayFunctionArgument::Element],
+        array_coercion: None,
+    }),
+    TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
+        arguments: vec![
+            ArrayFunctionArgument::Array,
+            ArrayFunctionArgument::Element,
+            ArrayFunctionArgument::Index,
+        ],
+        array_coercion: None,
+    }),
+]);
+```
+
+`TypeSignature::ArraySignature(ArrayFunctionSignature::Array)`:
+
+```rust
+
+TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
+    arguments: vec![ArrayFunctionArgument::Array],
+    array_coercion: None,
+});
+```
+
+Alternatively, you can switch to using one of the following functions which
+take care of constructing the `TypeSignature` for you:
+
+- `Signature::array_and_element`
+- `Signature::array_and_element_and_optional_index`
+- `Signature::array_and_index`
+- `Signature::array`
+
 [ticket]: https://github.com/apache/datafusion/issues/13286
diff --git a/library-user-guide/upgrading.html 
b/library-user-guide/upgrading.html
index fbc647b543..a4179fd517 100644
--- a/library-user-guide/upgrading.html
+++ b/library-user-guide/upgrading.html
@@ -612,6 +612,11 @@
      no longer automatically unescapes strings
     </a>
    </li>
+   <li class="toc-h3 nav-item toc-entry">
+    <a class="reference internal nav-link" 
href="#changes-to-array-scalar-function-signatures">
+     Changes to array scalar function signatures
+    </a>
+   </li>
   </ul>
  </li>
 </ul>
@@ -816,6 +821,76 @@ the following must be changed:</p>
 </pre></div>
 </div>
 </section>
+<section id="changes-to-array-scalar-function-signatures">
+<h3>Changes to array scalar function signatures<a class="headerlink" 
href="#changes-to-array-scalar-function-signatures" title="Link to this 
heading">ΒΆ</a></h3>
+<p>DataFusion 46 has changed the way scalar array function signatures are
+declared. Previously, functions needed to select from a list of predefined
+signatures within the <code class="docutils literal notranslate"><span 
class="pre">ArrayFunctionSignature</span></code> enum. Now the signatures
+can be defined via a <code class="docutils literal notranslate"><span 
class="pre">Vec</span></code> of psuedo-types, which each correspond to a
+single argument. Those psuedo-types are the variants of the
+<code class="docutils literal notranslate"><span 
class="pre">ArrayFunctionArgument</span></code> enum and are as follows:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Array</span></code>: An argument of type 
List/LargeList/FixedSizeList. All Array
+arguments must be coercible to the same type.</p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Element</span></code>: An argument that is coercible to the inner 
type of the <code class="docutils literal notranslate"><span 
class="pre">Array</span></code>
+arguments.</p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Index</span></code>: An <code class="docutils literal 
notranslate"><span class="pre">Int64</span></code> argument.</p></li>
+</ul>
+<p>Each of the old variants can be converted to the new format as follows:</p>
+<p><code class="docutils literal notranslate"><span 
class="pre">TypeSignature::ArraySignature(ArrayFunctionSignature::ArrayAndElement)</span></code>:</p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">ArraySignature</span><span 
class="p">(</span><span class="n">ArrayFunctionSignature</span><span 
class="p">::</span><span class="n">Array</span><span class="w"> </span><span 
class="p">{</span>
+<span class="w">    </span><span class="n">arguments</span><span 
class="p">:</span><span class="w"> </span><span class="nc">vec</span><span 
class="o">!</span><span class="p">[</span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Array</span><span class="p">,</span><span class="w"> </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Element</span><span class="p">],</span>
+<span class="w">    </span><span class="n">array_coercion</span><span 
class="p">:</span><span class="w"> </span><span class="nb">Some</span><span 
class="p">(</span><span class="n">ListCoercion</span><span 
class="p">::</span><span class="n">FixedSizedListToList</span><span 
class="p">),</span>
+<span class="p">});</span>
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span 
class="pre">TypeSignature::ArraySignature(ArrayFunctionSignature::ElementAndArray)</span></code>:</p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">ArraySignature</span><span 
class="p">(</span><span class="n">ArrayFunctionSignature</span><span 
class="p">::</span><span class="n">Array</span><span class="w"> </span><span 
class="p">{</span>
+<span class="w">    </span><span class="n">arguments</span><span 
class="p">:</span><span class="w"> </span><span class="nc">vec</span><span 
class="o">!</span><span class="p">[</span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Element</span><span class="p">,</span><span class="w"> </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Array</span><span class="p">],</span>
+<span class="w">    </span><span class="n">array_coercion</span><span 
class="p">:</span><span class="w"> </span><span class="nb">Some</span><span 
class="p">(</span><span class="n">ListCoercion</span><span 
class="p">::</span><span class="n">FixedSizedListToList</span><span 
class="p">),</span>
+<span class="p">});</span>
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span 
class="pre">TypeSignature::ArraySignature(ArrayFunctionSignature::ArrayAndIndex)</span></code>:</p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">ArraySignature</span><span 
class="p">(</span><span class="n">ArrayFunctionSignature</span><span 
class="p">::</span><span class="n">Array</span><span class="w"> </span><span 
class="p">{</span>
+<span class="w">    </span><span class="n">arguments</span><span 
class="p">:</span><span class="w"> </span><span class="nc">vec</span><span 
class="o">!</span><span class="p">[</span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Array</span><span class="p">,</span><span class="w"> </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Index</span><span class="p">],</span>
+<span class="w">    </span><span class="n">array_coercion</span><span 
class="p">:</span><span class="w"> </span><span class="nb">None</span><span 
class="p">,</span>
+<span class="p">});</span>
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span 
class="pre">TypeSignature::ArraySignature(ArrayFunctionSignature::ArrayAndElementAndOptionalIndex)</span></code>:</p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">OneOf</span><span class="p">(</span><span 
class="fm">vec!</span><span class="p">[</span>
+<span class="w">    </span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">ArraySignature</span><span 
class="p">(</span><span class="n">ArrayFunctionSignature</span><span 
class="p">::</span><span class="n">Array</span><span class="w"> </span><span 
class="p">{</span>
+<span class="w">        </span><span class="n">arguments</span><span 
class="p">:</span><span class="w"> </span><span class="nc">vec</span><span 
class="o">!</span><span class="p">[</span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Array</span><span class="p">,</span><span class="w"> </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Element</span><span class="p">],</span>
+<span class="w">        </span><span class="n">array_coercion</span><span 
class="p">:</span><span class="w"> </span><span class="nb">None</span><span 
class="p">,</span>
+<span class="w">    </span><span class="p">}),</span>
+<span class="w">    </span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">ArraySignature</span><span 
class="p">(</span><span class="n">ArrayFunctionSignature</span><span 
class="p">::</span><span class="n">Array</span><span class="w"> </span><span 
class="p">{</span>
+<span class="w">        </span><span class="n">arguments</span><span 
class="p">:</span><span class="w"> </span><span class="nc">vec</span><span 
class="o">!</span><span class="p">[</span>
+<span class="w">            </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Array</span><span class="p">,</span>
+<span class="w">            </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Element</span><span class="p">,</span>
+<span class="w">            </span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Index</span><span class="p">,</span>
+<span class="w">        </span><span class="p">],</span>
+<span class="w">        </span><span class="n">array_coercion</span><span 
class="p">:</span><span class="w"> </span><span class="nb">None</span><span 
class="p">,</span>
+<span class="w">    </span><span class="p">}),</span>
+<span class="p">]);</span>
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span 
class="pre">TypeSignature::ArraySignature(ArrayFunctionSignature::Array)</span></code>:</p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="n">TypeSignature</span><span 
class="p">::</span><span class="n">ArraySignature</span><span 
class="p">(</span><span class="n">ArrayFunctionSignature</span><span 
class="p">::</span><span class="n">Array</span><span class="w"> </span><span 
class="p">{</span>
+<span class="w">    </span><span class="n">arguments</span><span 
class="p">:</span><span class="w"> </span><span class="nc">vec</span><span 
class="o">!</span><span class="p">[</span><span 
class="n">ArrayFunctionArgument</span><span class="p">::</span><span 
class="n">Array</span><span class="p">],</span>
+<span class="w">    </span><span class="n">array_coercion</span><span 
class="p">:</span><span class="w"> </span><span class="nb">None</span><span 
class="p">,</span>
+<span class="p">});</span>
+</pre></div>
+</div>
+<p>Alternatively, you can switch to using one of the following functions which
+take care of constructing the <code class="docutils literal notranslate"><span 
class="pre">TypeSignature</span></code> for you:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Signature::array_and_element</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Signature::array_and_element_and_optional_index</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Signature::array_and_index</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">Signature::array</span></code></p></li>
+</ul>
+</section>
 </section>
 </section>
 
diff --git a/searchindex.js b/searchindex.js
index 860af7148c..8c9aa8bf49 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[52,"op-neq"]],"!~":[[52,"op-re-not-match"]],"!~*":[[52,"op-re-not-match-i"]],"!~~":[[52,"id19"]],"!~~*":[[52,"id20"]],"#":[[52,"op-bit-xor"]],"%":[[52,"op-modulo"]],"&":[[52,"op-bit-and"]],"(relation,
 name) tuples in logical fields and logical columns are 
unique":[[12,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[52,"op-multiply"]],"+":[[52,"op-plus"]],"-":[[52,"op-minus"]],"/":[[52,"op-divide"]],"2022
 Q2":[[10,"q2"]] [...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[52,"op-neq"]],"!~":[[52,"op-re-not-match"]],"!~*":[[52,"op-re-not-match-i"]],"!~~":[[52,"id19"]],"!~~*":[[52,"id20"]],"#":[[52,"op-bit-xor"]],"%":[[52,"op-modulo"]],"&":[[52,"op-bit-and"]],"(relation,
 name) tuples in logical fields and logical columns are 
unique":[[12,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[52,"op-multiply"]],"+":[[52,"op-plus"]],"-":[[52,"op-minus"]],"/":[[52,"op-divide"]],"2022
 Q2":[[10,"q2"]] [...]
\ No newline at end of file


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

Reply via email to