This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
commit c563d7c3499aa1c6f2672ab571a0c3cdca2cf0c1
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Aug 5 18:15:05 2026 +0000
Publish built docs triggered by 1feef7aba891385349234b4fb8d204c3f3f371ac
---
_sources/contributor-guide/development.md.txt | 8 ++++----
_sources/contributor-guide/optimizing_expressions.md.txt | 3 ++-
_sources/contributor-guide/spark_configs_support.md.txt | 2 +-
contributor-guide/development.html | 8 ++++----
contributor-guide/optimizing_expressions.html | 12 ++++++++----
contributor-guide/spark_configs_support.html | 2 +-
searchindex.js | 2 +-
7 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/_sources/contributor-guide/development.md.txt
b/_sources/contributor-guide/development.md.txt
index 7e5c20c7ec..26fdbbb404 100644
--- a/_sources/contributor-guide/development.md.txt
+++ b/_sources/contributor-guide/development.md.txt
@@ -269,10 +269,10 @@ and `-Dtest=none`:
./mvnw test -Dtest=none -Dsuites="org.apache.comet.CometArrayExpressionSuite"
# Run multiple suites (comma-separated, fully qualified)
-./mvnw test -Dtest=none
-Dsuites="org.apache.comet.CometCastSuite,org.apache.comet.CometArrayExpressionSuite"
+./mvnw test -Dtest=none
-Dsuites="org.apache.comet.CometNativeCastSuite,org.apache.comet.CometArrayExpressionSuite"
# Run only tests whose name contains "valid" inside one suite
-./mvnw test -Dtest=none -Dsuites="org.apache.comet.CometCastSuite valid"
+./mvnw test -Dtest=none -Dsuites="org.apache.comet.CometNativeCastSuite valid"
```
`-Dtest=none` tells the Surefire (JUnit) plugin to skip its tests; without it,
Surefire still
@@ -474,10 +474,10 @@ However if the tests is related to the native side.
Please make sure to run `mak
Specify which ScalaTest suites to run with the `suites` argument and disable
Surefire's JUnit
discovery with `-Dtest=none`. For example, to run only the test cases
containing _valid_ in
-their name from `org.apache.comet.CometCastSuite`:
+their name from `org.apache.comet.CometNativeCastSuite`:
```sh
-./mvnw test -Dtest=none -Dsuites="org.apache.comet.CometCastSuite valid"
+./mvnw test -Dtest=none -Dsuites="org.apache.comet.CometNativeCastSuite valid"
```
See [Running a Specific ScalaTest Suite](#running-a-specific-scalatest-suite)
above for the full
diff --git a/_sources/contributor-guide/optimizing_expressions.md.txt
b/_sources/contributor-guide/optimizing_expressions.md.txt
index a000f91398..ecdb8a7263 100644
--- a/_sources/contributor-guide/optimizing_expressions.md.txt
+++ b/_sources/contributor-guide/optimizing_expressions.md.txt
@@ -149,7 +149,8 @@ for the lightest one that fits.
| **Preallocate builders to known size** |
Repeated buffer growth/reallocation
| `spark_unhex`: preallocate `BinaryBuilder` to the known
output length
|
| **Compile-time lookup tables** |
Per-element range matches / branching
| `spark_unhex`: 256-entry hex table instead of per-digit
range match
|
| **Cache compiled regex** (thread-local, keyed by the constant arg) |
`Regex::new()` per row
| `parse_url` QUERY-with-key (50x): the key is constant
across a batch
|
-| **Read from the offset buffer directly** |
`list_array.value(i)` allocating a sliced `ArrayRef` per row
| `spark_size`: compute list lengths from offsets, zero
allocation
|
+| **Read from the offset buffer directly** |
`list_array.value(i)` allocating a sliced `ArrayRef` per row
| `spark_size` Map path and scalar path: `value_length` /
offsets instead of materializing a sliced array
|
+| **Reuse Arrow `length` kernel + cheap null rewrite** | Per-row
`value_length` / builder loop, or `zip` via `MutableArrayData`
| `spark_size` (~12x on no-null List): `length` for
List/LargeList/FixedSizeList, then `into_parts` + `set_indices` to patch null
slots to `-1` |
| **Typed scans over flat values buffers + hash probe** | A
per-element Arrow `eq`/compute kernel that allocates per call
| `spark_arrays_overlap` (up to 18x): scan buffers
directly, hash probe for large lists
|
| **ASCII / byte-offset fast path** |
`chars().count()` and per-char UTF-8 decoding
| `substring` (up to 10x), `spark_lpad` (2x): slice by
byte offset when input is ASCII
|
| **`memcpy` from a precomputed buffer** |
Char-by-char `push` into a scratch `String`
| `spark_lpad`: pad from a precomputed repeating pad
buffer, write directly into the builder
|
diff --git a/_sources/contributor-guide/spark_configs_support.md.txt
b/_sources/contributor-guide/spark_configs_support.md.txt
index 4ec8a99edf..b2c55bc146 100644
--- a/_sources/contributor-guide/spark_configs_support.md.txt
+++ b/_sources/contributor-guide/spark_configs_support.md.txt
@@ -104,7 +104,7 @@ across Spark 3.4, 3.5, 4.0, and 4.1. Three expression
classes mix in
`to_date`, and Spark 4's `try_to_timestamp`)
`Cast` between strings and date / timestamp also reads the policy via the
default
-formatters but is tested separately by `CometCastSuite` and is out of scope
here.
+formatters but is tested separately by `CometNativeCastSuite` and is out of
scope here.
**Comet status.** None of the native implementations consult
`legacyTimeParserPolicy` directly. Comet instead uses native implementations
only for
diff --git a/contributor-guide/development.html
b/contributor-guide/development.html
index 971e6215f3..24a0956fbc 100644
--- a/contributor-guide/development.html
+++ b/contributor-guide/development.html
@@ -824,10 +824,10 @@ and <code class="docutils literal notranslate"><span
class="pre">-Dtest=none</sp
./mvnw<span class="w"> </span><span class="nb">test</span><span class="w">
</span>-Dtest<span class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span
class="s2">"org.apache.comet.CometArrayExpressionSuite"</span>
<span class="c1"># Run multiple suites (comma-separated, fully
qualified)</span>
-./mvnw<span class="w"> </span><span class="nb">test</span><span class="w">
</span>-Dtest<span class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span
class="s2">"org.apache.comet.CometCastSuite,org.apache.comet.CometArrayExpressionSuite"</span>
+./mvnw<span class="w"> </span><span class="nb">test</span><span class="w">
</span>-Dtest<span class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span
class="s2">"org.apache.comet.CometNativeCastSuite,org.apache.comet.CometArrayExpressionSuite"</span>
<span class="c1"># Run only tests whose name contains "valid" inside
one suite</span>
-./mvnw<span class="w"> </span><span class="nb">test</span><span class="w">
</span>-Dtest<span class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span class="s2">"org.apache.comet.CometCastSuite
valid"</span>
+./mvnw<span class="w"> </span><span class="nb">test</span><span class="w">
</span>-Dtest<span class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span class="s2">"org.apache.comet.CometNativeCastSuite
valid"</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span
class="pre">-Dtest=none</span></code> tells the Surefire (JUnit) plugin to skip
its tests; without it, Surefire still
@@ -1003,8 +1003,8 @@ However if the tests is related to the native side.
Please make sure to run <cod
<h3>Running Tests from command line<a class="headerlink"
href="#running-tests-from-command-line" title="Link to this heading">#</a></h3>
<p>Specify which ScalaTest suites to run with the <code class="docutils
literal notranslate"><span class="pre">suites</span></code> argument and
disable Surefire’s JUnit
discovery with <code class="docutils literal notranslate"><span
class="pre">-Dtest=none</span></code>. For example, to run only the test cases
containing <em>valid</em> in
-their name from <code class="docutils literal notranslate"><span
class="pre">org.apache.comet.CometCastSuite</span></code>:</p>
-<div class="highlight-sh notranslate"><div
class="highlight"><pre><span></span>./mvnw<span class="w"> </span><span
class="nb">test</span><span class="w"> </span>-Dtest<span
class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span class="s2">"org.apache.comet.CometCastSuite
valid"</span>
+their name from <code class="docutils literal notranslate"><span
class="pre">org.apache.comet.CometNativeCastSuite</span></code>:</p>
+<div class="highlight-sh notranslate"><div
class="highlight"><pre><span></span>./mvnw<span class="w"> </span><span
class="nb">test</span><span class="w"> </span>-Dtest<span
class="o">=</span>none<span class="w"> </span>-Dsuites<span
class="o">=</span><span class="s2">"org.apache.comet.CometNativeCastSuite
valid"</span>
</pre></div>
</div>
<p>See <a class="reference internal"
href="#running-a-specific-scalatest-suite">Running a Specific ScalaTest
Suite</a> above for the full
diff --git a/contributor-guide/optimizing_expressions.html
b/contributor-guide/optimizing_expressions.html
index fa08c1de0d..275e46c91f 100644
--- a/contributor-guide/optimizing_expressions.html
+++ b/contributor-guide/optimizing_expressions.html
@@ -701,17 +701,21 @@ for the lightest one that fits.</p>
</tr>
<tr class="row-odd"><td><p><strong>Read from the offset buffer
directly</strong></p></td>
<td><p><code class="docutils literal notranslate"><span
class="pre">list_array.value(i)</span></code> allocating a sliced <code
class="docutils literal notranslate"><span class="pre">ArrayRef</span></code>
per row</p></td>
-<td><p><code class="docutils literal notranslate"><span
class="pre">spark_size</span></code>: compute list lengths from offsets, zero
allocation</p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">spark_size</span></code> Map path and scalar path: <code
class="docutils literal notranslate"><span
class="pre">value_length</span></code> / offsets instead of materializing a
sliced array</p></td>
</tr>
-<tr class="row-even"><td><p><strong>Typed scans over flat values buffers +
hash probe</strong></p></td>
+<tr class="row-even"><td><p><strong>Reuse Arrow <code class="docutils literal
notranslate"><span class="pre">length</span></code> kernel + cheap null
rewrite</strong></p></td>
+<td><p>Per-row <code class="docutils literal notranslate"><span
class="pre">value_length</span></code> / builder loop, or <code class="docutils
literal notranslate"><span class="pre">zip</span></code> via <code
class="docutils literal notranslate"><span
class="pre">MutableArrayData</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">spark_size</span></code> (~12x on no-null List): <code
class="docutils literal notranslate"><span class="pre">length</span></code> for
List/LargeList/FixedSizeList, then <code class="docutils literal
notranslate"><span class="pre">into_parts</span></code> + <code class="docutils
literal notranslate"><span class="pre">set_indices</span></code> to patch null
slots to <code class="docutils literal notranslate"><span class=" [...]
+</tr>
+<tr class="row-odd"><td><p><strong>Typed scans over flat values buffers + hash
probe</strong></p></td>
<td><p>A per-element Arrow <code class="docutils literal notranslate"><span
class="pre">eq</span></code>/compute kernel that allocates per call</p></td>
<td><p><code class="docutils literal notranslate"><span
class="pre">spark_arrays_overlap</span></code> (up to 18x): scan buffers
directly, hash probe for large lists</p></td>
</tr>
-<tr class="row-odd"><td><p><strong>ASCII / byte-offset fast
path</strong></p></td>
+<tr class="row-even"><td><p><strong>ASCII / byte-offset fast
path</strong></p></td>
<td><p><code class="docutils literal notranslate"><span
class="pre">chars().count()</span></code> and per-char UTF-8 decoding</p></td>
<td><p><code class="docutils literal notranslate"><span
class="pre">substring</span></code> (up to 10x), <code class="docutils literal
notranslate"><span class="pre">spark_lpad</span></code> (2x): slice by byte
offset when input is ASCII</p></td>
</tr>
-<tr class="row-even"><td><p><strong><code class="docutils literal
notranslate"><span class="pre">memcpy</span></code> from a precomputed
buffer</strong></p></td>
+<tr class="row-odd"><td><p><strong><code class="docutils literal
notranslate"><span class="pre">memcpy</span></code> from a precomputed
buffer</strong></p></td>
<td><p>Char-by-char <code class="docutils literal notranslate"><span
class="pre">push</span></code> into a scratch <code class="docutils literal
notranslate"><span class="pre">String</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span
class="pre">spark_lpad</span></code>: pad from a precomputed repeating pad
buffer, write directly into the builder</p></td>
</tr>
diff --git a/contributor-guide/spark_configs_support.html
b/contributor-guide/spark_configs_support.html
index e1453dc25e..4b23bc92c0 100644
--- a/contributor-guide/spark_configs_support.html
+++ b/contributor-guide/spark_configs_support.html
@@ -637,7 +637,7 @@ across Spark 3.4, 3.5, 4.0, and 4.1. Three expression
classes mix in
<code class="docutils literal notranslate"><span
class="pre">to_date</span></code>, and Spark 4’s <code class="docutils literal
notranslate"><span class="pre">try_to_timestamp</span></code>)</p></li>
</ul>
<p><code class="docutils literal notranslate"><span
class="pre">Cast</span></code> between strings and date / timestamp also reads
the policy via the default
-formatters but is tested separately by <code class="docutils literal
notranslate"><span class="pre">CometCastSuite</span></code> and is out of scope
here.</p>
+formatters but is tested separately by <code class="docutils literal
notranslate"><span class="pre">CometNativeCastSuite</span></code> and is out of
scope here.</p>
<p><strong>Comet status.</strong> None of the native implementations consult
<code class="docutils literal notranslate"><span
class="pre">legacyTimeParserPolicy</span></code> directly. Comet instead uses
native implementations only for
policy-independent cases and routes policy-sensitive expressions through
Spark’s own
diff --git a/searchindex.js b/searchindex.js
index c6f209c080..8469167068 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!": [[54, "id1"]], "%": [[52, "id1"]], "&":
[[42, "id1"]], "*": [[52, "id2"]], "+": [[52, "id3"]], "-": [[52, "id4"]], "/":
[[52, "id5"]], "1. Format Your Code": [[39, "format-your-code"]], "1. Install
Comet": [[60, "install-comet"], [70, "install-comet"]], "1. Native Operators
(nativeExecs map)": [[27, "native-operators-nativeexecs-map"]], "2. Build and
Verify": [[39, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[60,
"clone-iceberg-and-apply- [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!": [[54, "id1"]], "%": [[52, "id1"]], "&":
[[42, "id1"]], "*": [[52, "id2"]], "+": [[52, "id3"]], "-": [[52, "id4"]], "/":
[[52, "id5"]], "1. Format Your Code": [[39, "format-your-code"]], "1. Install
Comet": [[60, "install-comet"], [70, "install-comet"]], "1. Native Operators
(nativeExecs map)": [[27, "native-operators-nativeexecs-map"]], "2. Build and
Verify": [[39, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[60,
"clone-iceberg-and-apply- [...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]