[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

Reply via email to