Skip to content

Commit eed35fc

Browse files
committed
bug in casewhen resolve
1 parent e70aff6 commit eed35fc

12 files changed

+21
-1
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,11 @@ case class CaseWhen(branches: Seq[Expression]) extends Expression {
265265
false
266266
} else {
267267
val allCondBooleans = predicates.forall(_.dataType == BooleanType)
268-
val dataTypesEqual = values.map(_.dataType).distinct.size <= 1
268+
val valueTypes = branches.sliding(2, 2).map {
269+
case Seq(_, value) => value.dataType
270+
case Seq(elseVal) => elseVal.dataType
271+
}.toSeq
272+
val dataTypesEqual = valueTypes.distinct.size <= 1
269273
allCondBooleans && dataTypesEqual
270274
}
271275
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.0
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
NULL
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
NULL
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
NULL
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
NULL

0 commit comments

Comments
 (0)