@@ -172,17 +172,6 @@ case class Or(left: Expression, right: Expression)
172
172
abstract class BinaryComparison extends BinaryExpression with Predicate {
173
173
self : Product =>
174
174
175
- override def checkInputDataTypes : TypeCheckResult = {
176
- if (left.dataType != right.dataType) {
177
- TypeCheckResult .fail(
178
- s " differing types in BinaryComparisons -- ${left.dataType}, ${right.dataType}" )
179
- } else {
180
- checkTypesInternal(left.dataType)
181
- }
182
- }
183
-
184
- protected def checkTypesInternal (t : DataType ): TypeCheckResult = TypeCheckResult .success
185
-
186
175
override def eval (input : Row ): Any = {
187
176
val evalE1 = left.eval(input)
188
177
if (evalE1 == null ) {
@@ -231,8 +220,10 @@ case class EqualNullSafe(left: Expression, right: Expression) extends BinaryComp
231
220
case class LessThan (left : Expression , right : Expression ) extends BinaryComparison {
232
221
override def symbol : String = " <"
233
222
234
- override protected def checkTypesInternal (t : DataType ) = {
235
- if (TypeUtils .validForOrderingExpr(t)) {
223
+ override def checkInputDataTypes : TypeCheckResult = {
224
+ if (left.dataType != right.dataType) {
225
+ TypeCheckResult .fail(" types do not match -- ${left.dataType} != ${right.dataType}" )
226
+ } else if (TypeUtils .validForOrderingExpr(left.dataType)) {
236
227
TypeCheckResult .success
237
228
} else {
238
229
TypeCheckResult .fail(" todo" )
@@ -247,8 +238,10 @@ case class LessThan(left: Expression, right: Expression) extends BinaryCompariso
247
238
case class LessThanOrEqual (left : Expression , right : Expression ) extends BinaryComparison {
248
239
override def symbol : String = " <="
249
240
250
- override protected def checkTypesInternal (t : DataType ) = {
251
- if (TypeUtils .validForOrderingExpr(t)) {
241
+ override def checkInputDataTypes : TypeCheckResult = {
242
+ if (left.dataType != right.dataType) {
243
+ TypeCheckResult .fail(" types do not match -- ${left.dataType} != ${right.dataType}" )
244
+ } else if (TypeUtils .validForOrderingExpr(left.dataType)) {
252
245
TypeCheckResult .success
253
246
} else {
254
247
TypeCheckResult .fail(" todo" )
@@ -263,8 +256,10 @@ case class LessThanOrEqual(left: Expression, right: Expression) extends BinaryCo
263
256
case class GreaterThan (left : Expression , right : Expression ) extends BinaryComparison {
264
257
override def symbol : String = " >"
265
258
266
- override protected def checkTypesInternal (t : DataType ) = {
267
- if (TypeUtils .validForOrderingExpr(t)) {
259
+ override def checkInputDataTypes : TypeCheckResult = {
260
+ if (left.dataType != right.dataType) {
261
+ TypeCheckResult .fail(" types do not match -- ${left.dataType} != ${right.dataType}" )
262
+ } else if (TypeUtils .validForOrderingExpr(left.dataType)) {
268
263
TypeCheckResult .success
269
264
} else {
270
265
TypeCheckResult .fail(" todo" )
@@ -279,8 +274,10 @@ case class GreaterThan(left: Expression, right: Expression) extends BinaryCompar
279
274
case class GreaterThanOrEqual (left : Expression , right : Expression ) extends BinaryComparison {
280
275
override def symbol : String = " >="
281
276
282
- override protected def checkTypesInternal (t : DataType ) = {
283
- if (TypeUtils .validForOrderingExpr(t)) {
277
+ override def checkInputDataTypes : TypeCheckResult = {
278
+ if (left.dataType != right.dataType) {
279
+ TypeCheckResult .fail(" types do not match -- ${left.dataType} != ${right.dataType}" )
280
+ } else if (TypeUtils .validForOrderingExpr(left.dataType)) {
284
281
TypeCheckResult .success
285
282
} else {
286
283
TypeCheckResult .fail(" todo" )
0 commit comments