[
https://issues.apache.org/jira/browse/SPARK-52575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gengliang Wang updated SPARK-52575:
-----------------------------------
Description:
Introduces a method to determine whether an expression can be folded without
relying on any external context (e.g., time zone, session configurations, or
catalogs). If an expression is context-independent foldable, it can be safely
evaluated during DDL operations such as creating tables, views, or constraints.
This enables systems to store the computed value rather than the original
expression, simplifying implementation and improving performance. By default,
expressions are not considered context-independent foldable to ensure explicit
annotation of context independence.
*Good examples (context-independent foldable):*
* 1 + 1
_Always produces 2, regardless of context._
* 1 > 0
_Always evaluates to true._
* CAST('2025-08-01' AS DATE)
_Always gives the same date value._
{*}Bad examples (not context-independent foldable):{*}{*}{*}
* CURRENT_DATE
_Result depends on the current date and time zone._
* CURRENT_USER
_Result depends on the session/user context._
* CAST('2025-08-01 00:00:00' AS TIMESTAMP)
_Result can vary depending on the session time zone setting_
was:
Introduces a method to determine whether an expression can be folded without
relying on any external context (e.g., time zone, session configurations, or
catalogs). If an expression is context-independent foldable, it can be safely
evaluated during DDL operations such as creating tables, views, or constraints.
This enables systems to store the computed value rather than the original
expression, simplifying implementation and improving performance. By default,
expressions are not considered context-independent foldable to ensure explicit
annotation of context independence.
{*}Good examples (context-independent foldable):{*}{*}{*}
* 1 + 1
_Always produces 2, regardless of context._
* 1 > 0
_Always evaluates to true._
* CAST('2025-08-01' AS DATE)
_Always gives the same date value._
{*}Bad examples (not context-independent foldable):{*}{*}{*}
* CURRENT_DATE
_Result depends on the current date and time zone._
* CURRENT_USER
_Result depends on the session/user context._
* CAST('2025-08-01 00:00:00' AS TIMESTAMP)
_Result can vary depending on the session time zone setting_
> Introduce contextIndependentFoldable attribute for Expressions
> --------------------------------------------------------------
>
> Key: SPARK-52575
> URL: https://issues.apache.org/jira/browse/SPARK-52575
> Project: Spark
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 4.1.0
> Reporter: Gengliang Wang
> Assignee: Gengliang Wang
> Priority: Major
>
> Introduces a method to determine whether an expression can be folded without
> relying on any external context (e.g., time zone, session configurations, or
> catalogs). If an expression is context-independent foldable, it can be safely
> evaluated during DDL operations such as creating tables, views, or
> constraints. This enables systems to store the computed value rather than the
> original expression, simplifying implementation and improving performance. By
> default, expressions are not considered context-independent foldable to
> ensure explicit annotation of context independence.
>
> *Good examples (context-independent foldable):*
> * 1 + 1
> _Always produces 2, regardless of context._
> * 1 > 0
> _Always evaluates to true._
> * CAST('2025-08-01' AS DATE)
> _Always gives the same date value._
>
> {*}Bad examples (not context-independent foldable):{*}{*}{*}
> * CURRENT_DATE
> _Result depends on the current date and time zone._
> * CURRENT_USER
> _Result depends on the session/user context._
> * CAST('2025-08-01 00:00:00' AS TIMESTAMP)
> _Result can vary depending on the session time zone setting_
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]