diff --git a/native-sql-engine/core/src/main/scala/com/intel/oap/expression/ColumnarLiterals.scala b/native-sql-engine/core/src/main/scala/com/intel/oap/expression/ColumnarLiterals.scala index 8afb7ebac..f1f40fd45 100644 --- a/native-sql-engine/core/src/main/scala/com/intel/oap/expression/ColumnarLiterals.scala +++ b/native-sql-engine/core/src/main/scala/com/intel/oap/expression/ColumnarLiterals.scala @@ -42,7 +42,7 @@ class ColumnarLiteral(lit: Literal) def buildCheck(): ArrowType = { val supportedTypes = - List(StringType, IntegerType, LongType, DoubleType, DateType, + List(StringType, IntegerType, LongType, DoubleType, FloatType, DateType, BooleanType, CalendarIntervalType, BinaryType, TimestampType) if (supportedTypes.indexOf(dataType) == -1 && !dataType.isInstanceOf[DecimalType]) { // Decimal is supported in ColumnarLiteral @@ -97,6 +97,13 @@ class ColumnarLiteral(lit: Literal) case _ => (TreeBuilder.makeLiteral(value.asInstanceOf[Integer]), resultType) } + case t: ShortType => + value match { + case null => + (TreeBuilder.makeNull(resultType), resultType) + case _ => + (TreeBuilder.makeLiteral(value.asInstanceOf[Integer]), resultType) + } case t: LongType => value match { case null => @@ -111,6 +118,13 @@ class ColumnarLiteral(lit: Literal) case _ => (TreeBuilder.makeLiteral(value.asInstanceOf[java.lang.Double]), resultType) } + case t: FloatType => + value match { + case null => + (TreeBuilder.makeNull(resultType), resultType) + case _ => + (TreeBuilder.makeLiteral(value.asInstanceOf[java.lang.Float]), resultType) + } case d: DecimalType => value match { case null =>