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/06/03 18:57:11 UTC
(datafusion-comet) branch asf-site updated: Publish built docs triggered by eff0460a62100a385d0253947deba67d77729554
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 3963b9de3f Publish built docs triggered by eff0460a62100a385d0253947deba67d77729554
3963b9de3f is described below
commit 3963b9de3fdd62e49213824ee364b3c03dc998ed
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Wed Jun 3 18:57:07 2026 +0000
Publish built docs triggered by eff0460a62100a385d0253947deba67d77729554
---
_sources/user-guide/latest/expressions.md.txt | 667 +++++++++++++-------------
searchindex.js | 2 +-
user-guide/latest/expressions.html | 174 +++----
3 files changed, 424 insertions(+), 419 deletions(-)
diff --git a/_sources/user-guide/latest/expressions.md.txt b/_sources/user-guide/latest/expressions.md.txt
index 05db6fe6a3..3627766445 100644
--- a/_sources/user-guide/latest/expressions.md.txt
+++ b/_sources/user-guide/latest/expressions.md.txt
@@ -24,9 +24,12 @@ expression. Comet accelerates expressions either with a native (Rust) implementa
dispatching to a Spark-compatible codegen path. When an expression is not supported, Comet
transparently falls back to Spark for that part of the plan; results are unaffected.
-Expressions marked ✅ Supported are enabled by default. Expressions marked ⚠️ Supported
-(caveats) include cases that are known to diverge from Spark; those cases fall back to Spark
-by default and must be opted into per expression with
+Expressions marked ✅ Supported are enabled by default and produce Spark-compatible results.
+Expressions marked ⚠️ Incorrect by default run natively by default but can return results that
+differ from Spark on some inputs; see the linked detail on each affected row.
+
+Some ✅ Supported expressions have specific incompatible cases that fall back to Spark by
+default. Those cases must be opted into per expression with
`spark.comet.expression.EXPRNAME.allowIncompatible=true` (where `EXPRNAME` is the Spark
expression class name, for example `Cast`). There is no global opt-in.
@@ -64,66 +67,66 @@ The tables below list every Spark built-in expression with its current status.
## agg_funcs
-| Function | Status | Notes |
-| ----------------------- | ------ | ---------------------------------------------------------------- |
-| `any` | ✅ | |
-| `any_value` | ✅ | |
-| `approx_count_distinct` | 🔜 | tracking #4098 |
-| `array_agg` | 🔜 | Array aggregate (related to `collect_list`, #2524) |
-| `avg` | ✅ | Interval types fall back |
-| `bit_and` | ✅ | |
-| `bit_or` | ✅ | |
-| `bit_xor` | ✅ | |
-| `bool_and` | ✅ | |
-| `bool_or` | ✅ | |
-| `collect_list` | 🔜 | [#2524](https://github.com/apache/datafusion-comet/issues/2524) |
-| `collect_set` | ✅ | |
-| `corr` | ✅ | |
-| `count` | ✅ | |
-| `count_if` | ✅ | |
-| `covar_pop` | ✅ | |
-| `covar_samp` | ✅ | |
-| `every` | ✅ | |
-| `first` | ✅ | |
-| `first_value` | ✅ | |
-| `grouping` | 🔜 | Grouping indicator for ROLLUP/CUBE/GROUPING SETS |
-| `grouping_id` | 🔜 | Grouping indicator for ROLLUP/CUBE/GROUPING SETS |
-| `kurtosis` | 🔜 | tracking #4098 |
-| `last` | ✅ | |
-| `last_value` | ✅ | |
-| `listagg` | 🔜 | String aggregation |
-| `max` | ✅ | |
-| `max_by` | 🔜 | [#3841](https://github.com/apache/datafusion-comet/issues/3841) |
-| `mean` | ✅ | |
-| `median` | 🔜 | tracking #4098 |
-| `min` | ✅ | |
-| `min_by` | 🔜 | [#3841](https://github.com/apache/datafusion-comet/issues/3841) |
-| `mode` | 🔜 | [#3970](https://github.com/apache/datafusion-comet/issues/3970) |
-| `percentile` | 🔜 | #4542 |
-| `percentile_cont` | 🔜 | Percentile aggregate |
-| `percentile_disc` | 🔜 | Percentile aggregate |
-| `regr_avgx` | ✅ | Native: Spark rewrites to `Average` (tests in #4551) |
-| `regr_avgy` | ✅ | Native: Spark rewrites to `Average` (tests in #4551) |
-| `regr_count` | ✅ | Native: Spark rewrites to `Count` (tests in #4551) |
-| `regr_intercept` | 🔜 | Falls back; can reuse `covar_pop`/`var_pop` accumulators (#4552) |
-| `regr_r2` | 🔜 | Falls back; can reuse the `corr` accumulator (#4552) |
-| `regr_slope` | 🔜 | Falls back; can reuse `covar_pop`/`var_pop` accumulators (#4552) |
-| `regr_sxx` | 🔜 | Falls back; can reuse `var_pop` accumulator (#4552) |
-| `regr_sxy` | 🔜 | Falls back; can reuse `covar_pop` accumulator (#4552) |
-| `regr_syy` | 🔜 | Falls back; can reuse `var_pop` accumulator (#4552) |
-| `skewness` | 🔜 | tracking #4098 |
-| `some` | ✅ | |
-| `std` | ✅ | |
-| `stddev` | ✅ | |
-| `stddev_pop` | ✅ | |
-| `stddev_samp` | ✅ | |
-| `string_agg` | 🔜 | String aggregation (alias of `listagg`) |
-| `sum` | ✅ | |
-| `try_avg` | 🔜 | tracking #4098 |
-| `try_sum` | 🔜 | tracking #4098 |
-| `var_pop` | ✅ | |
-| `var_samp` | ✅ | |
-| `variance` | ✅ | |
+| Function | Status | Notes |
+| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
+| `any` | ✅ | |
+| `any_value` | ✅ | |
+| `approx_count_distinct` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `array_agg` | 🔜 | Array aggregate (related to `collect_list`, [#2524](https://github.com/apache/datafusion-comet/issues/2524)) |
+| `avg` | ✅ | Interval types fall back |
+| `bit_and` | ✅ | |
+| `bit_or` | ✅ | |
+| `bit_xor` | ✅ | |
+| `bool_and` | ✅ | |
+| `bool_or` | ✅ | |
+| `collect_list` | 🔜 | [#2524](https://github.com/apache/datafusion-comet/issues/2524) |
+| `collect_set` | ✅ | |
+| `corr` | ✅ | |
+| `count` | ✅ | |
+| `count_if` | ✅ | |
+| `covar_pop` | ✅ | |
+| `covar_samp` | ✅ | |
+| `every` | ✅ | |
+| `first` | ✅ | |
+| `first_value` | ✅ | |
+| `grouping` | 🔜 | Grouping indicator for ROLLUP/CUBE/GROUPING SETS |
+| `grouping_id` | 🔜 | Grouping indicator for ROLLUP/CUBE/GROUPING SETS |
+| `kurtosis` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `last` | ✅ | |
+| `last_value` | ✅ | |
+| `listagg` | 🔜 | String aggregation |
+| `max` | ✅ | |
+| `max_by` | 🔜 | [#3841](https://github.com/apache/datafusion-comet/issues/3841) |
+| `mean` | ✅ | |
+| `median` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `min` | ✅ | |
+| `min_by` | 🔜 | [#3841](https://github.com/apache/datafusion-comet/issues/3841) |
+| `mode` | 🔜 | [#3970](https://github.com/apache/datafusion-comet/issues/3970) |
+| `percentile` | 🔜 | [#4542](https://github.com/apache/datafusion-comet/issues/4542) |
+| `percentile_cont` | 🔜 | Percentile aggregate |
+| `percentile_disc` | 🔜 | Percentile aggregate |
+| `regr_avgx` | ✅ | Native: Spark rewrites to `Average` (tests in [#4551](https://github.com/apache/datafusion-comet/issues/4551)) |
+| `regr_avgy` | ✅ | Native: Spark rewrites to `Average` (tests in [#4551](https://github.com/apache/datafusion-comet/issues/4551)) |
+| `regr_count` | ✅ | Native: Spark rewrites to `Count` (tests in [#4551](https://github.com/apache/datafusion-comet/issues/4551)) |
+| `regr_intercept` | 🔜 | Falls back; can reuse `covar_pop`/`var_pop` accumulators ([#4552](https://github.com/apache/datafusion-comet/issues/4552)) |
+| `regr_r2` | 🔜 | Falls back; can reuse the `corr` accumulator ([#4552](https://github.com/apache/datafusion-comet/issues/4552)) |
+| `regr_slope` | 🔜 | Falls back; can reuse `covar_pop`/`var_pop` accumulators ([#4552](https://github.com/apache/datafusion-comet/issues/4552)) |
+| `regr_sxx` | 🔜 | Falls back; can reuse `var_pop` accumulator ([#4552](https://github.com/apache/datafusion-comet/issues/4552)) |
+| `regr_sxy` | 🔜 | Falls back; can reuse `covar_pop` accumulator ([#4552](https://github.com/apache/datafusion-comet/issues/4552)) |
+| `regr_syy` | 🔜 | Falls back; can reuse `var_pop` accumulator ([#4552](https://github.com/apache/datafusion-comet/issues/4552)) |
+| `skewness` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `some` | ✅ | |
+| `std` | ✅ | |
+| `stddev` | ✅ | |
+| `stddev_pop` | ✅ | |
+| `stddev_samp` | ✅ | |
+| `string_agg` | 🔜 | String aggregation (alias of `listagg`) |
+| `sum` | ✅ | |
+| `try_avg` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `try_sum` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `var_pop` | ✅ | |
+| `var_samp` | ✅ | |
+| `variance` | ✅ | |
---
@@ -152,9 +155,9 @@ The tables below list every Spark built-in expression with its current status.
| `element_at` | ✅ | MapType input falls back |
| `flatten` | ✅ | Binary/struct/map elements fall back |
| `get` | ✅ | |
-| `sequence` | 🔜 | #4538 |
+| `sequence` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
| `shuffle` | 🔜 | Random array shuffle |
-| `slice` | ✅ | Native (#4149) |
+| `slice` | ✅ | Native ([#4149](https://github.com/apache/datafusion-comet/issues/4149)) |
| `sort_array` | ✅ | Nested struct/null arrays fall back |
---
@@ -192,18 +195,18 @@ The tables below list every Spark built-in expression with its current status.
## conditional_funcs
-| Function | Status | Notes |
-| ------------ | ------ | --------------------------------- |
-| `coalesce` | ✅ | |
-| `if` | ✅ | |
-| `ifnull` | ✅ | |
-| `nanvl` | 🔜 | #4538 |
-| `nullif` | ✅ | |
-| `nullifzero` | ✅ | Lowers to `if`/`=` (Spark 4.0+) |
-| `nvl` | ✅ | |
-| `nvl2` | ✅ | |
-| `when` | ✅ | |
-| `zeroifnull` | ✅ | Lowers to `coalesce` (Spark 4.0+) |
+| Function | Status | Notes |
+| ------------ | ------ | --------------------------------------------------------------- |
+| `coalesce` | ✅ | |
+| `if` | ✅ | |
+| `ifnull` | ✅ | |
+| `nanvl` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `nullif` | ✅ | |
+| `nullifzero` | ✅ | Lowers to `if`/`=` (Spark 4.0+) |
+| `nvl` | ✅ | |
+| `nvl2` | ✅ | |
+| `when` | ✅ | |
+| `zeroifnull` | ✅ | Lowers to `coalesce` (Spark 4.0+) |
---
@@ -219,81 +222,81 @@ The type-name conversion functions (`bigint`, `binary`, `boolean`, `date`, `deci
## datetime_funcs
-| Function | Status | Notes |
-| --------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
-| `add_months` | ✅ | |
-| `convert_timezone` | ✅ | |
-| `curdate` | ✅ | Constant-folded to a literal (alias of `current_date`) |
-| `current_date` | ✅ | Constant-folded to a literal before Comet sees the plan |
-| `current_time` | 🔜 | Blocked on Spark 4.1 TIME type support (#4288) |
-| `current_timestamp` | ✅ | Constant-folded to a literal before Comet sees the plan |
-| `current_timezone` | ✅ | |
-| `date_add` | ✅ | |
-| `date_diff` | ✅ | |
-| `date_format` | ✅ | |
-| `date_from_unix_date` | ✅ | |
-| `date_part` | ✅ | |
-| `date_sub` | ✅ | |
-| `date_trunc` | ✅ | |
-| `dateadd` | ✅ | |
-| `datediff` | ✅ | |
-| `datepart` | ✅ | |
-| `day` | ✅ | |
-| `dayname` | 🔜 | #4544 |
-| `dayofmonth` | ✅ | |
-| `dayofweek` | ✅ | |
-| `dayofyear` | ✅ | |
-| `extract` | ✅ | |
-| `from_unixtime` | ✅ | |
-| `from_utc_timestamp` | ✅ | Legacy zone forms fall back (Incompatible) ([details](compatibility/expressions/datetime.md)) |
-| `hour` | ✅ | |
-| `last_day` | ✅ | |
-| `localtimestamp` | ✅ | |
-| `make_date` | ✅ | |
-| `make_dt_interval` | 🔜 | #4541 |
-| `make_interval` | 🔜 | Produces legacy CalendarInterval; tracked by #4540 |
-| `make_time` | 🔜 | Spark 4.1 TIME type; tracked by #4288 |
-| `make_timestamp` | ✅ | |
-| `make_timestamp_ltz` | ✅ | 2-arg TIME form falls back |
-| `make_timestamp_ntz` | ✅ | 2-arg TIME form falls back |
-| `make_ym_interval` | 🔜 | #4541 |
-| `minute` | ✅ | |
-| `month` | ✅ | |
-| `monthname` | 🔜 | #4544 |
-| `months_between` | ✅ | |
-| `next_day` | ✅ | |
-| `now` | ✅ | Constant-folded to a literal (alias of `current_timestamp`) |
-| `quarter` | ✅ | |
-| `second` | ✅ | |
-| `session_window` | 🔜 | Time-window grouping; tracked by #4553 |
-| `time_diff` | 🔜 | Spark 4.1 TIME type; tracked by #4288 |
-| `time_trunc` | 🔜 | Spark 4.1 TIME type; tracked by #4288 |
-| `timestamp_micros` | ✅ | |
-| `timestamp_millis` | ✅ | |
-| `timestamp_seconds` | ✅ | |
-| `to_date` | ✅ | Rewrites to `Cast` (or `Cast(GetTimestamp)` with a format) before Comet sees the plan |
-| `to_time` | 🔜 | Spark 4.1 TIME type; tracked by #4288 |
-| `to_timestamp` | ✅ | Rewrites to `Cast` (or `GetTimestamp` with a format) before Comet sees the plan |
-| `to_timestamp_ltz` | ✅ | Rewrites to `to_timestamp` (`TimestampType`) |
-| `to_timestamp_ntz` | ✅ | Rewrites to `to_timestamp` (`TimestampNTZType`) |
-| `to_unix_timestamp` | ✅ | |
-| `to_utc_timestamp` | ✅ | Legacy zone forms fall back (Incompatible) ([details](compatibility/expressions/datetime.md)) |
-| `trunc` | ✅ | |
-| `try_make_interval` | 🔜 | Produces legacy CalendarInterval; tracked by #4540 |
-| `try_make_timestamp` | ⚠️ | Returns a wrong value instead of NULL for invalid inputs ([#4554](https://github.com/apache/datafusion-comet/issues/4554)) |
-| `try_to_date` | 🔜 | Rewrites to `Cast`/`GetTimestamp` but currently falls back; tracked by #4556 |
-| `try_to_time` | 🔜 | Spark 4.1 TIME type; tracked by #4288 |
-| `try_to_timestamp` | 🔜 | Rewrites to `Cast`/`GetTimestamp` but currently falls back; tracked by #4556 |
-| `unix_date` | ✅ | |
-| `unix_micros` | ✅ | |
-| `unix_millis` | ✅ | |
-| `unix_seconds` | ✅ | |
-| `unix_timestamp` | ✅ | |
-| `weekday` | ✅ | |
-| `weekofyear` | ✅ | |
-| `window` | 🔜 | Time-window grouping; tracked by #4553 |
-| `window_time` | 🔜 | Time-window grouping; tracked by #4553 |
-| `year` | ✅ | |
+| Function | Status | Notes |
+| --------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------- |
+| `add_months` | ✅ | |
+| `convert_timezone` | ✅ | |
+| `curdate` | ✅ | Constant-folded to a literal (alias of `current_date`) |
+| `current_date` | ✅ | Constant-folded to a literal before Comet sees the plan |
+| `current_time` | 🔜 | Blocked on Spark 4.1 TIME type support ([#4288](https://github.com/apache/datafusion-comet/issues/4288)) |
+| `current_timestamp` | ✅ | Constant-folded to a literal before Comet sees the plan |
+| `current_timezone` | ✅ | |
+| `date_add` | ✅ | |
+| `date_diff` | ✅ | |
+| `date_format` | ✅ | |
+| `date_from_unix_date` | ✅ | |
+| `date_part` | ✅ | |
+| `date_sub` | ✅ | |
+| `date_trunc` | ✅ | |
+| `dateadd` | ✅ | |
+| `datediff` | ✅ | |
+| `datepart` | ✅ | |
+| `day` | ✅ | |
+| `dayname` | 🔜 | [#4544](https://github.com/apache/datafusion-comet/issues/4544) |
+| `dayofmonth` | ✅ | |
+| `dayofweek` | ✅ | |
+| `dayofyear` | ✅ | |
+| `extract` | ✅ | |
+| `from_unixtime` | ✅ | |
+| `from_utc_timestamp` | ✅ | Legacy zone forms fall back (Incompatible) ([details](compatibility/expressions/datetime.md)) |
+| `hour` | ✅ | |
+| `last_day` | ✅ | |
+| `localtimestamp` | ✅ | |
+| `make_date` | ✅ | |
+| `make_dt_interval` | 🔜 | [#4541](https://github.com/apache/datafusion-comet/issues/4541) |
+| `make_interval` | 🔜 | Produces legacy CalendarInterval; tracked by [#4540](https://github.com/apache/datafusion-comet/issues/4540) |
+| `make_time` | 🔜 | Spark 4.1 TIME type; tracked by [#4288](https://github.com/apache/datafusion-comet/issues/4288) |
+| `make_timestamp` | ✅ | |
+| `make_timestamp_ltz` | ✅ | 2-arg TIME form falls back |
+| `make_timestamp_ntz` | ✅ | 2-arg TIME form falls back |
+| `make_ym_interval` | 🔜 | [#4541](https://github.com/apache/datafusion-comet/issues/4541) |
+| `minute` | ✅ | |
+| `month` | ✅ | |
+| `monthname` | 🔜 | [#4544](https://github.com/apache/datafusion-comet/issues/4544) |
+| `months_between` | ✅ | |
+| `next_day` | ✅ | |
+| `now` | ✅ | Constant-folded to a literal (alias of `current_timestamp`) |
+| `quarter` | ✅ | |
+| `second` | ✅ | |
+| `session_window` | 🔜 | Time-window grouping; tracked by [#4553](https://github.com/apache/datafusion-comet/issues/4553) |
+| `time_diff` | 🔜 | Spark 4.1 TIME type; tracked by [#4288](https://github.com/apache/datafusion-comet/issues/4288) |
+| `time_trunc` | 🔜 | Spark 4.1 TIME type; tracked by [#4288](https://github.com/apache/datafusion-comet/issues/4288) |
+| `timestamp_micros` | ✅ | |
+| `timestamp_millis` | ✅ | |
+| `timestamp_seconds` | ✅ | |
+| `to_date` | ✅ | Rewrites to `Cast` (or `Cast(GetTimestamp)` with a format) before Comet sees the plan |
+| `to_time` | 🔜 | Spark 4.1 TIME type; tracked by [#4288](https://github.com/apache/datafusion-comet/issues/4288) |
+| `to_timestamp` | ✅ | Rewrites to `Cast` (or `GetTimestamp` with a format) before Comet sees the plan |
+| `to_timestamp_ltz` | ✅ | Rewrites to `to_timestamp` (`TimestampType`) |
+| `to_timestamp_ntz` | ✅ | Rewrites to `to_timestamp` (`TimestampNTZType`) |
+| `to_unix_timestamp` | ✅ | |
+| `to_utc_timestamp` | ✅ | Legacy zone forms fall back (Incompatible) ([details](compatibility/expressions/datetime.md)) |
+| `trunc` | ✅ | |
+| `try_make_interval` | 🔜 | Produces legacy CalendarInterval; tracked by [#4540](https://github.com/apache/datafusion-comet/issues/4540) |
+| `try_make_timestamp` | ⚠️ | Returns a wrong value instead of NULL for invalid inputs ([#4554](https://github.com/apache/datafusion-comet/issues/4554)) |
+| `try_to_date` | 🔜 | Rewrites to `Cast`/`GetTimestamp` but currently falls back; tracked by [#4556](https://github.com/apache/datafusion-comet/issues/4556) |
+| `try_to_time` | 🔜 | Spark 4.1 TIME type; tracked by [#4288](https://github.com/apache/datafusion-comet/issues/4288) |
+| `try_to_timestamp` | 🔜 | Rewrites to `Cast`/`GetTimestamp` but currently falls back; tracked by [#4556](https://github.com/apache/datafusion-comet/issues/4556) |
+| `unix_date` | ✅ | |
+| `unix_micros` | ✅ | |
+| `unix_millis` | ✅ | |
+| `unix_seconds` | ✅ | |
+| `unix_timestamp` | ✅ | |
+| `weekday` | ✅ | |
+| `weekofyear` | ✅ | |
+| `window` | 🔜 | Time-window grouping; tracked by [#4553](https://github.com/apache/datafusion-comet/issues/4553) |
+| `window_time` | 🔜 | Time-window grouping; tracked by [#4553](https://github.com/apache/datafusion-comet/issues/4553) |
+| `year` | ✅ | |
---
@@ -335,7 +338,7 @@ expression-level). The `outer` variants are wired but marked `Incompatible`; the
| ------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `from_json` | ✅ | Falls back by default; opt-in via allowIncompatible ([audit](../../contributor-guide/expression-audits/json_funcs.md#from_json)) |
| `get_json_object` | ✅ | Some inputs need allowIncompatible ([audit](../../contributor-guide/expression-audits/json_funcs.md#get_json_object)) |
-| `json_array_length` | 🔜 | tracking #4098 |
+| `json_array_length` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
| `json_object_keys` | 🔜 | [#3161](https://github.com/apache/datafusion-comet/issues/3161) |
| `json_tuple` | 🔜 | [#3160](https://github.com/apache/datafusion-comet/issues/3160) |
| `schema_of_json` | 🔜 | [#3163](https://github.com/apache/datafusion-comet/issues/3163) |
@@ -384,111 +387,111 @@ All higher-order functions are planned via [#4224](https://github.com/apache/dat
## math_funcs
-| Function | Status | Notes |
-| -------------- | ------ | ------------------------------------------------------------------ |
-| `%` | ✅ | try_mod (TRY mode) falls back |
-| `*` | ✅ | Interval multiplication falls back |
-| `+` | ✅ | |
-| `-` | ✅ | |
-| `/` | ✅ | |
-| `abs` | ✅ | Interval types fall back |
-| `acos` | ✅ | |
-| `acosh` | ✅ | |
-| `asin` | ✅ | |
-| `asinh` | ✅ | |
-| `atan` | ✅ | |
-| `atan2` | ✅ | |
-| `atanh` | ✅ | |
-| `bin` | ✅ | |
-| `bround` | 🔜 | #4538 |
-| `cbrt` | ✅ | |
-| `ceil` | ✅ | Two-arg form falls back |
-| `ceiling` | ✅ | |
-| `conv` | 🔜 | #4538 |
-| `cos` | ✅ | |
-| `cosh` | ✅ | |
-| `cot` | ✅ | |
-| `csc` | ✅ | |
-| `degrees` | ✅ | |
-| `div` | ✅ | |
-| `e` | ✅ | Folds to a literal (like `pi`) |
-| `exp` | ✅ | |
-| `expm1` | ✅ | |
-| `factorial` | ✅ | |
-| `floor` | ✅ | Two-arg form falls back |
-| `greatest` | ✅ | |
-| `hex` | ✅ | |
-| `hypot` | 🔜 | #4538 |
-| `least` | ✅ | |
-| `ln` | ✅ | |
-| `log` | ✅ | |
-| `log10` | ✅ | |
-| `log1p` | 🔜 | #4538 |
-| `log2` | ✅ | |
-| `mod` | ✅ | |
-| `negative` | ✅ | |
-| `pi` | ✅ | |
-| `pmod` | 🔜 | #4538 |
-| `positive` | ✅ | |
-| `pow` | ✅ | |
-| `power` | ✅ | |
-| `radians` | ✅ | |
-| `rand` | ✅ | |
-| `randn` | ✅ | |
-| `random` | ✅ | Alias for `rand` (Spark 4.0+); seed must be a literal |
-| `randstr` | 🔜 | Random string (Spark 4.0+) |
-| `rint` | ✅ | |
-| `round` | ✅ | Float/double inputs fall back |
-| `sec` | ✅ | |
-| `shiftleft` | ✅ | |
-| `sign` | ✅ | |
-| `signum` | ✅ | |
-| `sin` | ✅ | |
-| `sinh` | ✅ | |
-| `sqrt` | ✅ | |
-| `tan` | ✅ | |
-| `tanh` | ✅ | |
-| `try_add` | ✅ | Datetime/interval form falls back |
-| `try_divide` | ✅ | |
-| `try_mod` | 🔜 | Lowers to `Remainder` with TRY eval mode, which falls back (#4484) |
-| `try_multiply` | ✅ | |
-| `try_subtract` | ✅ | |
-| `unhex` | ✅ | |
-| `uniform` | ✅ | Constant-folded; literal arguments only (Spark 4.0+) |
-| `width_bucket` | ✅ | |
+| Function | Status | Notes |
+| -------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| `%` | ✅ | try_mod (TRY mode) falls back |
+| `*` | ✅ | Interval multiplication falls back |
+| `+` | ✅ | |
+| `-` | ✅ | |
+| `/` | ✅ | |
+| `abs` | ✅ | Interval types fall back |
+| `acos` | ✅ | |
+| `acosh` | ✅ | |
+| `asin` | ✅ | |
+| `asinh` | ✅ | |
+| `atan` | ✅ | |
+| `atan2` | ✅ | |
+| `atanh` | ✅ | |
+| `bin` | ✅ | |
+| `bround` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `cbrt` | ✅ | |
+| `ceil` | ✅ | Two-arg form falls back |
+| `ceiling` | ✅ | |
+| `conv` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `cos` | ✅ | |
+| `cosh` | ✅ | |
+| `cot` | ✅ | |
+| `csc` | ✅ | |
+| `degrees` | ✅ | |
+| `div` | ✅ | |
+| `e` | ✅ | Folds to a literal (like `pi`) |
+| `exp` | ✅ | |
+| `expm1` | ✅ | |
+| `factorial` | ✅ | |
+| `floor` | ✅ | Two-arg form falls back |
+| `greatest` | ✅ | |
+| `hex` | ✅ | |
+| `hypot` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `least` | ✅ | |
+| `ln` | ✅ | |
+| `log` | ✅ | |
+| `log10` | ✅ | |
+| `log1p` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `log2` | ✅ | |
+| `mod` | ✅ | |
+| `negative` | ✅ | |
+| `pi` | ✅ | |
+| `pmod` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `positive` | ✅ | |
+| `pow` | ✅ | |
+| `power` | ✅ | |
+| `radians` | ✅ | |
+| `rand` | ✅ | |
+| `randn` | ✅ | |
+| `random` | ✅ | Alias for `rand` (Spark 4.0+); seed must be a literal |
+| `randstr` | 🔜 | Random string (Spark 4.0+) |
+| `rint` | ✅ | |
+| `round` | ✅ | Float/double inputs fall back |
+| `sec` | ✅ | |
+| `shiftleft` | ✅ | |
+| `sign` | ✅ | |
+| `signum` | ✅ | |
+| `sin` | ✅ | |
+| `sinh` | ✅ | |
+| `sqrt` | ✅ | |
+| `tan` | ✅ | |
+| `tanh` | ✅ | |
+| `try_add` | ✅ | Datetime/interval form falls back |
+| `try_divide` | ✅ | |
+| `try_mod` | 🔜 | Lowers to `Remainder` with TRY eval mode, which falls back ([#4484](https://github.com/apache/datafusion-comet/issues/4484)) |
+| `try_multiply` | ✅ | |
+| `try_subtract` | ✅ | |
+| `unhex` | ✅ | |
+| `uniform` | ✅ | Constant-folded; literal arguments only (Spark 4.0+) |
+| `width_bucket` | ✅ | |
---
## misc_funcs
-| Function | Status | Notes |
-| ----------------------------- | ------ | -------------------------------------------------------------------------------- |
-| `aes_decrypt` | 🔜 | Falls back; `StaticInvoke` not allowlisted; planned via codegen dispatch (#4558) |
-| `aes_encrypt` | 🔜 | Falls back; planned via codegen dispatch (#4558); nondeterministic IV by default |
-| `assert_true` | 🔜 | Lowers to `RaiseError`, which falls back |
-| `current_catalog` | ✅ | Resolved to a literal by the analyzer (`ReplaceCurrentLike`) |
-| `current_database` | ✅ | Resolved to a literal by the analyzer (`ReplaceCurrentLike`) |
-| `current_schema` | ✅ | Alias of `current_database`; resolved to a literal by the analyzer |
-| `current_user` | ✅ | Resolved to a literal by the analyzer; same as `user` |
-| `equal_null` | ✅ | Lowers to `<=>` (`EqualNullSafe`) |
-| `is_variant_null` | 🔜 | tracking #4098 |
-| `monotonically_increasing_id` | ✅ | |
-| `parse_json` | 🔜 | tracking #4098 |
-| `raise_error` | 🔜 | Raises a runtime error |
-| `rand` | ✅ | Seed must be a literal |
-| `randn` | ✅ | Seed must be a literal |
-| `schema_of_variant` | 🔜 | tracking #4098 |
-| `schema_of_variant_agg` | 🔜 | tracking #4098 |
-| `session_user` | ✅ | Alias of `current_user`; resolved to a literal by the analyzer |
-| `spark_partition_id` | ✅ | |
-| `to_variant_object` | 🔜 | tracking #4098 |
-| `try_aes_decrypt` | 🔜 | Falls back; planned via codegen dispatch (#4558) |
-| `try_parse_json` | 🔜 | tracking #4098 |
-| `try_variant_get` | 🔜 | tracking #4098 |
-| `typeof` | ✅ | Foldable; resolved to a literal before Comet sees the plan |
-| `user` | ✅ | Resolved to a literal by the Spark analyzer before reaching Comet |
-| `uuid` | 🔜 | Nondeterministic random UUID |
-| `variant_get` | 🔜 | tracking #4098 |
+| Function | Status | Notes |
+| ----------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| `aes_decrypt` | 🔜 | Falls back; `StaticInvoke` not allowlisted; planned via codegen dispatch ([#4558](https://github.com/apache/datafusion-comet/issues/4558)) |
+| `aes_encrypt` | 🔜 | Falls back; planned via codegen dispatch ([#4558](https://github.com/apache/datafusion-comet/issues/4558)); nondeterministic IV by default |
+| `assert_true` | 🔜 | Lowers to `RaiseError`, which falls back |
+| `current_catalog` | ✅ | Resolved to a literal by the analyzer (`ReplaceCurrentLike`) |
+| `current_database` | ✅ | Resolved to a literal by the analyzer (`ReplaceCurrentLike`) |
+| `current_schema` | ✅ | Alias of `current_database`; resolved to a literal by the analyzer |
+| `current_user` | ✅ | Resolved to a literal by the analyzer; same as `user` |
+| `equal_null` | ✅ | Lowers to `<=>` (`EqualNullSafe`) |
+| `is_variant_null` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `monotonically_increasing_id` | ✅ | |
+| `parse_json` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `raise_error` | 🔜 | Raises a runtime error |
+| `rand` | ✅ | Seed must be a literal |
+| `randn` | ✅ | Seed must be a literal |
+| `schema_of_variant` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `schema_of_variant_agg` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `session_user` | ✅ | Alias of `current_user`; resolved to a literal by the analyzer |
+| `spark_partition_id` | ✅ | |
+| `to_variant_object` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `try_aes_decrypt` | 🔜 | Falls back; planned via codegen dispatch ([#4558](https://github.com/apache/datafusion-comet/issues/4558)) |
+| `try_parse_json` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `try_variant_get` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `typeof` | ✅ | Foldable; resolved to a literal before Comet sees the plan |
+| `user` | ✅ | Resolved to a literal by the Spark analyzer before reaching Comet |
+| `uuid` | 🔜 | Nondeterministic random UUID |
+| `variant_get` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
---
@@ -522,74 +525,74 @@ All higher-order functions are planned via [#4224](https://github.com/apache/dat
## string_funcs
-| Function | Status | Notes |
-| -------------------- | ------ | -------------------------------------------------------------------------------- |
-| `ascii` | ✅ | |
-| `base64` | 🔜 | Lowers to `StaticInvoke(encode)` (not allowlisted); falls back |
-| `bit_length` | ✅ | |
-| `btrim` | ✅ | |
-| `char` | ✅ | |
-| `char_length` | ✅ | |
-| `character_length` | ✅ | |
-| `chr` | ✅ | |
-| `collate` | 🔜 | Spark collation (umbrella #2190) |
-| `collation` | ✅ | Constant-folded to a literal (Spark 4.0+) |
-| `concat_ws` | ✅ | |
-| `contains` | ✅ | |
-| `decode` | ✅ | |
-| `elt` | 🔜 | #4538 |
-| `encode` | 🔜 | Lowers to `StaticInvoke(encode)` (not allowlisted); falls back |
-| `endswith` | ✅ | |
-| `find_in_set` | 🔜 | #4538 |
-| `format_number` | 🔜 | #4538 |
-| `format_string` | 🔜 | #4538 |
-| `initcap` | ✅ | |
-| `instr` | ✅ | |
-| `lcase` | ✅ | |
-| `left` | ✅ | |
-| `len` | ✅ | |
-| `length` | ✅ | |
-| `levenshtein` | 🔜 | #4538 |
-| `locate` | 🔜 | #4538 |
-| `lower` | ✅ | |
-| `lpad` | ✅ | |
-| `ltrim` | ✅ | |
-| `luhn_check` | ✅ | Native via `StaticInvoke` (tests: luhn_check.sql) |
-| `mask` | 🔜 | Data masking |
-| `octet_length` | ✅ | |
-| `overlay` | 🔜 | #4538 |
-| `position` | 🔜 | #4538 |
-| `printf` | 🔜 | #4538 |
-| `regexp_count` | 🔜 | tracking #4098 |
-| `regexp_extract` | 🔜 | tracking #4098 |
-| `regexp_extract_all` | 🔜 | tracking #4098 |
-| `regexp_instr` | 🔜 | tracking #4098 |
-| `regexp_replace` | ✅ | |
-| `regexp_substr` | 🔜 | tracking #4098 |
-| `repeat` | ✅ | |
-| `replace` | ✅ | |
-| `right` | ✅ | |
-| `rpad` | ✅ | |
-| `rtrim` | ✅ | |
-| `soundex` | 🔜 | #4538 |
-| `space` | ✅ | |
-| `split` | ✅ | |
-| `split_part` | 🔜 | Lowers to `element_at(StringSplitSQL(...))`; `StringSplitSQL` falls back (#4561) |
-| `startswith` | ✅ | |
-| `substr` | ✅ | |
-| `substring` | ✅ | |
-| `substring_index` | ✅ | |
-| `to_binary` | ✅ | Hex form accelerated; other formats fall back |
-| `to_char` | 🔜 | #4538 |
-| `to_number` | 🔜 | #4538 |
-| `to_varchar` | 🔜 | #4538 |
-| `translate` | ✅ | |
-| `trim` | ✅ | |
-| `try_to_binary` | 🔜 | Lowers to `TryEval(...)`, which falls back |
-| `try_to_number` | 🔜 | TRY variant of `to_number` |
-| `ucase` | ✅ | |
-| `unbase64` | 🔜 | #4538 |
-| `upper` | ✅ | |
+| Function | Status | Notes |
+| -------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| `ascii` | ✅ | |
+| `base64` | 🔜 | Lowers to `StaticInvoke(encode)` (not allowlisted); falls back |
+| `bit_length` | ✅ | |
+| `btrim` | ✅ | |
+| `char` | ✅ | |
+| `char_length` | ✅ | |
+| `character_length` | ✅ | |
+| `chr` | ✅ | |
+| `collate` | 🔜 | Spark collation (umbrella [#2190](https://github.com/apache/datafusion-comet/issues/2190)) |
+| `collation` | ✅ | Constant-folded to a literal (Spark 4.0+) |
+| `concat_ws` | ✅ | |
+| `contains` | ✅ | |
+| `decode` | ✅ | |
+| `elt` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `encode` | 🔜 | Lowers to `StaticInvoke(encode)` (not allowlisted); falls back |
+| `endswith` | ✅ | |
+| `find_in_set` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `format_number` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `format_string` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `initcap` | ✅ | |
+| `instr` | ✅ | |
+| `lcase` | ✅ | |
+| `left` | ✅ | |
+| `len` | ✅ | |
+| `length` | ✅ | |
+| `levenshtein` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `locate` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `lower` | ✅ | |
+| `lpad` | ✅ | |
+| `ltrim` | ✅ | |
+| `luhn_check` | ✅ | Native via `StaticInvoke` (tests: luhn_check.sql) |
+| `mask` | 🔜 | Data masking |
+| `octet_length` | ✅ | |
+| `overlay` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `position` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `printf` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `regexp_count` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `regexp_extract` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `regexp_extract_all` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `regexp_instr` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `regexp_replace` | ✅ | |
+| `regexp_substr` | 🔜 | tracking [#4098](https://github.com/apache/datafusion-comet/issues/4098) |
+| `repeat` | ✅ | |
+| `replace` | ✅ | |
+| `right` | ✅ | |
+| `rpad` | ✅ | |
+| `rtrim` | ✅ | |
+| `soundex` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `space` | ✅ | |
+| `split` | ✅ | |
+| `split_part` | 🔜 | Lowers to `element_at(StringSplitSQL(...))`; `StringSplitSQL` falls back ([#4561](https://github.com/apache/datafusion-comet/issues/4561)) |
+| `startswith` | ✅ | |
+| `substr` | ✅ | |
+| `substring` | ✅ | |
+| `substring_index` | ✅ | |
+| `to_binary` | ✅ | Hex form accelerated; other formats fall back |
+| `to_char` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `to_number` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `to_varchar` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `translate` | ✅ | |
+| `trim` | ✅ | |
+| `try_to_binary` | 🔜 | Lowers to `TryEval(...)`, which falls back |
+| `try_to_number` | 🔜 | TRY variant of `to_number` |
+| `ucase` | ✅ | |
+| `unbase64` | 🔜 | [#4538](https://github.com/apache/datafusion-comet/issues/4538) |
+| `upper` | ✅ | |
---
@@ -622,17 +625,17 @@ When enabled, `lag` and `lead` are explicitly wired; aggregate window functions
`ntile`, `percent_rank`, `cume_dist`, `nth_value`) are not yet wired in the window serde and
fall back to Spark.
-| Function | Status | Notes |
-| -------------- | ------ | --------------------------------- |
-| `cume_dist` | 🔜 | Window function; tracked by #2721 |
-| `dense_rank` | 🔜 | Window function; tracked by #2721 |
-| `lag` | ✅ | via `CometWindowExec` |
-| `lead` | ✅ | via `CometWindowExec` |
-| `nth_value` | 🔜 | Window function; tracked by #2721 |
-| `ntile` | 🔜 | Window function; tracked by #2721 |
-| `percent_rank` | 🔜 | Window function; tracked by #2721 |
-| `rank` | 🔜 | Window function; tracked by #2721 |
-| `row_number` | 🔜 | Window function; tracked by #2721 |
+| Function | Status | Notes |
+| -------------- | ------ | ------------------------------------------------------------------------------------------- |
+| `cume_dist` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
+| `dense_rank` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
+| `lag` | ✅ | via `CometWindowExec` |
+| `lead` | ✅ | via `CometWindowExec` |
+| `nth_value` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
+| `ntile` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
+| `percent_rank` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
+| `rank` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
+| `row_number` | 🔜 | Window function; tracked by [#2721](https://github.com/apache/datafusion-comet/issues/2721) |
---
diff --git a/searchindex.js b/searchindex.js
index 276eae370a..fc8c85dbbb 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!": [[49, "id1"]], "%": [[47, "id1"]], "&": [[37, "id1"]], "*": [[47, "id2"]], "+": [[47, "id3"]], "-": [[47, "id4"]], "/": [[47, "id5"]], "1. Format Your Code": [[34, "format-your-code"]], "1. Install Comet": [[54, "install-comet"], [63, "install-comet"]], "1. Native Operators (nativeExecs map)": [[23, "native-operators-nativeexecs-map"]], "2. Build and Verify": [[34, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[54, "clone-iceberg-and-apply- [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!": [[49, "id1"]], "%": [[47, "id1"]], "&": [[37, "id1"]], "*": [[47, "id2"]], "+": [[47, "id3"]], "-": [[47, "id4"]], "/": [[47, "id5"]], "1. Format Your Code": [[34, "format-your-code"]], "1. Install Comet": [[54, "install-comet"], [63, "install-comet"]], "1. Native Operators (nativeExecs map)": [[23, "native-operators-nativeexecs-map"]], "2. Build and Verify": [[34, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[54, "clone-iceberg-and-apply- [...]
\ No newline at end of file
diff --git a/user-guide/latest/expressions.html b/user-guide/latest/expressions.html
index df58318c49..49769a2aaf 100644
--- a/user-guide/latest/expressions.html
+++ b/user-guide/latest/expressions.html
@@ -529,9 +529,11 @@ under the License.
expression. Comet accelerates expressions either with a native (Rust) implementation or by
dispatching to a Spark-compatible codegen path. When an expression is not supported, Comet
transparently falls back to Spark for that part of the plan; results are unaffected.</p>
-<p>Expressions marked ✅ Supported are enabled by default. Expressions marked ⚠️ Supported
-(caveats) include cases that are known to diverge from Spark; those cases fall back to Spark
-by default and must be opted into per expression with
+<p>Expressions marked ✅ Supported are enabled by default and produce Spark-compatible results.
+Expressions marked ⚠️ Incorrect by default run natively by default but can return results that
+differ from Spark on some inputs; see the linked detail on each affected row.</p>
+<p>Some ✅ Supported expressions have specific incompatible cases that fall back to Spark by
+default. Those cases must be opted into per expression with
<code class="docutils literal notranslate"><span class="pre">spark.comet.expression.EXPRNAME.allowIncompatible=true</span></code> (where <code class="docutils literal notranslate"><span class="pre">EXPRNAME</span></code> is the Spark
expression class name, for example <code class="docutils literal notranslate"><span class="pre">Cast</span></code>). There is no global opt-in.</p>
<p>Most expressions can also be disabled with <code class="docutils literal notranslate"><span class="pre">spark.comet.expression.EXPRNAME.enabled=false</span></code>, where
@@ -600,11 +602,11 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">approx_count_distinct</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">array_agg</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Array aggregate (related to <code class="docutils literal notranslate"><span class="pre">collect_list</span></code>, #2524)</p></td>
+<td><p>Array aggregate (related to <code class="docutils literal notranslate"><span class="pre">collect_list</span></code>, <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2524">#2524</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">avg</span></code></p></td>
<td><p>✅</p></td>
@@ -680,7 +682,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">kurtosis</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">last</span></code></p></td>
<td><p>✅</p></td>
@@ -708,7 +710,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">median</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">min</span></code></p></td>
<td><p>✅</p></td>
@@ -724,7 +726,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">percentile</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4542</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4542">#4542</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">percentile_cont</span></code></p></td>
<td><p>🔜</p></td>
@@ -736,43 +738,43 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regr_avgx</span></code></p></td>
<td><p>✅</p></td>
-<td><p>Native: Spark rewrites to <code class="docutils literal notranslate"><span class="pre">Average</span></code> (tests in #4551)</p></td>
+<td><p>Native: Spark rewrites to <code class="docutils literal notranslate"><span class="pre">Average</span></code> (tests in <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4551">#4551</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regr_avgy</span></code></p></td>
<td><p>✅</p></td>
-<td><p>Native: Spark rewrites to <code class="docutils literal notranslate"><span class="pre">Average</span></code> (tests in #4551)</p></td>
+<td><p>Native: Spark rewrites to <code class="docutils literal notranslate"><span class="pre">Average</span></code> (tests in <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4551">#4551</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regr_count</span></code></p></td>
<td><p>✅</p></td>
-<td><p>Native: Spark rewrites to <code class="docutils literal notranslate"><span class="pre">Count</span></code> (tests in #4551)</p></td>
+<td><p>Native: Spark rewrites to <code class="docutils literal notranslate"><span class="pre">Count</span></code> (tests in <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4551">#4551</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regr_intercept</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code>/<code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulators (#4552)</p></td>
+<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code>/<code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulators (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4552">#4552</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regr_r2</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; can reuse the <code class="docutils literal notranslate"><span class="pre">corr</span></code> accumulator (#4552)</p></td>
+<td><p>Falls back; can reuse the <code class="docutils literal notranslate"><span class="pre">corr</span></code> accumulator (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4552">#4552</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regr_slope</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code>/<code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulators (#4552)</p></td>
+<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code>/<code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulators (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4552">#4552</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regr_sxx</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulator (#4552)</p></td>
+<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulator (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4552">#4552</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regr_sxy</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code> accumulator (#4552)</p></td>
+<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">covar_pop</span></code> accumulator (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4552">#4552</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regr_syy</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulator (#4552)</p></td>
+<td><p>Falls back; can reuse <code class="docutils literal notranslate"><span class="pre">var_pop</span></code> accumulator (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4552">#4552</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">skewness</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">some</span></code></p></td>
<td><p>✅</p></td>
@@ -804,11 +806,11 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">try_avg</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">try_sum</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">var_pop</span></code></p></td>
<td><p>✅</p></td>
@@ -923,7 +925,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">sequence</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">shuffle</span></code></p></td>
<td><p>🔜</p></td>
@@ -931,7 +933,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">slice</span></code></p></td>
<td><p>✅</p></td>
-<td><p>Native (#4149)</p></td>
+<td><p>Native (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4149">#4149</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">sort_array</span></code></p></td>
<td><p>✅</p></td>
@@ -1064,7 +1066,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nanvl</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nullif</span></code></p></td>
<td><p>✅</p></td>
@@ -1143,7 +1145,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">current_time</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Blocked on Spark 4.1 TIME type support (#4288)</p></td>
+<td><p>Blocked on Spark 4.1 TIME type support (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4288">#4288</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">current_timestamp</span></code></p></td>
<td><p>✅</p></td>
@@ -1199,7 +1201,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">dayname</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4544</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4544">#4544</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">dayofmonth</span></code></p></td>
<td><p>✅</p></td>
@@ -1243,15 +1245,15 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">make_dt_interval</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4541</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4541">#4541</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">make_interval</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Produces legacy CalendarInterval; tracked by #4540</p></td>
+<td><p>Produces legacy CalendarInterval; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4540">#4540</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">make_time</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Spark 4.1 TIME type; tracked by #4288</p></td>
+<td><p>Spark 4.1 TIME type; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4288">#4288</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">make_timestamp</span></code></p></td>
<td><p>✅</p></td>
@@ -1267,7 +1269,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">make_ym_interval</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4541</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4541">#4541</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">minute</span></code></p></td>
<td><p>✅</p></td>
@@ -1279,7 +1281,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">monthname</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4544</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4544">#4544</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">months_between</span></code></p></td>
<td><p>✅</p></td>
@@ -1303,15 +1305,15 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">session_window</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Time-window grouping; tracked by #4553</p></td>
+<td><p>Time-window grouping; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4553">#4553</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">time_diff</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Spark 4.1 TIME type; tracked by #4288</p></td>
+<td><p>Spark 4.1 TIME type; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4288">#4288</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">time_trunc</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Spark 4.1 TIME type; tracked by #4288</p></td>
+<td><p>Spark 4.1 TIME type; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4288">#4288</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">timestamp_micros</span></code></p></td>
<td><p>✅</p></td>
@@ -1331,7 +1333,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">to_time</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Spark 4.1 TIME type; tracked by #4288</p></td>
+<td><p>Spark 4.1 TIME type; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4288">#4288</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">to_timestamp</span></code></p></td>
<td><p>✅</p></td>
@@ -1359,7 +1361,7 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">try_make_interval</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Produces legacy CalendarInterval; tracked by #4540</p></td>
+<td><p>Produces legacy CalendarInterval; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4540">#4540</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">try_make_timestamp</span></code></p></td>
<td><p>⚠️</p></td>
@@ -1367,15 +1369,15 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">try_to_date</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Rewrites to <code class="docutils literal notranslate"><span class="pre">Cast</span></code>/<code class="docutils literal notranslate"><span class="pre">GetTimestamp</span></code> but currently falls back; tracked by #4556</p></td>
+<td><p>Rewrites to <code class="docutils literal notranslate"><span class="pre">Cast</span></code>/<code class="docutils literal notranslate"><span class="pre">GetTimestamp</span></code> but currently falls back; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4556">#4556</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">try_to_time</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Spark 4.1 TIME type; tracked by #4288</p></td>
+<td><p>Spark 4.1 TIME type; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4288">#4288</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">try_to_timestamp</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Rewrites to <code class="docutils literal notranslate"><span class="pre">Cast</span></code>/<code class="docutils literal notranslate"><span class="pre">GetTimestamp</span></code> but currently falls back; tracked by #4556</p></td>
+<td><p>Rewrites to <code class="docutils literal notranslate"><span class="pre">Cast</span></code>/<code class="docutils literal notranslate"><span class="pre">GetTimestamp</span></code> but currently falls back; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4556">#4556</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">unix_date</span></code></p></td>
<td><p>✅</p></td>
@@ -1407,11 +1409,11 @@ expressions. The following function families are <strong>not currently planned</
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">window</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Time-window grouping; tracked by #4553</p></td>
+<td><p>Time-window grouping; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4553">#4553</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">window_time</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Time-window grouping; tracked by #4553</p></td>
+<td><p>Time-window grouping; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4553">#4553</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">year</span></code></p></td>
<td><p>✅</p></td>
@@ -1531,7 +1533,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">json_array_length</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">json_object_keys</span></code></p></td>
<td><p>🔜</p></td>
@@ -1745,7 +1747,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">bround</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">cbrt</span></code></p></td>
<td><p>✅</p></td>
@@ -1761,7 +1763,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">conv</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">cos</span></code></p></td>
<td><p>✅</p></td>
@@ -1817,7 +1819,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">hypot</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">least</span></code></p></td>
<td><p>✅</p></td>
@@ -1837,7 +1839,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">log1p</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">log2</span></code></p></td>
<td><p>✅</p></td>
@@ -1857,7 +1859,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">pmod</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">positive</span></code></p></td>
<td><p>✅</p></td>
@@ -1945,7 +1947,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">try_mod</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Lowers to <code class="docutils literal notranslate"><span class="pre">Remainder</span></code> with TRY eval mode, which falls back (#4484)</p></td>
+<td><p>Lowers to <code class="docutils literal notranslate"><span class="pre">Remainder</span></code> with TRY eval mode, which falls back (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4484">#4484</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">try_multiply</span></code></p></td>
<td><p>✅</p></td>
@@ -1984,11 +1986,11 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">aes_decrypt</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; <code class="docutils literal notranslate"><span class="pre">StaticInvoke</span></code> not allowlisted; planned via codegen dispatch (#4558)</p></td>
+<td><p>Falls back; <code class="docutils literal notranslate"><span class="pre">StaticInvoke</span></code> not allowlisted; planned via codegen dispatch (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4558">#4558</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">aes_encrypt</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; planned via codegen dispatch (#4558); nondeterministic IV by default</p></td>
+<td><p>Falls back; planned via codegen dispatch (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4558">#4558</a>); nondeterministic IV by default</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">assert_true</span></code></p></td>
<td><p>🔜</p></td>
@@ -2016,7 +2018,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">is_variant_null</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">monotonically_increasing_id</span></code></p></td>
<td><p>✅</p></td>
@@ -2024,7 +2026,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">parse_json</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">raise_error</span></code></p></td>
<td><p>🔜</p></td>
@@ -2040,11 +2042,11 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">schema_of_variant</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">schema_of_variant_agg</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">session_user</span></code></p></td>
<td><p>✅</p></td>
@@ -2056,19 +2058,19 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">to_variant_object</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">try_aes_decrypt</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Falls back; planned via codegen dispatch (#4558)</p></td>
+<td><p>Falls back; planned via codegen dispatch (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4558">#4558</a>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">try_parse_json</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">try_variant_get</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">typeof</span></code></p></td>
<td><p>✅</p></td>
@@ -2084,7 +2086,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">variant_get</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
</tbody>
</table>
@@ -2234,7 +2236,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">collate</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Spark collation (umbrella #2190)</p></td>
+<td><p>Spark collation (umbrella <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2190">#2190</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">collation</span></code></p></td>
<td><p>✅</p></td>
@@ -2254,7 +2256,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">elt</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">encode</span></code></p></td>
<td><p>🔜</p></td>
@@ -2266,15 +2268,15 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">find_in_set</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">format_number</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">format_string</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">initcap</span></code></p></td>
<td><p>✅</p></td>
@@ -2302,11 +2304,11 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">levenshtein</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">locate</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">lower</span></code></p></td>
<td><p>✅</p></td>
@@ -2334,31 +2336,31 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">overlay</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">position</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">printf</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regexp_count</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regexp_extract</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regexp_extract_all</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regexp_instr</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">regexp_replace</span></code></p></td>
<td><p>✅</p></td>
@@ -2366,7 +2368,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">regexp_substr</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>tracking #4098</p></td>
+<td><p>tracking <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4098">#4098</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">repeat</span></code></p></td>
<td><p>✅</p></td>
@@ -2390,7 +2392,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">soundex</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">space</span></code></p></td>
<td><p>✅</p></td>
@@ -2402,7 +2404,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">split_part</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Lowers to <code class="docutils literal notranslate"><span class="pre">element_at(StringSplitSQL(...))</span></code>; <code class="docutils literal notranslate"><span class="pre">StringSplitSQL</span></code> falls back (#4561)</p></td>
+<td><p>Lowers to <code class="docutils literal notranslate"><span class="pre">element_at(StringSplitSQL(...))</span></code>; <code class="docutils literal notranslate"><span class="pre">StringSplitSQL</span></code> falls back (<a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4561">#4561</a>)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">startswith</span></code></p></td>
<td><p>✅</p></td>
@@ -2426,15 +2428,15 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">to_char</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">to_number</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">to_varchar</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">translate</span></code></p></td>
<td><p>✅</p></td>
@@ -2458,7 +2460,7 @@ expression-level). The <code class="docutils literal notranslate"><span class="p
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">unbase64</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>#4538</p></td>
+<td><p><a class="reference external" href="https://github.com/apache/datafusion-comet/issues/4538">#4538</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">upper</span></code></p></td>
<td><p>✅</p></td>
@@ -2541,11 +2543,11 @@ fall back to Spark.</p>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">cume_dist</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">dense_rank</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">lag</span></code></p></td>
<td><p>✅</p></td>
@@ -2557,23 +2559,23 @@ fall back to Spark.</p>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nth_value</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ntile</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">percent_rank</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">rank</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</a></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">row_number</span></code></p></td>
<td><p>🔜</p></td>
-<td><p>Window function; tracked by #2721</p></td>
+<td><p>Window function; tracked by <a class="reference external" href="https://github.com/apache/datafusion-comet/issues/2721">#2721</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