Skip to content

docs: document negative zero cast-to-string incompatibility#3811

Merged
andygrove merged 2 commits intoapache:mainfrom
andygrove:doc-negative-zero-cast-compat
Mar 27, 2026
Merged

docs: document negative zero cast-to-string incompatibility#3811
andygrove merged 2 commits intoapache:mainfrom
andygrove:doc-negative-zero-cast-compat

Conversation

@andygrove
Copy link
Copy Markdown
Member

Which issue does this PR close?

Closes #1036

Rationale for this change

When casting floating-point negative zero (-0.0) to string, Spark normalizes it to "0.0" but Comet produces "-0.0". Rather than fixing this edge case (which involves complexities deep in the native execution pipeline), we document it in the compatibility guide since negative zero and positive zero are semantically equivalent in IEEE 754.

What changes are included in this PR?

Adds a "Negative Zero" subsection under the Cast section of the compatibility guide explaining this behavior difference and linking to the tracking issue.

How are these changes tested?

Documentation-only change.

Add tracking issue links to Incompatible() declarations that were missing them for ArraysOverlap, ArrayUnion, and TimestampNTZ casts.
Document in the compatibility guide that casting floating-point negative zero to string may produce "-0.0" in Comet instead of "0.0" as in Spark. This is a minor edge case since -0.0 and 0.0 are semantically equivalent in IEEE 754. Closes apache#1036
Copy link
Copy Markdown
Contributor

@comphead comphead left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @andygrove

@andygrove andygrove merged commit 7a87461 into apache:main Mar 27, 2026
161 checks passed
@andygrove andygrove deleted the doc-negative-zero-cast-compat branch March 27, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants