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
The following commit(s) were added to refs/heads/asf-site by this push:
new d60104c43d Publish built docs triggered by
57ef3275d3d4e6e3c4d5f3de27b9b71daf736164
d60104c43d is described below
commit d60104c43d577c5e204dba9e9334ef049c7366cf
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Sep 22 00:00:11 2026 +0000
Publish built docs triggered by 57ef3275d3d4e6e3c4d5f3de27b9b71daf736164
---
...aid-013012468fa27c9e9fdb0a14196d357c619c68a8.svg | 2 +-
_sources/contributor-guide/plugin_overview.md.txt | 14 +++++++++-----
contributor-guide/plugin_overview.html | 21 ++++++++++++---------
searchindex.js | 2 +-
4 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/_images/mermaid-013012468fa27c9e9fdb0a14196d357c619c68a8.svg
b/_images/mermaid-013012468fa27c9e9fdb0a14196d357c619c68a8.svg
index 5c01043340..fb39632a32 100644
--- a/_images/mermaid-013012468fa27c9e9fdb0a14196d357c619c68a8.svg
+++ b/_images/mermaid-013012468fa27c9e9fdb0a14196d357c619c68a8.svg
@@ -1 +1 @@
-<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width:
511.73px; background-color: transparent;" viewBox="0 0 511.7299499511719 942"
role="graphics-document document"
aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet
ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes
edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes
dash{to{stroke-dashoffset:0;}}#my-svg [...]
\ No newline at end of file
+<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width:
511.73px; background-color: transparent;" viewBox="0 0 511.7299499511719 942"
role="graphics-document document"
aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet
ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes
edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes
dash{to{stroke-dashoffset:0;}}#my-svg [...]
\ No newline at end of file
diff --git a/_sources/contributor-guide/plugin_overview.md.txt
b/_sources/contributor-guide/plugin_overview.md.txt
index c3330a65d6..6dfb0bdf3c 100644
--- a/_sources/contributor-guide/plugin_overview.md.txt
+++ b/_sources/contributor-guide/plugin_overview.md.txt
@@ -47,11 +47,15 @@ The plugin also registers `CometSparkSessionExtensions`
with Spark's extension A
## CometSparkSessionExtensions
-On initialization, this class registers two physical plan optimization rules
with Spark: `CometScanRule`
-and `CometExecRule`. These rules run whenever a query stage is being planned
during Adaptive Query Execution, and
-run once for the entire plan when Adaptive Query Execution is disabled.
+On initialization, this class registers one physical plan optimization rule
with Spark: `CometRule`. It runs whenever
+a query stage is being planned during Adaptive Query Execution, and runs once
for the entire plan when Adaptive Query
+Execution is disabled.
-### CometScanRule
+`CometRule` is two phases, applied in order: scan conversion
(`CometScanRule`), then operator conversion
+(`CometExecRule`). The order matters, because operator conversion builds its
native plan up from the nodes that scan
+conversion produces. Each phase is described below.
+
+### Phase 1: CometScanRule
`CometScanRule` replaces any Parquet scans with Comet operators. There are
different paths for Spark v1 and v2 data sources.
@@ -68,7 +72,7 @@ convert the output from Spark's scan to Arrow arrays. Note
that both `spark.come
Refer to the [Supported Spark Data
Types](https://datafusion.apache.org/comet/user-guide/datatypes.html) section
in the contributor guide to see a list of currently supported data types.
-### CometExecRule
+### Phase 2: CometExecRule
This rule traverses bottom-up from the original Spark plan and attempts to
replace each operator with a Comet equivalent.
For example, a `ProjectExec` will be replaced by `CometProjectExec`.
diff --git a/contributor-guide/plugin_overview.html
b/contributor-guide/plugin_overview.html
index cfa5752099..ea966a2236 100644
--- a/contributor-guide/plugin_overview.html
+++ b/contributor-guide/plugin_overview.html
@@ -572,11 +572,14 @@ configuration.</p>
</section>
<section id="cometsparksessionextensions">
<h2>CometSparkSessionExtensions<a class="headerlink"
href="#cometsparksessionextensions" title="Link to this heading">#</a></h2>
-<p>On initialization, this class registers two physical plan optimization
rules with Spark: <code class="docutils literal notranslate"><span
class="pre">CometScanRule</span></code>
-and <code class="docutils literal notranslate"><span
class="pre">CometExecRule</span></code>. These rules run whenever a query stage
is being planned during Adaptive Query Execution, and
-run once for the entire plan when Adaptive Query Execution is disabled.</p>
-<section id="cometscanrule">
-<h3>CometScanRule<a class="headerlink" href="#cometscanrule" title="Link to
this heading">#</a></h3>
+<p>On initialization, this class registers one physical plan optimization rule
with Spark: <code class="docutils literal notranslate"><span
class="pre">CometRule</span></code>. It runs whenever
+a query stage is being planned during Adaptive Query Execution, and runs once
for the entire plan when Adaptive Query
+Execution is disabled.</p>
+<p><code class="docutils literal notranslate"><span
class="pre">CometRule</span></code> is two phases, applied in order: scan
conversion (<code class="docutils literal notranslate"><span
class="pre">CometScanRule</span></code>), then operator conversion
+(<code class="docutils literal notranslate"><span
class="pre">CometExecRule</span></code>). The order matters, because operator
conversion builds its native plan up from the nodes that scan
+conversion produces. Each phase is described below.</p>
+<section id="phase-1-cometscanrule">
+<h3>Phase 1: CometScanRule<a class="headerlink" href="#phase-1-cometscanrule"
title="Link to this heading">#</a></h3>
<p><code class="docutils literal notranslate"><span
class="pre">CometScanRule</span></code> replaces any Parquet scans with Comet
operators. There are different paths for Spark v1 and v2 data sources.</p>
<p>When reading from Parquet v1 data sources, Comet replaces <code
class="docutils literal notranslate"><span
class="pre">FileSourceScanExec</span></code> with a <code class="docutils
literal notranslate"><span class="pre">CometScanExec</span></code>, and for v2
data sources, <code class="docutils literal notranslate"><span
class="pre">BatchScanExec</span></code> is replaced with <code class="docutils
literal notranslate"><span class="pre">CometBatchScanExec</span></code>. In
both cases, Comet replaces Spark’s Parquet
@@ -589,8 +592,8 @@ convert the output from Spark’s scan to Arrow arrays. Note
that both <code cla
<p>Refer to the <a class="reference external"
href="https://datafusion.apache.org/comet/user-guide/datatypes.html">Supported
Spark Data Types</a> section
in the contributor guide to see a list of currently supported data types.</p>
</section>
-<section id="cometexecrule">
-<h3>CometExecRule<a class="headerlink" href="#cometexecrule" title="Link to
this heading">#</a></h3>
+<section id="phase-2-cometexecrule">
+<h3>Phase 2: CometExecRule<a class="headerlink" href="#phase-2-cometexecrule"
title="Link to this heading">#</a></h3>
<p>This rule traverses bottom-up from the original Spark plan and attempts to
replace each operator with a Comet equivalent.
For example, a <code class="docutils literal notranslate"><span
class="pre">ProjectExec</span></code> will be replaced by <code class="docutils
literal notranslate"><span class="pre">CometProjectExec</span></code>.</p>
<p>When replacing a node, various checks are performed to determine if Comet
can support the operator and its expressions.
@@ -700,8 +703,8 @@ writing the batches to the shuffle file.</p>
<li class="toc-h1 nav-item toc-entry"><a class="reference internal nav-link"
href="#plugin-components">Plugin Components</a><ul class="visible nav
section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#comet-sql-plugin">Comet SQL Plugin</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#cometsparksessionextensions">CometSparkSessionExtensions</a><ul
class="nav section-nav flex-column">
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#cometscanrule">CometScanRule</a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#cometexecrule">CometExecRule</a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#phase-1-cometscanrule">Phase 1: CometScanRule</a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#phase-2-cometexecrule">Phase 2: CometExecRule</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#query-execution">Query Execution</a></li>
diff --git a/searchindex.js b/searchindex.js
index 38a2bd02d8..e3bf507992 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!": [[56, "id1"]], "%": [[54, "id1"]], "&":
[[44, "id1"]], "*": [[54, "id2"]], "+": [[54, "id3"]], "-": [[54, "id4"]], "/":
[[54, "id5"]], "1. Format Your Code": [[41, "format-your-code"]], "1. Install
Comet": [[62, "install-comet"], [73, "install-comet"]], "1. Native Operators
(nativeExecs map)": [[28, "native-operators-nativeexecs-map"]], "2. Build and
Verify": [[41, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[62,
"clone-iceberg-and-apply- [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!": [[56, "id1"]], "%": [[54, "id1"]], "&":
[[44, "id1"]], "*": [[54, "id2"]], "+": [[54, "id3"]], "-": [[54, "id4"]], "/":
[[54, "id5"]], "1. Format Your Code": [[41, "format-your-code"]], "1. Install
Comet": [[62, "install-comet"], [73, "install-comet"]], "1. Native Operators
(nativeExecs map)": [[28, "native-operators-nativeexecs-map"]], "2. Build and
Verify": [[41, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[62,
"clone-iceberg-and-apply- [...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]