Repository: flink Updated Branches: refs/heads/master 239168316 -> 130511ffc
[FLINK-4070] [table] Support literals on left side of binary expressions This closes #2120. Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/130511ff Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/130511ff Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/130511ff Branch: refs/heads/master Commit: 130511ffc379e3096baf5e8f19bd34c4e508b3f7 Parents: 2391683 Author: Jark Wu <wuchong...@alibaba-inc.com> Authored: Fri Jun 17 11:39:21 2016 +0800 Committer: twalthr <twal...@apache.org> Committed: Wed Jul 20 15:01:47 2016 +0200 ---------------------------------------------------------------------- .../org/apache/flink/api/scala/table/expressionDsl.scala | 11 ++++++++++- .../flink/api/scala/batch/table/ExpressionsITCase.scala | 8 ++++---- 2 files changed, 14 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/130511ff/flink-libraries/flink-table/src/main/scala/org/apache/flink/api/scala/table/expressionDsl.scala ---------------------------------------------------------------------- diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/api/scala/table/expressionDsl.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/api/scala/table/expressionDsl.scala index c4287b6..c67b29b 100644 --- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/api/scala/table/expressionDsl.scala +++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/api/scala/table/expressionDsl.scala @@ -32,7 +32,16 @@ import org.apache.flink.api.table.expressions._ * [[org.apache.flink.api.table.expressions.ExpressionParser]]. */ trait ImplicitExpressionOperations { - def expr: Expression + private[flink] def expr: Expression + + /** + * Enables literals on left side of binary expressions. + * + * e.g. 12.toExpr % 'a + * + * @return expression + */ + def toExpr: Expression = expr def && (other: Expression) = And(expr, other) def || (other: Expression) = Or(expr, other) http://git-wip-us.apache.org/repos/asf/flink/blob/130511ff/flink-libraries/flink-table/src/test/scala/org/apache/flink/api/scala/batch/table/ExpressionsITCase.scala ---------------------------------------------------------------------- diff --git a/flink-libraries/flink-table/src/test/scala/org/apache/flink/api/scala/batch/table/ExpressionsITCase.scala b/flink-libraries/flink-table/src/test/scala/org/apache/flink/api/scala/batch/table/ExpressionsITCase.scala index 3c3719a..7439b76 100644 --- a/flink-libraries/flink-table/src/test/scala/org/apache/flink/api/scala/batch/table/ExpressionsITCase.scala +++ b/flink-libraries/flink-table/src/test/scala/org/apache/flink/api/scala/batch/table/ExpressionsITCase.scala @@ -50,9 +50,9 @@ class ExpressionsITCase( val tEnv = TableEnvironment.getTableEnvironment(env, config) val t = env.fromElements((5, 10)).toTable(tEnv, 'a, 'b) - .select('a - 5, 'a + 5, 'a / 2, 'a * 2, 'a % 2, -'a) + .select('a - 5, 'a + 5, 'a / 2, 'a * 2, 'a % 2, -'a, 3.toExpr + 'a) - val expected = "0,10,2,10,1,-5" + val expected = "0,10,2,10,1,-5,8" val results = t.toDataSet[Row].collect() TestBaseUtils.compareResultAsText(results.asJava, expected) } @@ -78,9 +78,9 @@ class ExpressionsITCase( val tEnv = TableEnvironment.getTableEnvironment(env, config) val t = env.fromElements((5, 5, 4)).toTable(tEnv, 'a, 'b, 'c) - .select('a > 'c, 'a >= 'b, 'a < 'c, 'a.isNull, 'a.isNotNull) + .select('a > 'c, 'a >= 'b, 'a < 'c, 'a.isNull, 'a.isNotNull, 12.toExpr <= 'a) - val expected = "true,true,false,false,true" + val expected = "true,true,false,false,true,false" val results = t.toDataSet[Row].collect() TestBaseUtils.compareResultAsText(results.asJava, expected) }