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

Yang Jie updated SPARK-60029:
-----------------------------
    Description: 
A column DEFAULT that uses NULLIF or BETWEEN is rejected with 
INVALID_DEFAULT_VALUE.NOT_CONSTANT even when every argument is a literal, for 
example `CREATE TABLE t (id INT, c INT DEFAULT nullif(1, 3)) USING parquet` or 
`DEFAULT (1 + 1) BETWEEN 1 AND 3`, while `SELECT nullif(nullif(1, 2), 3)` 
returns 1.

NullIf and Between build a With expression unless 
spark.sql.alwaysInlineCommonExpr is set. ResolveDefaultColumnsUtil.analyze runs 
FinishAnalysis, whose ReplaceExpressions leaves that With in the default, and 
ConstantFolding, but not RewriteWithExpression; a With is not foldable, so the 
analyzed default is not foldable.

Raised in https://github.com/apache/spark/pull/59209#discussion_r4199845666


> A column DEFAULT using NULLIF or BETWEEN is rejected as not constant
> --------------------------------------------------------------------
>
>                 Key: SPARK-60029
>                 URL: https://issues.apache.org/jira/browse/SPARK-60029
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Yang Jie
>            Priority: Major
>
> A column DEFAULT that uses NULLIF or BETWEEN is rejected with 
> INVALID_DEFAULT_VALUE.NOT_CONSTANT even when every argument is a literal, for 
> example `CREATE TABLE t (id INT, c INT DEFAULT nullif(1, 3)) USING parquet` 
> or `DEFAULT (1 + 1) BETWEEN 1 AND 3`, while `SELECT nullif(nullif(1, 2), 3)` 
> returns 1.
> NullIf and Between build a With expression unless 
> spark.sql.alwaysInlineCommonExpr is set. ResolveDefaultColumnsUtil.analyze 
> runs FinishAnalysis, whose ReplaceExpressions leaves that With in the 
> default, and ConstantFolding, but not RewriteWithExpression; a With is not 
> foldable, so the analyzed default is not foldable.
> Raised in https://github.com/apache/spark/pull/59209#discussion_r4199845666



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to