You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2026/09/18 17:10:00 UTC

[jira] [Updated] (SPARK-59643) Tighten CheckOverflow nullability to match MakeDecimal

     [ https://issues.apache.org/jira/browse/SPARK-59643?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ASF GitHub Bot updated SPARK-59643:
-----------------------------------
    Labels: pull-request-available  (was: )

> Tighten CheckOverflow nullability to match MakeDecimal
> ------------------------------------------------------
>
>                 Key: SPARK-59643
>                 URL: https://issues.apache.org/jira/browse/SPARK-59643
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 4.1.0
>         Environment: h2. Summary
> {{CheckOverflow}} declares {{override def nullable: Boolean = true}} unconditionally. Its sibling {{MakeDecimal}} (immediately above it in the same file, {{decimalExpressions.scala}}) already declares the accurate form {{override def nullable: Boolean = child.nullable || nullOnOverflow}} and guards its generated {{isNull}} assignment accordingly. {{CheckOverflow}} was simply never updated to match, so it over-declares nullability.
> h2. Why it matters
> {{CheckOverflow}} rounds a decimal to a target precision/scale; on overflow it returns {{null}} when {{nullOnOverflow}} is true and *throws* when it is false (ANSI). So the result is {{null}} only when the input is {{null}}, or when {{nullOnOverflow}} is true and an overflow occurs -- i.e. {{child.nullable || nullOnOverflow}}. Declaring it unconditionally nullable is inaccurate: under ANSI ({{nullOnOverflow = false}}), a decimal expression wrapped in {{CheckOverflow}} over non-nullable inputs is reported as nullable when it can never actually be null.
> h2. Changes
> In {{sql/catalyst/.../expressions/decimalExpressions.scala}}, aligning {{CheckOverflow}} with {{MakeDecimal}}
>            Reporter: David Mollitor
>            Priority: Trivial
>              Labels: pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org