Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix hive tests
  • Loading branch information
cloud-fan committed Jun 1, 2015
commit c71d02cedd0dd60c24b1f5b8a6ab5eb22ba27477
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ class TypeCheckResult(val errorMessage: String) extends AnyVal {
object TypeCheckResult {
val success: TypeCheckResult = new TypeCheckResult(null)
def fail(msg: String): TypeCheckResult = new TypeCheckResult(msg)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -172,17 +172,6 @@ case class Or(left: Expression, right: Expression)
abstract class BinaryComparison extends BinaryExpression with Predicate {
self: Product =>

override def checkInputDataTypes: TypeCheckResult = {
if (left.dataType != right.dataType) {
TypeCheckResult.fail(
s"differing types in BinaryComparisons -- ${left.dataType}, ${right.dataType}")
} else {
checkTypesInternal(left.dataType)
}
}

protected def checkTypesInternal(t: DataType): TypeCheckResult = TypeCheckResult.success

override def eval(input: Row): Any = {
val evalE1 = left.eval(input)
if(evalE1 == null) {
Expand Down Expand Up @@ -231,8 +220,10 @@ case class EqualNullSafe(left: Expression, right: Expression) extends BinaryComp
case class LessThan(left: Expression, right: Expression) extends BinaryComparison {
override def symbol: String = "<"

override protected def checkTypesInternal(t: DataType) = {
if (TypeUtils.validForOrderingExpr(t)) {
override def checkInputDataTypes: TypeCheckResult = {
if (left.dataType != right.dataType) {
TypeCheckResult.fail("types do not match -- ${left.dataType} != ${right.dataType}")
} else if (TypeUtils.validForOrderingExpr(left.dataType)) {
TypeCheckResult.success
} else {
TypeCheckResult.fail("todo")
Expand All @@ -247,8 +238,10 @@ case class LessThan(left: Expression, right: Expression) extends BinaryCompariso
case class LessThanOrEqual(left: Expression, right: Expression) extends BinaryComparison {
override def symbol: String = "<="

override protected def checkTypesInternal(t: DataType) = {
if (TypeUtils.validForOrderingExpr(t)) {
override def checkInputDataTypes: TypeCheckResult = {
if (left.dataType != right.dataType) {
TypeCheckResult.fail("types do not match -- ${left.dataType} != ${right.dataType}")
} else if (TypeUtils.validForOrderingExpr(left.dataType)) {
TypeCheckResult.success
} else {
TypeCheckResult.fail("todo")
Expand All @@ -263,8 +256,10 @@ case class LessThanOrEqual(left: Expression, right: Expression) extends BinaryCo
case class GreaterThan(left: Expression, right: Expression) extends BinaryComparison {
override def symbol: String = ">"

override protected def checkTypesInternal(t: DataType) = {
if (TypeUtils.validForOrderingExpr(t)) {
override def checkInputDataTypes: TypeCheckResult = {
if (left.dataType != right.dataType) {
TypeCheckResult.fail("types do not match -- ${left.dataType} != ${right.dataType}")
} else if (TypeUtils.validForOrderingExpr(left.dataType)) {
TypeCheckResult.success
} else {
TypeCheckResult.fail("todo")
Expand All @@ -279,8 +274,10 @@ case class GreaterThan(left: Expression, right: Expression) extends BinaryCompar
case class GreaterThanOrEqual(left: Expression, right: Expression) extends BinaryComparison {
override def symbol: String = ">="

override protected def checkTypesInternal(t: DataType) = {
if (TypeUtils.validForOrderingExpr(t)) {
override def checkInputDataTypes: TypeCheckResult = {
if (left.dataType != right.dataType) {
TypeCheckResult.fail("types do not match -- ${left.dataType} != ${right.dataType}")
} else if (TypeUtils.validForOrderingExpr(left.dataType)) {
TypeCheckResult.success
} else {
TypeCheckResult.fail("todo")
Expand Down