You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/07/06 19:53:04 UTC
(datafusion-comet) branch asf-site updated: Publish built docs triggered by 15b5098f4655199b4c2a3cc29b3d433621051ae9
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 f148997697 Publish built docs triggered by 15b5098f4655199b4c2a3cc29b3d433621051ae9
f148997697 is described below
commit f14899769750e10278b9a1519134acc716669481
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Mon Jul 6 19:49:27 2026 +0000
Publish built docs triggered by 15b5098f4655199b4c2a3cc29b3d433621051ae9
---
_sources/contributor-guide/roadmap.md.txt | 25 +++++++++-----
.../expressions/spark-3.4/aggregate.md.txt | 1 +
.../expressions/spark-3.4/array.md.txt | 1 +
.../expressions/spark-3.4/datetime.md.txt | 1 +
.../compatibility/expressions/spark-3.4/map.md.txt | 1 +
.../expressions/spark-3.4/math.md.txt | 1 +
.../expressions/spark-3.4/misc.md.txt | 1 +
.../expressions/spark-3.4/string.md.txt | 1 +
.../expressions/spark-3.4/struct.md.txt | 1 +
.../expressions/spark-3.5/aggregate.md.txt | 1 +
.../expressions/spark-3.5/array.md.txt | 1 +
.../expressions/spark-3.5/datetime.md.txt | 1 +
.../compatibility/expressions/spark-3.5/map.md.txt | 1 +
.../expressions/spark-3.5/math.md.txt | 1 +
.../expressions/spark-3.5/misc.md.txt | 1 +
.../expressions/spark-3.5/string.md.txt | 1 +
.../expressions/spark-3.5/struct.md.txt | 1 +
.../expressions/spark-4.0/aggregate.md.txt | 1 +
.../expressions/spark-4.0/array.md.txt | 1 +
.../expressions/spark-4.0/datetime.md.txt | 1 +
.../compatibility/expressions/spark-4.0/map.md.txt | 1 +
.../expressions/spark-4.0/math.md.txt | 1 +
.../expressions/spark-4.0/misc.md.txt | 1 +
.../expressions/spark-4.0/string.md.txt | 1 +
.../expressions/spark-4.0/struct.md.txt | 1 +
.../expressions/spark-4.1/aggregate.md.txt | 1 +
.../expressions/spark-4.1/array.md.txt | 1 +
.../expressions/spark-4.1/datetime.md.txt | 1 +
.../compatibility/expressions/spark-4.1/map.md.txt | 1 +
.../expressions/spark-4.1/math.md.txt | 1 +
.../expressions/spark-4.1/misc.md.txt | 1 +
.../expressions/spark-4.1/string.md.txt | 1 +
.../expressions/spark-4.1/struct.md.txt | 1 +
_sources/user-guide/0.17/installation.md.txt | 1 +
.../latest/compatibility/operators.md.txt | 38 ++++++++++++++++++++--
_sources/user-guide/latest/expressions.md.txt | 17 ++++++----
_sources/user-guide/latest/operators.md.txt | 8 ++---
contributor-guide/roadmap.html | 13 +++++---
searchindex.js | 2 +-
user-guide/latest/compatibility/operators.html | 37 +++++++++++++++++++--
user-guide/latest/expressions.html | 17 ++++++----
user-guide/latest/operators.html | 4 +--
42 files changed, 156 insertions(+), 38 deletions(-)
diff --git a/_sources/contributor-guide/roadmap.md.txt b/_sources/contributor-guide/roadmap.md.txt
index bae4ddba58..b8ae8a310f 100644
--- a/_sources/contributor-guide/roadmap.md.txt
+++ b/_sources/contributor-guide/roadmap.md.txt
@@ -24,15 +24,22 @@ helpful to have a roadmap for some of the major items that require coordination
## Window Expressions
-Native window execution is currently disabled by default due to known correctness issues ([#2721], [#2841]).
-In addition, dedicated window functions such as `rank`, `dense_rank`, `row_number`, `lag`, `lead`, `ntile`,
-`cume_dist`, `percent_rank`, and `nth_value` are not yet implemented and fall back to Spark ([#2705]). The
-goal is to enable windowed aggregates by default ([#4007]) and add the missing dedicated window functions.
-
-[#2705]: https://github.com/apache/datafusion-comet/issues/2705
-[#2721]: https://github.com/apache/datafusion-comet/issues/2721
-[#2841]: https://github.com/apache/datafusion-comet/issues/2841
-[#4007]: https://github.com/apache/datafusion-comet/issues/4007
+Native window execution runs by default (`spark.comet.exec.window.enabled`). The ranking functions (`rank`,
+`dense_rank`, `row_number`, `percent_rank`, `cume_dist`, `ntile`), value functions (`lag`, `lead`, `nth_value`,
+`first_value`, `last_value`), and the `count`, `min`, `max`, `sum`, and `avg` aggregates are accelerated.
+Remaining work is to close the gaps that still fall back to Spark: statistical aggregates (`stddev`, `variance`,
+`corr`, `covar`) and `collect_list` / `collect_set` as window functions ([#4766]), `GROUPS` frames ([#4836]), `RANGE` frames with explicit date or
+decimal offsets ([#4834]), `first_value` / `last_value` on `RANGE` frames with a literal offset ([#4835]),
+non-literal `lag` / `lead` default values ([#4268]), and `WindowGroupLimitExec` ([#4837]). See the
+[window function compatibility guide](../user-guide/latest/compatibility/operators.md) for the complete list of
+supported functions, frames, and fallback cases.
+
+[#4268]: https://github.com/apache/datafusion-comet/issues/4268
+[#4766]: https://github.com/apache/datafusion-comet/issues/4766
+[#4834]: https://github.com/apache/datafusion-comet/issues/4834
+[#4835]: https://github.com/apache/datafusion-comet/issues/4835
+[#4836]: https://github.com/apache/datafusion-comet/issues/4836
+[#4837]: https://github.com/apache/datafusion-comet/issues/4837
## Lambda Expressions
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/aggregate.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/aggregate.md.txt
index 7aac7d3ff0..fc133dc04d 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/aggregate.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/aggregate.md.txt
@@ -44,4 +44,5 @@ The following differences from Spark are always present and do not require any a
The following differences from Spark are always present and do not require any additional configuration:
- This function is not deterministic. Results may not match Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/array.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/array.md.txt
index b207cbcbc4..29db8ad4cc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/array.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/array.md.txt
@@ -70,4 +70,5 @@ The following incompatibilities cause `SortArray` to fall back to Spark by defau
The following cases are not supported by Comet:
- Nested arrays with `Struct` or `Null` child values are not supported natively and will fall back to Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/datetime.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/datetime.md.txt
index daae231855..28c05636bc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/datetime.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/datetime.md.txt
@@ -136,4 +136,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- Only `TimestampType` and `DateType` inputs are supported. `TimestampNTZType` is not supported because Comet incorrectly applies timezone conversion to TimestampNTZ values.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/map.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/map.md.txt
index cd26218a31..349be08ae8 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/map.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/map.md.txt
@@ -38,4 +38,5 @@ By default, Comet accelerates `MapFromEntries` using JVM codegen dispatch, which
- `BinaryType` is not supported as a map key in `map_from_entries`
- `BinaryType` is not supported as a map value in `map_from_entries`
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/math.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/math.md.txt
index 8b2aefc327..5f456c9e3f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/math.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/math.md.txt
@@ -38,4 +38,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- The `seed` argument must be a literal value
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/misc.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/misc.md.txt
index 185282dcdf..6ab37a60b4 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/misc.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/misc.md.txt
@@ -50,4 +50,5 @@ The following cases are not supported by Comet:
The following incompatibilities cause `SortOrder` to fall back to Spark by default. Set `spark.comet.expression.SortOrder.allowIncompatible=true` to enable Comet acceleration despite these differences.
- When `spark.comet.exec.strictFloatingPoint=true`, sorting on floating-point types is not 100% compatible with Spark
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/string.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/string.md.txt
index f5b06c6175..cc731b85f1 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/string.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/string.md.txt
@@ -94,4 +94,5 @@ The following differences from Spark are always present and do not require any a
The following incompatibilities cause `StringTranslate` to fall back to Spark by default. Set `spark.comet.expression.StringTranslate.allowIncompatible=true` to enable Comet acceleration despite these differences.
- DataFusion's translate iterates over Unicode graphemes (Spark uses code points) and substitutes U+0000 instead of treating it as a deletion sentinel
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/struct.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/struct.md.txt
index 72db34d875..af5ed3f503 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/struct.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.4/struct.md.txt
@@ -36,4 +36,5 @@ The following incompatibilities cause `StructsToCsv` to fall back to Spark by de
The following cases are not supported by Comet:
- Complex types (arrays, maps, structs) in the schema are not supported
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/aggregate.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/aggregate.md.txt
index 7aac7d3ff0..fc133dc04d 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/aggregate.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/aggregate.md.txt
@@ -44,4 +44,5 @@ The following differences from Spark are always present and do not require any a
The following differences from Spark are always present and do not require any additional configuration:
- This function is not deterministic. Results may not match Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/array.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/array.md.txt
index b207cbcbc4..29db8ad4cc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/array.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/array.md.txt
@@ -70,4 +70,5 @@ The following incompatibilities cause `SortArray` to fall back to Spark by defau
The following cases are not supported by Comet:
- Nested arrays with `Struct` or `Null` child values are not supported natively and will fall back to Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/datetime.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/datetime.md.txt
index daae231855..28c05636bc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/datetime.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/datetime.md.txt
@@ -136,4 +136,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- Only `TimestampType` and `DateType` inputs are supported. `TimestampNTZType` is not supported because Comet incorrectly applies timezone conversion to TimestampNTZ values.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/map.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/map.md.txt
index cd26218a31..349be08ae8 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/map.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/map.md.txt
@@ -38,4 +38,5 @@ By default, Comet accelerates `MapFromEntries` using JVM codegen dispatch, which
- `BinaryType` is not supported as a map key in `map_from_entries`
- `BinaryType` is not supported as a map value in `map_from_entries`
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/math.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/math.md.txt
index 8b2aefc327..5f456c9e3f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/math.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/math.md.txt
@@ -38,4 +38,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- The `seed` argument must be a literal value
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/misc.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/misc.md.txt
index 67541f5551..d786b0aa0f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/misc.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/misc.md.txt
@@ -56,4 +56,5 @@ The following incompatibilities cause `SortOrder` to fall back to Spark by defau
The following cases are not supported by Comet:
- Falls back to Spark when the input type cannot be cast to string.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/string.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/string.md.txt
index f5b06c6175..cc731b85f1 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/string.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/string.md.txt
@@ -94,4 +94,5 @@ The following differences from Spark are always present and do not require any a
The following incompatibilities cause `StringTranslate` to fall back to Spark by default. Set `spark.comet.expression.StringTranslate.allowIncompatible=true` to enable Comet acceleration despite these differences.
- DataFusion's translate iterates over Unicode graphemes (Spark uses code points) and substitutes U+0000 instead of treating it as a deletion sentinel
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/struct.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/struct.md.txt
index 72db34d875..af5ed3f503 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/struct.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-3.5/struct.md.txt
@@ -36,4 +36,5 @@ The following incompatibilities cause `StructsToCsv` to fall back to Spark by de
The following cases are not supported by Comet:
- Complex types (arrays, maps, structs) in the schema are not supported
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/aggregate.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/aggregate.md.txt
index 7aac7d3ff0..fc133dc04d 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/aggregate.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/aggregate.md.txt
@@ -44,4 +44,5 @@ The following differences from Spark are always present and do not require any a
The following differences from Spark are always present and do not require any additional configuration:
- This function is not deterministic. Results may not match Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/array.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/array.md.txt
index b207cbcbc4..29db8ad4cc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/array.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/array.md.txt
@@ -70,4 +70,5 @@ The following incompatibilities cause `SortArray` to fall back to Spark by defau
The following cases are not supported by Comet:
- Nested arrays with `Struct` or `Null` child values are not supported natively and will fall back to Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/datetime.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/datetime.md.txt
index daae231855..28c05636bc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/datetime.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/datetime.md.txt
@@ -136,4 +136,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- Only `TimestampType` and `DateType` inputs are supported. `TimestampNTZType` is not supported because Comet incorrectly applies timezone conversion to TimestampNTZ values.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/map.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/map.md.txt
index 3d872a3a41..1bf4790b49 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/map.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/map.md.txt
@@ -48,4 +48,5 @@ The following incompatibilities cause `MapSort` to fall back to Spark by default
The following cases are not supported by Comet:
- MapSort is unsupported for non-scalar key types (struct, array, map, etc.).
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/math.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/math.md.txt
index 8b2aefc327..5f456c9e3f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/math.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/math.md.txt
@@ -38,4 +38,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- The `seed` argument must be a literal value
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/misc.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/misc.md.txt
index 67541f5551..d786b0aa0f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/misc.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/misc.md.txt
@@ -56,4 +56,5 @@ The following incompatibilities cause `SortOrder` to fall back to Spark by defau
The following cases are not supported by Comet:
- Falls back to Spark when the input type cannot be cast to string.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/string.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/string.md.txt
index f5b06c6175..cc731b85f1 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/string.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/string.md.txt
@@ -94,4 +94,5 @@ The following differences from Spark are always present and do not require any a
The following incompatibilities cause `StringTranslate` to fall back to Spark by default. Set `spark.comet.expression.StringTranslate.allowIncompatible=true` to enable Comet acceleration despite these differences.
- DataFusion's translate iterates over Unicode graphemes (Spark uses code points) and substitutes U+0000 instead of treating it as a deletion sentinel
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/struct.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/struct.md.txt
index 72db34d875..af5ed3f503 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/struct.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.0/struct.md.txt
@@ -36,4 +36,5 @@ The following incompatibilities cause `StructsToCsv` to fall back to Spark by de
The following cases are not supported by Comet:
- Complex types (arrays, maps, structs) in the schema are not supported
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/aggregate.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/aggregate.md.txt
index 7aac7d3ff0..fc133dc04d 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/aggregate.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/aggregate.md.txt
@@ -44,4 +44,5 @@ The following differences from Spark are always present and do not require any a
The following differences from Spark are always present and do not require any additional configuration:
- This function is not deterministic. Results may not match Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/array.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/array.md.txt
index b207cbcbc4..29db8ad4cc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/array.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/array.md.txt
@@ -70,4 +70,5 @@ The following incompatibilities cause `SortArray` to fall back to Spark by defau
The following cases are not supported by Comet:
- Nested arrays with `Struct` or `Null` child values are not supported natively and will fall back to Spark.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/datetime.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/datetime.md.txt
index daae231855..28c05636bc 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/datetime.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/datetime.md.txt
@@ -136,4 +136,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- Only `TimestampType` and `DateType` inputs are supported. `TimestampNTZType` is not supported because Comet incorrectly applies timezone conversion to TimestampNTZ values.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/map.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/map.md.txt
index 3d872a3a41..1bf4790b49 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/map.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/map.md.txt
@@ -48,4 +48,5 @@ The following incompatibilities cause `MapSort` to fall back to Spark by default
The following cases are not supported by Comet:
- MapSort is unsupported for non-scalar key types (struct, array, map, etc.).
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/math.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/math.md.txt
index 8b2aefc327..5f456c9e3f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/math.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/math.md.txt
@@ -38,4 +38,5 @@ The following cases are not supported by Comet:
The following cases are not supported by Comet:
- The `seed` argument must be a literal value
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/misc.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/misc.md.txt
index 67541f5551..d786b0aa0f 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/misc.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/misc.md.txt
@@ -56,4 +56,5 @@ The following incompatibilities cause `SortOrder` to fall back to Spark by defau
The following cases are not supported by Comet:
- Falls back to Spark when the input type cannot be cast to string.
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/string.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/string.md.txt
index f5b06c6175..cc731b85f1 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/string.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/string.md.txt
@@ -94,4 +94,5 @@ The following differences from Spark are always present and do not require any a
The following incompatibilities cause `StringTranslate` to fall back to Spark by default. Set `spark.comet.expression.StringTranslate.allowIncompatible=true` to enable Comet acceleration despite these differences.
- DataFusion's translate iterates over Unicode graphemes (Spark uses code points) and substitutes U+0000 instead of treating it as a deletion sentinel
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/struct.md.txt b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/struct.md.txt
index 72db34d875..af5ed3f503 100644
--- a/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/struct.md.txt
+++ b/_sources/user-guide/0.17/compatibility/expressions/spark-4.1/struct.md.txt
@@ -36,4 +36,5 @@ The following incompatibilities cause `StructsToCsv` to fall back to Spark by de
The following cases are not supported by Comet:
- Complex types (arrays, maps, structs) in the schema are not supported
+
<!--END:EXPR_COMPAT-->
diff --git a/_sources/user-guide/0.17/installation.md.txt b/_sources/user-guide/0.17/installation.md.txt
index 2dd8ecb351..7dc307ddcc 100644
--- a/_sources/user-guide/0.17/installation.md.txt
+++ b/_sources/user-guide/0.17/installation.md.txt
@@ -86,6 +86,7 @@ Here are the direct links for downloading the Comet 0.17.0 jar file.
- [Comet plugin for Spark 4.0 / Scala 2.13](https://repo1.maven.org/maven2/org/apache/datafusion/comet-spark-spark4.0_2.13/0.17.0/comet-spark-spark4.0_2.13-0.17.0.jar)
- [Comet plugin for Spark 4.1 / Scala 2.13](https://repo1.maven.org/maven2/org/apache/datafusion/comet-spark-spark4.1_2.13/0.17.0/comet-spark-spark4.1_2.13-0.17.0.jar)
+
## Building from source
Refer to the [Building from source] guide for instructions from building Comet from source, either from official
diff --git a/_sources/user-guide/latest/compatibility/operators.md.txt b/_sources/user-guide/latest/compatibility/operators.md.txt
index a25d1d1db9..28c0954047 100644
--- a/_sources/user-guide/latest/compatibility/operators.md.txt
+++ b/_sources/user-guide/latest/compatibility/operators.md.txt
@@ -21,8 +21,42 @@ under the License.
## Window Functions
-Comet's support for window functions is incomplete and known to be incorrect. It is disabled by default and
-should not be used in production. The feature will be enabled in a future release. Tracking issue: [#2721](https://github.com/apache/datafusion-comet/issues/2721).
+Comet runs `WindowExec` natively and it is enabled by default (`spark.comet.exec.window.enabled`). A broad set of
+window functions is accelerated, and any shape Comet does not support falls back to Spark rather than producing an
+incorrect result. When any single window expression in a `WindowExec` falls back, the entire operator runs on Spark.
+
+**Accelerated natively:**
+
+- Ranking functions: `row_number`, `rank`, `dense_rank`, `percent_rank`, `cume_dist`, `ntile`.
+- Value functions: `lag`, `lead`, `nth_value`, `first_value` (`first`), `last_value` (`last`). `IGNORE NULLS` is
+ supported.
+- Aggregate window functions: `count`, `min`, `max`, `sum`, `avg`.
+- Frame units `ROWS` and `RANGE`, with `UNBOUNDED PRECEDING` / `UNBOUNDED FOLLOWING`, `CURRENT ROW`, and numeric
+ `PRECEDING` / `FOLLOWING` offsets.
+
+**Falls back to Spark:**
+
+- Aggregate window functions other than the ones listed above, including the statistical aggregates
+ (`stddev`, `stddev_pop`, `stddev_samp`, `var_pop`, `var_samp`, `corr`, `covar_pop`, `covar_samp`). These run
+ natively as plain aggregations but not as window functions
+ ([#4766](https://github.com/apache/datafusion-comet/issues/4766)).
+- `min` / `max` on string, binary, timestamp-without-time-zone, interval, or nested (array / struct) input types,
+ and `sum` / `avg` on year-month or day-time interval input types. Windowed aggregates inherit the same input-type
+ support as the batch aggregates, so these fall back in both contexts.
+- `sum` or `avg` on `DECIMAL` with a sliding (non ever-expanding) frame, because the sliding path would wrap on
+ overflow instead of returning Spark's `NULL` ([#4729](https://github.com/apache/datafusion-comet/issues/4729)).
+- `RANGE` frame with an explicit offset when the `ORDER BY` column is `DATE` or `DECIMAL`
+ ([#4834](https://github.com/apache/datafusion-comet/issues/4834)).
+- `first_value` / `last_value` on a `RANGE` frame with a literal offset
+ ([#4835](https://github.com/apache/datafusion-comet/issues/4835)).
+- `lag` / `lead` with a non-literal default value ([#4268](https://github.com/apache/datafusion-comet/issues/4268)).
+- A `ROWS` offset that is not an integer or long, or a `RANGE` offset that is not numeric.
+- `GROUPS` frames ([#4836](https://github.com/apache/datafusion-comet/issues/4836)). `DISTINCT` aggregates over a
+ window are not supported by Spark either.
+- Any `PARTITION BY` or `ORDER BY` expression that Comet cannot serialize.
+
+`WindowGroupLimitExec` (window-based limit pushdown) is not yet supported and falls back to Spark
+([#4837](https://github.com/apache/datafusion-comet/issues/4837)).
## Round-Robin Partitioning
diff --git a/_sources/user-guide/latest/expressions.md.txt b/_sources/user-guide/latest/expressions.md.txt
index df327b75b5..a18ccf126c 100644
--- a/_sources/user-guide/latest/expressions.md.txt
+++ b/_sources/user-guide/latest/expressions.md.txt
@@ -625,13 +625,16 @@ expression-level). The `outer` variants are wired but marked `Incompatible`; the
## window_funcs
-Window functions run via `CometWindowExec`. Aggregate window functions
-(`count`, `min`, `max`, `sum`, `avg`, `first_value`, `last_value`),
-ranking functions (`row_number`, `rank`, `dense_rank`, `percent_rank`,
-`cume_dist`, `ntile`), and value-shift functions (`lag`, `lead`,
-`nth_value`) are all wired in the window serde and execute natively.
-A handful of frame shapes still fall back — see the per-function notes
-for the exact unsupported cases.
+Window functions run via `CometWindowExec`, which is enabled by default.
+Aggregate window functions (`count`, `min`, `max`, `sum`, `avg`,
+`first_value`, `last_value`), ranking functions (`row_number`, `rank`,
+`dense_rank`, `percent_rank`, `cume_dist`, `ntile`), and value-shift
+functions (`lag`, `lead`, `nth_value`) are all wired in the window serde
+and execute natively. Statistical aggregates such as `stddev`, `var_pop`,
+`corr`, and `covar_pop` run natively as plain aggregations but fall back
+to Spark when used as window functions. A handful of frame shapes also
+fall back. See [window function compatibility](compatibility/operators.md)
+for the full list of supported functions, frames, and fallback cases.
| Function | Status | Notes |
| --- | --- | --- |
diff --git a/_sources/user-guide/latest/operators.md.txt b/_sources/user-guide/latest/operators.md.txt
index 0bdf3ba919..a29ffa1355 100644
--- a/_sources/user-guide/latest/operators.md.txt
+++ b/_sources/user-guide/latest/operators.md.txt
@@ -99,10 +99,10 @@ omitted from the tables below and may be reconsidered based on demand:
## Window
-| Operator | Status | Notes |
-| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `WindowExec` | ⚠️ | Runs natively, but only a subset of window functions is accelerated. The rest fall back. See the [expression reference](expressions.md) (#2721). |
-| `WindowGroupLimitExec` | 🔜 | Window-based limit pushdown falls back today. |
+| Operator | Status | Notes |
+| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `WindowExec` | ⚠️ | Runs natively and is enabled by default. A broad set of window functions is accelerated; unsupported shapes fall back to Spark. See [window function compatibility](compatibility/operators.md). |
+| `WindowGroupLimitExec` | 🔜 | Window-based limit pushdown falls back today ([#4837](https://github.com/apache/datafusion-comet/issues/4837)). |
## Generators and set operations
diff --git a/contributor-guide/roadmap.html b/contributor-guide/roadmap.html
index 3da6101166..7fa5baae7f 100644
--- a/contributor-guide/roadmap.html
+++ b/contributor-guide/roadmap.html
@@ -548,10 +548,15 @@ under the License.
helpful to have a roadmap for some of the major items that require coordination between contributors.</p>
<section id="window-expressions">
<h2>Window Expressions<a class="headerlink" href="#window-expressions" title="Link to this heading">#</a></h2>
-<p>Native window execution is currently disabled by default due to known correctness issues (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a>, <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2841">#2841</a>).
-In addition, dedicated window functions such as <code class="docutils literal notranslate"><span class="pre">rank</span></code>, <code class="docutils literal notranslate"><span class="pre">dense_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">row_number</span></code>, <code class="docutils literal notranslate"><span class="pre">lag</span></code>, <code class="docutils literal notranslate"><span class="pre">lead</span></code>, <code class="docutils litera [...]
-<code class="docutils literal notranslate"><span class="pre">cume_dist</span></code>, <code class="docutils literal notranslate"><span class="pre">percent_rank</span></code>, and <code class="docutils literal notranslate"><span class="pre">nth_value</span></code> are not yet implemented and fall back to Spark (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2705">#2705</a>). The
-goal is to enable windowed aggregates by default (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4007">#4007</a>) and add the missing dedicated window functions.</p>
+<p>Native window execution runs by default (<code class="docutils literal notranslate"><span class="pre">spark.comet.exec.window.enabled</span></code>). The ranking functions (<code class="docutils literal notranslate"><span class="pre">rank</span></code>,
+<code class="docutils literal notranslate"><span class="pre">dense_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">row_number</span></code>, <code class="docutils literal notranslate"><span class="pre">percent_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">cume_dist</span></code>, <code class="docutils literal notranslate"><span class="pre">ntile</span></code>), value functions (<code class="docutils literal notranslate"> [...]
+<code class="docutils literal notranslate"><span class="pre">first_value</span></code>, <code class="docutils literal notranslate"><span class="pre">last_value</span></code>), and the <code class="docutils literal notranslate"><span class="pre">count</span></code>, <code class="docutils literal notranslate"><span class="pre">min</span></code>, <code class="docutils literal notranslate"><span class="pre">max</span></code>, <code class="docutils literal notranslate"><span class="pre">sum</ [...]
+Remaining work is to close the gaps that still fall back to Spark: statistical aggregates (<code class="docutils literal notranslate"><span class="pre">stddev</span></code>, <code class="docutils literal notranslate"><span class="pre">variance</span></code>,
+<code class="docutils literal notranslate"><span class="pre">corr</span></code>, <code class="docutils literal notranslate"><span class="pre">covar</span></code>) and <code class="docutils literal notranslate"><span class="pre">collect_list</span></code> / <code class="docutils literal notranslate"><span class="pre">collect_set</span></code> as window functions (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4766">#4766</a>), <code class="docutils l [...]
+decimal offsets (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4834">#4834</a>), <code class="docutils literal notranslate"><span class="pre">first_value</span></code> / <code class="docutils literal notranslate"><span class="pre">last_value</span></code> on <code class="docutils literal notranslate"><span class="pre">RANGE</span></code> frames with a literal offset (<a class="reference external" href="https://github.com/apache/datafusion-comet/iss [...]
+non-literal <code class="docutils literal notranslate"><span class="pre">lag</span></code> / <code class="docutils literal notranslate"><span class="pre">lead</span></code> default values (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4268">#4268</a>), and <code class="docutils literal notranslate"><span class="pre">WindowGroupLimitExec</span></code> (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4837">#4837< [...]
+<a class="reference internal" href="../user-guide/latest/compatibility/operators.html"><span class="std std-doc">window function compatibility guide</span></a> for the complete list of
+supported functions, frames, and fallback cases.</p>
</section>
<section id="lambda-expressions">
<h2>Lambda Expressions<a class="headerlink" href="#lambda-expressions" title="Link to this heading">#</a></h2>
diff --git a/searchindex.js b/searchindex.js
index 787d2c6cc3..83520772f4 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!": [[50, "id1"]], "%": [[48, "id1"]], "&": [[38, "id1"]], "*": [[48, "id2"]], "+": [[48, "id3"]], "-": [[48, "id4"]], "/": [[48, "id5"]], "1. Format Your Code": [[35, "format-your-code"]], "1. Install Comet": [[56, "install-comet"], [65, "install-comet"]], "1. Native Operators (nativeExecs map)": [[24, "native-operators-nativeexecs-map"]], "2. Build and Verify": [[35, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[56, "clone-iceberg-and-apply- [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!": [[50, "id1"]], "%": [[48, "id1"]], "&": [[38, "id1"]], "*": [[48, "id2"]], "+": [[48, "id3"]], "-": [[48, "id4"]], "/": [[48, "id5"]], "1. Format Your Code": [[35, "format-your-code"]], "1. Install Comet": [[56, "install-comet"], [65, "install-comet"]], "1. Native Operators (nativeExecs map)": [[24, "native-operators-nativeexecs-map"]], "2. Build and Verify": [[35, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[56, "clone-iceberg-and-apply- [...]
\ No newline at end of file
diff --git a/user-guide/latest/compatibility/operators.html b/user-guide/latest/compatibility/operators.html
index b7940206c1..23796c0db3 100644
--- a/user-guide/latest/compatibility/operators.html
+++ b/user-guide/latest/compatibility/operators.html
@@ -570,8 +570,41 @@ under the License.
<h1>Operator Compatibility<a class="headerlink" href="#operator-compatibility" title="Link to this heading">#</a></h1>
<section id="window-functions">
<h2>Window Functions<a class="headerlink" href="#window-functions" title="Link to this heading">#</a></h2>
-<p>Comet’s support for window functions is incomplete and known to be incorrect. It is disabled by default and
-should not be used in production. The feature will be enabled in a future release. Tracking issue: <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a>.</p>
+<p>Comet runs <code class="docutils literal notranslate"><span class="pre">WindowExec</span></code> natively and it is enabled by default (<code class="docutils literal notranslate"><span class="pre">spark.comet.exec.window.enabled</span></code>). A broad set of
+window functions is accelerated, and any shape Comet does not support falls back to Spark rather than producing an
+incorrect result. When any single window expression in a <code class="docutils literal notranslate"><span class="pre">WindowExec</span></code> falls back, the entire operator runs on Spark.</p>
+<p><strong>Accelerated natively:</strong></p>
+<ul class="simple">
+<li><p>Ranking functions: <code class="docutils literal notranslate"><span class="pre">row_number</span></code>, <code class="docutils literal notranslate"><span class="pre">rank</span></code>, <code class="docutils literal notranslate"><span class="pre">dense_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">percent_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">cume_dist</span></code>, <code class="docutils literal notran [...]
+<li><p>Value functions: <code class="docutils literal notranslate"><span class="pre">lag</span></code>, <code class="docutils literal notranslate"><span class="pre">lead</span></code>, <code class="docutils literal notranslate"><span class="pre">nth_value</span></code>, <code class="docutils literal notranslate"><span class="pre">first_value</span></code> (<code class="docutils literal notranslate"><span class="pre">first</span></code>), <code class="docutils literal notranslate"><span c [...]
+supported.</p></li>
+<li><p>Aggregate window functions: <code class="docutils literal notranslate"><span class="pre">count</span></code>, <code class="docutils literal notranslate"><span class="pre">min</span></code>, <code class="docutils literal notranslate"><span class="pre">max</span></code>, <code class="docutils literal notranslate"><span class="pre">sum</span></code>, <code class="docutils literal notranslate"><span class="pre">avg</span></code>.</p></li>
+<li><p>Frame units <code class="docutils literal notranslate"><span class="pre">ROWS</span></code> and <code class="docutils literal notranslate"><span class="pre">RANGE</span></code>, with <code class="docutils literal notranslate"><span class="pre">UNBOUNDED</span> <span class="pre">PRECEDING</span></code> / <code class="docutils literal notranslate"><span class="pre">UNBOUNDED</span> <span class="pre">FOLLOWING</span></code>, <code class="docutils literal notranslate"><span class="pre [...]
+<code class="docutils literal notranslate"><span class="pre">PRECEDING</span></code> / <code class="docutils literal notranslate"><span class="pre">FOLLOWING</span></code> offsets.</p></li>
+</ul>
+<p><strong>Falls back to Spark:</strong></p>
+<ul class="simple">
+<li><p>Aggregate window functions other than the ones listed above, including the statistical aggregates
+(<code class="docutils literal notranslate"><span class="pre">stddev</span></code>, <code class="docutils literal notranslate"><span class="pre">stddev_pop</span></code>, <code class="docutils literal notranslate"><span class="pre">stddev_samp</span></code>, <code class="docutils literal notranslate"><span class="pre">var_pop</span></code>, <code class="docutils literal notranslate"><span class="pre">var_samp</span></code>, <code class="docutils literal notranslate"><span class="pre">cor [...]
+natively as plain aggregations but not as window functions
+(<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4766">#4766</a>).</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">min</span></code> / <code class="docutils literal notranslate"><span class="pre">max</span></code> on string, binary, timestamp-without-time-zone, interval, or nested (array / struct) input types,
+and <code class="docutils literal notranslate"><span class="pre">sum</span></code> / <code class="docutils literal notranslate"><span class="pre">avg</span></code> on year-month or day-time interval input types. Windowed aggregates inherit the same input-type
+support as the batch aggregates, so these fall back in both contexts.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">sum</span></code> or <code class="docutils literal notranslate"><span class="pre">avg</span></code> on <code class="docutils literal notranslate"><span class="pre">DECIMAL</span></code> with a sliding (non ever-expanding) frame, because the sliding path would wrap on
+overflow instead of returning Spark’s <code class="docutils literal notranslate"><span class="pre">NULL</span></code> (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4729">#4729</a>).</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">RANGE</span></code> frame with an explicit offset when the <code class="docutils literal notranslate"><span class="pre">ORDER</span> <span class="pre">BY</span></code> column is <code class="docutils literal notranslate"><span class="pre">DATE</span></code> or <code class="docutils literal notranslate"><span class="pre">DECIMAL</span></code>
+(<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4834">#4834</a>).</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">first_value</span></code> / <code class="docutils literal notranslate"><span class="pre">last_value</span></code> on a <code class="docutils literal notranslate"><span class="pre">RANGE</span></code> frame with a literal offset
+(<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4835">#4835</a>).</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">lag</span></code> / <code class="docutils literal notranslate"><span class="pre">lead</span></code> with a non-literal default value (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4268">#4268</a>).</p></li>
+<li><p>A <code class="docutils literal notranslate"><span class="pre">ROWS</span></code> offset that is not an integer or long, or a <code class="docutils literal notranslate"><span class="pre">RANGE</span></code> offset that is not numeric.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">GROUPS</span></code> frames (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4836">#4836</a>). <code class="docutils literal notranslate"><span class="pre">DISTINCT</span></code> aggregates over a
+window are not supported by Spark either.</p></li>
+<li><p>Any <code class="docutils literal notranslate"><span class="pre">PARTITION</span> <span class="pre">BY</span></code> or <code class="docutils literal notranslate"><span class="pre">ORDER</span> <span class="pre">BY</span></code> expression that Comet cannot serialize.</p></li>
+</ul>
+<p><code class="docutils literal notranslate"><span class="pre">WindowGroupLimitExec</span></code> (window-based limit pushdown) is not yet supported and falls back to Spark
+(<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4837">#4837</a>).</p>
</section>
<section id="round-robin-partitioning">
<h2>Round-Robin Partitioning<a class="headerlink" href="#round-robin-partitioning" title="Link to this heading">#</a></h2>
diff --git a/user-guide/latest/expressions.html b/user-guide/latest/expressions.html
index 72ed3767ea..02da96b24a 100644
--- a/user-guide/latest/expressions.html
+++ b/user-guide/latest/expressions.html
@@ -2590,13 +2590,16 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
<hr class="docutils" />
<section id="window-funcs">
<h2>window_funcs<a class="headerlink" href="#window-funcs" title="Link to this heading">#</a></h2>
-<p>Window functions run via <code class="docutils literal notranslate"><span class="pre">CometWindowExec</span></code>. Aggregate window functions
-(<code class="docutils literal notranslate"><span class="pre">count</span></code>, <code class="docutils literal notranslate"><span class="pre">min</span></code>, <code class="docutils literal notranslate"><span class="pre">max</span></code>, <code class="docutils literal notranslate"><span class="pre">sum</span></code>, <code class="docutils literal notranslate"><span class="pre">avg</span></code>, <code class="docutils literal notranslate"><span class="pre">first_value</span></code>, < [...]
-ranking functions (<code class="docutils literal notranslate"><span class="pre">row_number</span></code>, <code class="docutils literal notranslate"><span class="pre">rank</span></code>, <code class="docutils literal notranslate"><span class="pre">dense_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">percent_rank</span></code>,
-<code class="docutils literal notranslate"><span class="pre">cume_dist</span></code>, <code class="docutils literal notranslate"><span class="pre">ntile</span></code>), and value-shift functions (<code class="docutils literal notranslate"><span class="pre">lag</span></code>, <code class="docutils literal notranslate"><span class="pre">lead</span></code>,
-<code class="docutils literal notranslate"><span class="pre">nth_value</span></code>) are all wired in the window serde and execute natively.
-A handful of frame shapes still fall back — see the per-function notes
-for the exact unsupported cases.</p>
+<p>Window functions run via <code class="docutils literal notranslate"><span class="pre">CometWindowExec</span></code>, which is enabled by default.
+Aggregate window functions (<code class="docutils literal notranslate"><span class="pre">count</span></code>, <code class="docutils literal notranslate"><span class="pre">min</span></code>, <code class="docutils literal notranslate"><span class="pre">max</span></code>, <code class="docutils literal notranslate"><span class="pre">sum</span></code>, <code class="docutils literal notranslate"><span class="pre">avg</span></code>,
+<code class="docutils literal notranslate"><span class="pre">first_value</span></code>, <code class="docutils literal notranslate"><span class="pre">last_value</span></code>), ranking functions (<code class="docutils literal notranslate"><span class="pre">row_number</span></code>, <code class="docutils literal notranslate"><span class="pre">rank</span></code>,
+<code class="docutils literal notranslate"><span class="pre">dense_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">percent_rank</span></code>, <code class="docutils literal notranslate"><span class="pre">cume_dist</span></code>, <code class="docutils literal notranslate"><span class="pre">ntile</span></code>), and value-shift
+functions (<code class="docutils literal notranslate"><span class="pre">lag</span></code>, <code class="docutils literal notranslate"><span class="pre">lead</span></code>, <code class="docutils literal notranslate"><span class="pre">nth_value</span></code>) are all wired in the window serde
+and execute natively. Statistical aggregates such as <code class="docutils literal notranslate"><span class="pre">stddev</span></code>, <code class="docutils literal notranslate"><span class="pre">var_pop</span></code>,
+<code class="docutils literal notranslate"><span class="pre">corr</span></code>, and <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code> run natively as plain aggregations but fall back
+to Spark when used as window functions. A handful of frame shapes also
+fall back. See <a class="reference internal" href="compatibility/operators.html"><span class="std std-doc">window function compatibility</span></a>
+for the full list of supported functions, frames, and fallback cases.</p>
<div class="pst-scrollable-table-container"><table class="table">
<thead>
<tr class="row-odd"><th class="head"><p>Function</p></th>
diff --git a/user-guide/latest/operators.html b/user-guide/latest/operators.html
index e1fb455d38..69f2982f97 100644
--- a/user-guide/latest/operators.html
+++ b/user-guide/latest/operators.html
@@ -785,11 +785,11 @@ omitted from the tables below and may be reconsidered based on demand:</p>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">WindowExec</span></code></p></td>
<td><p>⚠️</p></td>
-<td><p>Runs natively, but only a subset of window functions is accelerated. The rest fall back. See the <a class="reference internal" href="expressions.html"><span class="std std-doc">expression reference</span></a> (#2721).</p></td>
+<td><p>Runs natively and is enabled by default. A broad set of window functions is accelerated; unsupported shapes fall back to Spark. See <a class="reference internal" href="compatibility/operators.html"><span class="std std-doc">window function compatibility</span></a>.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">WindowGroupLimitExec</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window-based limit pushdown falls back today.</p></td>
+<td><p>Window-based limit pushdown falls back today (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4837">#4837</a>).</p></td>
</tr>
</tbody>
</table>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org