Skip to content

Docs: add DataFusion backend support column to PPL command reference - #5679

Merged
noCharger merged 3 commits into
opensearch-project:mainfrom
noCharger:docs/ppl-datafusion-backend-support
Aug 7, 2026
Merged

Docs: add DataFusion backend support column to PPL command reference#5679
noCharger merged 3 commits into
opensearch-project:mainfrom
noCharger:docs/ppl-datafusion-backend-support

Conversation

@noCharger

@noCharger noCharger commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds a DataFusion Backend column to the Commands table in docs/user/ppl/index.md, indicating whether each PPL command runs on the analytics engine (DataFusion) execution path used for parquet/composite-format indices, plus a legend defining the values.

Column values:

  • Yes — executes on the DataFusion path.
  • Partial — executes on the DataFusion path with a known limitation on specific modes/variants (see the command page).
  • No — operates on index data but is not supported on the DataFusion path (runs on the default engine, is rejected, or has no plan translation).
  • N/A — does not touch the parquet/AE data path by design (planning, metadata, or management commands).

Basis

Values were derived from (a) the analytics-engine integration-test suite, (b) a live run of each command against a parquet/composite index on an analytics-engine cluster, and (c) lowered-plan (Calcite RelNode) analysis for commands without direct coverage.

Notable classifications:

  • parse — regex named-group extraction currently returns empty on the DataFusion path, while rex extraction works. (Partial)
  • streamstatspercentile / percentile_approx window functions are rejected; other aggregates work. (Partial)
  • patternsmode=aggregation is not yet supported; mode=label works. (Partial)
  • lookup — the join-based form is not yet supported; the table form works. (Partial)
  • multisearch — 3-branch union under-aggregates; 2-branch works. (Partial)
  • xyseries — pending direct verification. (Partial)
  • expand / mvexpand — lower to UNNEST (Correlate + Uncollect); the DataFusion path is not yet verified end-to-end (no analytics-engine IT coverage, and a table-registration gap fails multi-shard). (No)
  • foreach — not supported on the DataFusion path in the current build. (No)
  • makeresults — lowers to Values; the DataFusion pushdown (VirtualTableScan, in particular CHAR/VARCHAR string literals) is not yet supported and is tracked in the unmerged core PR [analytics-backend-datafusion] Normalize CHAR/VARCHAR literals to Str in VirtualTable conversion OpenSearch#22554. (No)
  • mvcombine / nomv — the backend lacks ARRAY_AGG / ARRAY_COMPACT. (No)
  • ml / kmeans / ad / graphlookup — no DataFusion plan translation / unsupported on the Calcite path. (No)
  • explain / describe / show datasources / rest — planning, metadata, or management commands that do not touch the parquet/AE data path (they run via the default engine and are unaffected by AE). (N/A)

Check List

  • Documentation-only change (Markdown table + legend); no doctest code blocks added.
  • Commits are signed with a DCO sign-off.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

(Review updated until commit 6d2bf9c)

Here are some key observations to aid the review process:

🧪 No relevant tests
🔒 No security concerns identified
✅ No TODO sections
🔀 No multiple PR themes
⚡ No major issues detected

Add a 'DataFusion Backend' column to the Commands table in
docs/user/ppl/index.md, indicating whether each PPL command runs on the
analytics engine (DataFusion) execution path used for parquet/composite
indices (Yes / Partial / No / N/A), with a legend defining the values.

Signed-off-by: Louis Chu <lingzhichu.clz@gmail.com>
Comment thread docs/user/ppl/index.md Outdated
Comment thread docs/user/ppl/index.md Outdated
Comment thread docs/user/ppl/index.md Outdated
Comment thread docs/user/ppl/index.md Outdated
Comment thread docs/user/ppl/index.md Outdated
Comment thread docs/user/ppl/index.md Outdated
makeresults lowers to a Values node whose DataFusion pushdown (VirtualTableScan,
esp. CHAR/VARCHAR string literals) is not yet supported on main -- that fix is
tracked in the (unmerged) core PR opensearch-project/OpenSearch#22554. Mark No
until it lands.

Signed-off-by: Louis Chu <lingzhichu.clz@gmail.com>
@noCharger
noCharger force-pushed the docs/ppl-datafusion-backend-support branch from 2f5a6e4 to 6d2bf9c Compare August 6, 2026 07:37
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Persistent review updated to latest commit 6d2bf9c

Per review by @ahkcs on PR opensearch-project#5679:
- search  -> Partial (relevance/full-text predicates are Lucene-delegated; base scan runs on DataFusion)
- convert -> Partial (some conversion functions are not wired on the DataFusion path)
- flatten -> No (struct/object flattening is not supported on parquet/composite)
- bin     -> Partial (span bucketing runs; other bin variants are not supported)
expand and mvexpand were already changed to No in a prior commit per the same review.

Signed-off-by: Louis Chu <lingzhichu.clz@gmail.com>
@noCharger
noCharger merged commit 9b6b8af into opensearch-project:main Aug 7, 2026
13 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants