[FLINK-9742] [table] Add helper method to access private Expression.resultType.
This closes #6252. Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/5cb080cd Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/5cb080cd Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/5cb080cd Branch: refs/heads/master Commit: 5cb080cd785658fcb817a00f51e12d6fcbc78b33 Parents: 84fbbfe Author: Jungtaek Lim <kabh...@gmail.com> Authored: Thu Jul 5 21:57:46 2018 +0900 Committer: Fabian Hueske <fhue...@apache.org> Committed: Thu Jul 5 21:48:21 2018 +0200 ---------------------------------------------------------------------- .../apache/flink/table/expressions/ExpressionUtils.scala | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/5cb080cd/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionUtils.scala ---------------------------------------------------------------------- diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionUtils.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionUtils.scala index 013c8ac..e794d41 100644 --- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionUtils.scala +++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionUtils.scala @@ -22,13 +22,22 @@ import java.lang.{Boolean => JBoolean, Byte => JByte, Double => JDouble, Float = import java.math.{BigDecimal => JBigDecimal} import java.sql.{Date, Time, Timestamp} -import org.apache.flink.api.common.typeinfo.BasicTypeInfo +import org.apache.flink.api.common.typeinfo.{BasicTypeInfo, TypeInformation} import org.apache.flink.streaming.api.windowing.time.{Time => FlinkTime} import org.apache.flink.table.api.ValidationException import org.apache.flink.table.calcite.FlinkTypeFactory import org.apache.flink.table.typeutils.{RowIntervalTypeInfo, TimeIntervalTypeInfo} object ExpressionUtils { + /** + * Retrieve result type of given Expression. + * + * @param expr The expression which caller is interested about result type + * @return The result type of Expression + */ + def getResultType(expr: Expression): TypeInformation[_] = { + expr.resultType + } private[flink] def isTimeIntervalLiteral(expr: Expression): Boolean = expr match { case Literal(_, TimeIntervalTypeInfo.INTERVAL_MILLIS) => true