[ https://issues.apache.org/jira/browse/SPARK-18048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Priyanka Garg updated SPARK-18048:
----------------------------------
Description:
If expression behaves differently if true and false expression are interchanged in case of
different data types.
For eg.
checkEvaluation(
If(Literal.create(true, BooleanType),
Literal.create(identity(1), DateType),
Literal.create(identity(2L), TimestampType)),
identity(1)) is throwing error while
checkEvaluation(
If(Literal.create(true, BooleanType),
Literal.create(identity(1L), TimestampType),
Literal.create(identity(2), DateType)),
identity(1L)) works fine.
The reason for the same is that the If expression 's datatype only considers trueValue.dataType.
Also,
checkEvaluation(
If(Literal.create(true, BooleanType),
Literal.create(identity(1), DateType),
Literal.create(identity(2L), TimestampType)),
identity(1))
is breaking only in case of Generated mutable Projection and Unsafe projection. For all other
types its working fine.
Either both should work or none should work
was:
If expression behaves differently if true and false expression are interchanged in case of
different data types.
For eg.
If(Literal.create(geo != null, BooleanType),
Literal.create(null, DateType),
Literal.create(null, TimestampType)) is throwing error while
If(Literal.create(geo != null, BooleanType),
Literal.create(null, TimestampType),
Literal.create(null, DateType )) works fine.
The reason for the same is that the If expression 's datatype only considers trueValue.dataType.
Also,
If(Literal.create(geo != null, BooleanType),
Literal.create(null, DateType),
Literal.create(null, TimestampType))
is breaking only in case of Generated mutable Projection and Unsafe projection. For all other
types its working fine.
Either both should work or none should work
> If expression behaves differently if true and false expression are interchanged in case
of different data types.
> ----------------------------------------------------------------------------------------------------------------
>
> Key: SPARK-18048
> URL: https://issues.apache.org/jira/browse/SPARK-18048
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Reporter: Priyanka Garg
>
> If expression behaves differently if true and false expression are interchanged in case
of different data types.
> For eg.
> checkEvaluation(
> If(Literal.create(true, BooleanType),
> Literal.create(identity(1), DateType),
> Literal.create(identity(2L), TimestampType)),
> identity(1)) is throwing error while
> checkEvaluation(
> If(Literal.create(true, BooleanType),
> Literal.create(identity(1L), TimestampType),
> Literal.create(identity(2), DateType)),
> identity(1L)) works fine.
> The reason for the same is that the If expression 's datatype only considers trueValue.dataType.
> Also,
> checkEvaluation(
> If(Literal.create(true, BooleanType),
> Literal.create(identity(1), DateType),
> Literal.create(identity(2L), TimestampType)),
> identity(1))
> is breaking only in case of Generated mutable Projection and Unsafe projection. For
all other types its working fine.
> Either both should work or none should work
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org
|