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 aaf0b60b97 Publish built docs triggered by
671a8dd9ee4c4f5bf44f3096ab83b2b30801fcb8
aaf0b60b97 is described below
commit aaf0b60b97ea44567966d8bd24fc5422173c2d25
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Aug 1 20:12:21 2026 +0000
Publish built docs triggered by 671a8dd9ee4c4f5bf44f3096ab83b2b30801fcb8
---
.../expression-audits/conversion_funcs.md.txt | 2 +-
.../expressions/spark-3.4/cast.md.txt | 24 +++++++++++-----------
.../expressions/spark-3.5/cast.md.txt | 24 +++++++++++-----------
.../expressions/spark-4.0/cast.md.txt | 24 +++++++++++-----------
.../expressions/spark-4.1/cast.md.txt | 24 +++++++++++-----------
.../expression-audits/conversion_funcs.html | 2 +-
searchindex.js | 2 +-
.../compatibility/expressions/spark-3.4/cast.html | 24 +++++++++++-----------
.../compatibility/expressions/spark-3.5/cast.html | 24 +++++++++++-----------
.../compatibility/expressions/spark-4.0/cast.html | 24 +++++++++++-----------
.../compatibility/expressions/spark-4.1/cast.html | 24 +++++++++++-----------
11 files changed, 99 insertions(+), 99 deletions(-)
diff --git
a/_sources/contributor-guide/expression-audits/conversion_funcs.md.txt
b/_sources/contributor-guide/expression-audits/conversion_funcs.md.txt
index c11d441a23..64e01822dc 100644
--- a/_sources/contributor-guide/expression-audits/conversion_funcs.md.txt
+++ b/_sources/contributor-guide/expression-audits/conversion_funcs.md.txt
@@ -33,7 +33,7 @@
- Spark 4.1 `TimeType` casts have no explicit `Unsupported` arm; they fall
back implicitly but do not appear in the auto-generated compatibility doc
([#4490](https://github.com/apache/datafusion-comet/issues/4490)).
- `CAST(<map> AS <map>)` runs natively via `cast_map_to_map`;
`CometCast.isSupported` recurses into the key and value casts, so the map arm
inherits whichever support level the inner casts report.
- `spark.sql.legacy.castComplexTypesToString.enabled=true` is `Unsupported`
for any array/map/struct-to-string cast, so those casts fall back to Spark
while the flag is on. Comet only implements the default (`{}`-wrapped,
NULL-rendering) formatting. The flag is internal from Spark 4.0 onward and
defaults to false.
- - `CAST(<float|double> AS DECIMAL)` rounding may differ from Spark
(`Incompatible`, gated by `spark.comet.expression.Cast.allowIncompatible`,
tracked at [#1371](https://github.com/apache/datafusion-comet/issues/1371)).
+ - `CAST(<float|double> AS DECIMAL)` is `Compatible`: it rounds the shortest
decimal string form of the value (matching Spark's `Double.toString` +
`BigDecimal.setScale(HALF_UP)` path) rather than the binary value, taking a
guarded binary fast path for values provably far from a rounding tie. NaN and
infinity are null even in ANSI mode, matching Spark, which swallows the
`NumberFormatException` from `Decimal(double)` before the ANSI overflow check.
The support level carries a note: `Dou [...]
- Spark registers the type-name conversion functions (`bigint`, `binary`,
`boolean`, `date`, `decimal`, `double`, `float`, `int`, `smallint`, `string`,
`timestamp`, `tinyint`) as cast aliases. Each lowers to the same `Cast` node,
so Comet handles it via the `cast` implementation with the same compatibility
profile.
- Performance (tuned 2026-07-14, PR
[#4920](https://github.com/apache/datafusion-comet/pull/4920)): narrowing
integer casts (`spark_cast_int_to_int`) map the values buffer in a single pass
with Arrow `unary`/`try_unary` and carry the null buffer over untouched,
replacing an element-by-element `Option`/`Result` iterator-collect. Up to 100x
faster on narrowing casts. Benchmark: `benches/cast_numeric.rs`.
- Performance (tuned 2026-07-15, PR
[#4940](https://github.com/apache/datafusion-comet/pull/4940)):
float/double-to-decimal casts (`cast_floating_point_to_decimal128`) now convert
in a single vectorized `unary_opt` pass that maps out-of-range values (NaN,
infinity, precision overflow) to null, replacing the per-element
`Decimal128Builder` loop. ANSI raises via an O(1) null-count check plus a rare
element-wise rescan. 15-36% faster with no regression on any shape. Benchmark:
`benches/cast [...]
diff --git
a/_sources/user-guide/latest/compatibility/expressions/spark-3.4/cast.md.txt
b/_sources/user-guide/latest/compatibility/expressions/spark-3.4/cast.md.txt
index 418be980d5..9c1bd36fed 100644
--- a/_sources/user-guide/latest/compatibility/expressions/spark-3.4/cast.md.txt
+++ b/_sources/user-guide/latest/compatibility/expressions/spark-3.4/cast.md.txt
@@ -174,8 +174,8 @@ as `"1.23E+4"`).
| byte | C | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | C | C | - | C | C | C | C | C | C | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | C | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | C | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | C | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -184,9 +184,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -203,8 +203,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -213,9 +213,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -232,8 +232,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -242,9 +242,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
diff --git
a/_sources/user-guide/latest/compatibility/expressions/spark-3.5/cast.md.txt
b/_sources/user-guide/latest/compatibility/expressions/spark-3.5/cast.md.txt
index 418be980d5..9c1bd36fed 100644
--- a/_sources/user-guide/latest/compatibility/expressions/spark-3.5/cast.md.txt
+++ b/_sources/user-guide/latest/compatibility/expressions/spark-3.5/cast.md.txt
@@ -174,8 +174,8 @@ as `"1.23E+4"`).
| byte | C | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | C | C | - | C | C | C | C | C | C | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | C | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | C | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | C | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -184,9 +184,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -203,8 +203,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -213,9 +213,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -232,8 +232,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -242,9 +242,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
diff --git
a/_sources/user-guide/latest/compatibility/expressions/spark-4.0/cast.md.txt
b/_sources/user-guide/latest/compatibility/expressions/spark-4.0/cast.md.txt
index 418be980d5..9c1bd36fed 100644
--- a/_sources/user-guide/latest/compatibility/expressions/spark-4.0/cast.md.txt
+++ b/_sources/user-guide/latest/compatibility/expressions/spark-4.0/cast.md.txt
@@ -174,8 +174,8 @@ as `"1.23E+4"`).
| byte | C | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | C | C | - | C | C | C | C | C | C | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | C | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | C | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | C | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -184,9 +184,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -203,8 +203,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -213,9 +213,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -232,8 +232,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -242,9 +242,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
diff --git
a/_sources/user-guide/latest/compatibility/expressions/spark-4.1/cast.md.txt
b/_sources/user-guide/latest/compatibility/expressions/spark-4.1/cast.md.txt
index 418be980d5..9c1bd36fed 100644
--- a/_sources/user-guide/latest/compatibility/expressions/spark-4.1/cast.md.txt
+++ b/_sources/user-guide/latest/compatibility/expressions/spark-4.1/cast.md.txt
@@ -174,8 +174,8 @@ as `"1.23E+4"`).
| byte | C | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | C | C | - | C | C | C | C | C | C | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | C | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | C | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | C | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -184,9 +184,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -203,8 +203,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -213,9 +213,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
@@ -232,8 +232,8 @@ as `"1.23E+4"`).
| byte | U | C | - | N/A | C | C | C | C | C | C | C | C | N/A |
| date | N/A | U | U | - | U | U | U | U | U | U | C | C | C |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | C | N/A |
-| double | N/A | C | C | N/A | I | - | C | C | C | C | C | C | N/A |
-| float | N/A | C | C | N/A | I | C | - | C | C | C | C | C | N/A |
+| double | N/A | C | C | N/A | C | - | C | C | C | C | C | C | N/A |
+| float | N/A | C | C | N/A | C | C | - | C | C | C | C | C | N/A |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | C | N/A |
| long | U | C | C | N/A | C | C | C | C | - | C | C | C | N/A |
| short | U | C | C | N/A | C | C | C | C | C | - | C | C | N/A |
@@ -242,9 +242,9 @@ as `"1.23E+4"`).
| timestamp_ntz | N/A | N/A | N/A | C | N/A | N/A | N/A | N/A | N/A | N/A | C
| C | - |
**Notes:**
-- **double -> decimal**: There can be rounding differences
+- **double -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **double -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
-- **float -> decimal**: There can be rounding differences
+- **float -> decimal**: Rounding matches Spark on JDK 19 and later. On older
JDKs, Spark's own result may differ for values whose shortest decimal form
falls exactly on a rounding tie
- **float -> string**: String formatting can differ for floating-point values
near precision limits or when scientific notation is used
- **string -> date**: Only supports years between 262143 BC and 262142 AD
<!-- prettier-ignore-end -->
diff --git a/contributor-guide/expression-audits/conversion_funcs.html
b/contributor-guide/expression-audits/conversion_funcs.html
index c48a408717..c5bfbbfb36 100644
--- a/contributor-guide/expression-audits/conversion_funcs.html
+++ b/contributor-guide/expression-audits/conversion_funcs.html
@@ -566,7 +566,7 @@ under the License.
<li><p>Spark 4.1 <code class="docutils literal notranslate"><span
class="pre">TimeType</span></code> casts have no explicit <code class="docutils
literal notranslate"><span class="pre">Unsupported</span></code> arm; they fall
back implicitly but do not appear in the auto-generated compatibility doc (<a
class="reference external"
href="https://github.com/apache/datafusion-comet/issues/4490">#4490</a>).</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">CAST(<map></span> <span class="pre">AS</span> <span
class="pre"><map>)</span></code> runs natively via <code class="docutils
literal notranslate"><span class="pre">cast_map_to_map</span></code>; <code
class="docutils literal notranslate"><span
class="pre">CometCast.isSupported</span></code> recurses into the key and value
casts, so the map arm inherits whichever support level the inner casts
report.</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">spark.sql.legacy.castComplexTypesToString.enabled=true</span></code>
is <code class="docutils literal notranslate"><span
class="pre">Unsupported</span></code> for any array/map/struct-to-string cast,
so those casts fall back to Spark while the flag is on. Comet only implements
the default (<code class="docutils literal notranslate"><span
class="pre">{}</span></code>-wrapped, NULL-rendering) formatting. The flag is
intern [...]
-<li><p><code class="docutils literal notranslate"><span
class="pre">CAST(<float|double></span> <span class="pre">AS</span> <span
class="pre">DECIMAL)</span></code> rounding may differ from Spark (<code
class="docutils literal notranslate"><span
class="pre">Incompatible</span></code>, gated by <code class="docutils literal
notranslate"><span
class="pre">spark.comet.expression.Cast.allowIncompatible</span></code>,
tracked at <a class="reference external" href="https://github.com/apac [...]
+<li><p><code class="docutils literal notranslate"><span
class="pre">CAST(<float|double></span> <span class="pre">AS</span> <span
class="pre">DECIMAL)</span></code> is <code class="docutils literal
notranslate"><span class="pre">Compatible</span></code>: it rounds the shortest
decimal string form of the value (matching Spark’s <code class="docutils
literal notranslate"><span class="pre">Double.toString</span></code> + <code
class="docutils literal notranslate"><span class="pre">BigD [...]
</ul>
</li>
<li><p>Spark registers the type-name conversion functions (<code
class="docutils literal notranslate"><span class="pre">bigint</span></code>,
<code class="docutils literal notranslate"><span
class="pre">binary</span></code>, <code class="docutils literal
notranslate"><span class="pre">boolean</span></code>, <code class="docutils
literal notranslate"><span class="pre">date</span></code>, <code
class="docutils literal notranslate"><span class="pre">decimal</span></code>,
<code class="docut [...]
diff --git a/searchindex.js b/searchindex.js
index 55392de756..b5375dc6c4 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!": [[54, "id1"]], "%": [[52, "id1"]], "&":
[[42, "id1"]], "*": [[52, "id2"]], "+": [[52, "id3"]], "-": [[52, "id4"]], "/":
[[52, "id5"]], "1. Format Your Code": [[39, "format-your-code"]], "1. Install
Comet": [[60, "install-comet"], [70, "install-comet"]], "1. Native Operators
(nativeExecs map)": [[27, "native-operators-nativeexecs-map"]], "2. Build and
Verify": [[39, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[60,
"clone-iceberg-and-apply- [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!": [[54, "id1"]], "%": [[52, "id1"]], "&":
[[42, "id1"]], "*": [[52, "id2"]], "+": [[52, "id3"]], "-": [[52, "id4"]], "/":
[[52, "id5"]], "1. Format Your Code": [[39, "format-your-code"]], "1. Install
Comet": [[60, "install-comet"], [70, "install-comet"]], "1. Native Operators
(nativeExecs map)": [[27, "native-operators-nativeexecs-map"]], "2. Build and
Verify": [[39, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[60,
"clone-iceberg-and-apply- [...]
\ No newline at end of file
diff --git a/user-guide/latest/compatibility/expressions/spark-3.4/cast.html
b/user-guide/latest/compatibility/expressions/spark-3.4/cast.html
index b0a0308cc7..07f029b22c 100644
--- a/user-guide/latest/compatibility/expressions/spark-3.4/cast.html
+++ b/user-guide/latest/compatibility/expressions/spark-3.4/cast.html
@@ -1029,7 +1029,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1044,7 +1044,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1149,9 +1149,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1261,7 +1261,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1276,7 +1276,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1381,9 +1381,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1493,7 +1493,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1508,7 +1508,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1613,9 +1613,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
diff --git a/user-guide/latest/compatibility/expressions/spark-3.5/cast.html
b/user-guide/latest/compatibility/expressions/spark-3.5/cast.html
index 1355117203..88945b9106 100644
--- a/user-guide/latest/compatibility/expressions/spark-3.5/cast.html
+++ b/user-guide/latest/compatibility/expressions/spark-3.5/cast.html
@@ -1029,7 +1029,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1044,7 +1044,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1149,9 +1149,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1261,7 +1261,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1276,7 +1276,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1381,9 +1381,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1493,7 +1493,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1508,7 +1508,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1613,9 +1613,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
diff --git a/user-guide/latest/compatibility/expressions/spark-4.0/cast.html
b/user-guide/latest/compatibility/expressions/spark-4.0/cast.html
index 2aacfff086..1eeb178ee4 100644
--- a/user-guide/latest/compatibility/expressions/spark-4.0/cast.html
+++ b/user-guide/latest/compatibility/expressions/spark-4.0/cast.html
@@ -1029,7 +1029,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1044,7 +1044,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1149,9 +1149,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1261,7 +1261,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1276,7 +1276,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1381,9 +1381,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1493,7 +1493,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1508,7 +1508,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1613,9 +1613,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
diff --git a/user-guide/latest/compatibility/expressions/spark-4.1/cast.html
b/user-guide/latest/compatibility/expressions/spark-4.1/cast.html
index d32bb08c69..cee2d958f2 100644
--- a/user-guide/latest/compatibility/expressions/spark-4.1/cast.html
+++ b/user-guide/latest/compatibility/expressions/spark-4.1/cast.html
@@ -1029,7 +1029,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1044,7 +1044,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1149,9 +1149,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1261,7 +1261,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1276,7 +1276,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1381,9 +1381,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
@@ -1493,7 +1493,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
<td><p>C</p></td>
@@ -1508,7 +1508,7 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
<td><p>C</p></td>
<td><p>C</p></td>
<td><p>N/A</p></td>
-<td><p>I</p></td>
+<td><p>C</p></td>
<td><p>C</p></td>
<td><p>-</p></td>
<td><p>C</p></td>
@@ -1613,9 +1613,9 @@ as <code class="docutils literal notranslate"><span
class="pre">"1.23E+4&qu
</div>
<p><strong>Notes:</strong></p>
<ul class="simple">
-<li><p><strong>double -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>double -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>double -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
-<li><p><strong>float -> decimal</strong>: There can be rounding
differences</p></li>
+<li><p><strong>float -> decimal</strong>: Rounding matches Spark on JDK 19
and later. On older JDKs, Spark’s own result may differ for values whose
shortest decimal form falls exactly on a rounding tie</p></li>
<li><p><strong>float -> string</strong>: String formatting can differ for
floating-point values near precision limits or when scientific notation is
used</p></li>
<li><p><strong>string -> date</strong>: Only supports years between 262143
BC and 262142 AD</p></li>
</ul>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]