[
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: [email protected]
For additional commands, e-mail: [email protected]