Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions docs/source/user-guide/latest/understanding-comet-plans.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,12 +182,22 @@ Not every node in the plan is an eligible operator. The following are excluded
from both operator counts:

- Transition nodes (`CometColumnarToRow`, `CometNativeColumnarToRow`,
`CometSparkRowToColumnar`, `ColumnarToRow`, `RowToColumnar`), which are
reported separately as the transition count.
`CometSparkRowToColumnar`, `CometSparkColumnarToColumnar`, `ColumnarToRow`,
`RowToColumnar`), which are reported separately as the transition count.
`CometSparkRowToColumnar` and `CometSparkColumnarToColumnar` are the two names
a single operator renders under, depending on whether its child already
produces columnar data, and both are excluded.
- Wrappers that do no work of their own: `AdaptiveSparkPlan`, `InputAdapter`,
`WholeStageCodegen`, query stages, and `AQEShuffleRead`.
- The reuse marker `ReusedSubquery`. The subquery it points at is counted where
that subquery is shown, so the marker itself does not add to the totals.
- `ReusedExchange`, but with a caveat: it is not cleanly excluded the way the
wrappers above are. The node itself is skipped, and yet walking the plan
replaces it with the exchange it reuses, so the reused subtree is counted once
per reference rather than once for the whole plan. A plan that reuses one
exchange in three places contributes that subtree's operators three times.
Counting reused exchanges once is tracked as item 3 of
[#5203](https://github.com/apache/datafusion-comet/issues/5203).

### `spark.comet.explain.native.enabled`

Expand Down