You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tw...@apache.org on 2017/05/22 17:00:46 UTC

flink git commit: [FLINK-6632] [table] Improved the method BoolLiteral of ExpressionParser for case insensitive.

Repository: flink
Updated Branches:
  refs/heads/master a7bc5de9b -> 9a9e193a1


[FLINK-6632] [table] Improved the method BoolLiteral of ExpressionParser for case insensitive.

This closes #3944.


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/9a9e193a
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/9a9e193a
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/9a9e193a

Branch: refs/heads/master
Commit: 9a9e193a1edf335c89804dc3643fc02681570821
Parents: a7bc5de
Author: sunjincheng121 <su...@gmail.com>
Authored: Fri May 19 18:24:09 2017 +0800
Committer: twalthr <tw...@apache.org>
Committed: Mon May 22 19:00:19 2017 +0200

----------------------------------------------------------------------
 .../table/expressions/ExpressionParser.scala    | 52 +++++++++++++-------
 .../stringexpr/CalcStringExpressionTest.scala   |  4 +-
 .../table/expressions/ScalarOperatorsTest.scala | 19 +++++++
 3 files changed, 56 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/9a9e193a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionParser.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionParser.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionParser.scala
index f995a96..e1ffb33 100644
--- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionParser.scala
+++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/ExpressionParser.scala
@@ -82,6 +82,24 @@ object ExpressionParser extends JavaTokenParsers with PackratParsers {
   lazy val UNBOUNDED_RANGE: Keyword = Keyword("unbounded_range")
   lazy val ROWTIME: Keyword = Keyword("rowtime")
   lazy val PROCTIME: Keyword = Keyword("proctime")
+  lazy val TRUE: Keyword = Keyword("true")
+  lazy val FALSE: Keyword = Keyword("false")
+  lazy val PRIMITIVE_ARRAY: Keyword = Keyword("PRIMITIVE_ARRAY")
+  lazy val OBJECT_ARRAY: Keyword = Keyword("OBJECT_ARRAY")
+  lazy val BYTE: Keyword = Keyword("BYTE")
+  lazy val SHORT: Keyword = Keyword("SHORT")
+  lazy val INTERVAL_MONTHS: Keyword = Keyword("INTERVAL_MONTHS")
+  lazy val INTERVAL_MILLIS: Keyword = Keyword("INTERVAL_MILLIS")
+  lazy val INT: Keyword = Keyword("INT")
+  lazy val LONG: Keyword = Keyword("LONG")
+  lazy val FLOAT: Keyword = Keyword("FLOAT")
+  lazy val DOUBLE: Keyword = Keyword("DOUBLE")
+  lazy val BOOLEAN: Keyword = Keyword("BOOLEAN")
+  lazy val STRING: Keyword = Keyword("STRING")
+  lazy val SQL_DATE: Keyword = Keyword("SQL_DATE")
+  lazy val SQL_TIMESTAMP: Keyword = Keyword("SQL_TIMESTAMP")
+  lazy val SQL_TIME: Keyword = Keyword("SQL_TIME")
+  lazy val DECIMAL: Keyword = Keyword("DECIMAL")
 
   def functionIdent: ExpressionParser.Parser[String] = super.ident
 
@@ -121,22 +139,22 @@ object ExpressionParser extends JavaTokenParsers with PackratParsers {
   // data types
 
   lazy val dataType: PackratParser[TypeInformation[_]] =
-    "PRIMITIVE_ARRAY" ~ "(" ~> dataType <~ ")" ^^ { ct => Types.PRIMITIVE_ARRAY(ct) } |
-    "OBJECT_ARRAY" ~ "(" ~> dataType <~ ")" ^^ { ct => Types.OBJECT_ARRAY(ct) } |
-    "BYTE" ^^ { e => Types.BYTE } |
-    "SHORT" ^^ { e => Types.SHORT } |
-    "INTERVAL_MONTHS" ^^ { e => Types.INTERVAL_MONTHS } |
-    "INTERVAL_MILLIS" ^^ { e => Types.INTERVAL_MILLIS } |
-    "INT" ^^ { e => Types.INT } |
-    "LONG" ^^ { e => Types.LONG } |
-    "FLOAT" ^^ { e => Types.FLOAT } |
-    "DOUBLE" ^^ { e => Types.DOUBLE } |
-    "BOOLEAN" ^^ { { e => Types.BOOLEAN } } |
-    "STRING" ^^ { e => Types.STRING } |
-    "SQL_DATE" ^^ { e => Types.SQL_DATE } |
-    "SQL_TIMESTAMP" ^^ { e => Types.SQL_TIMESTAMP } |
-    "SQL_TIME" ^^ { e => Types.SQL_TIME } |
-    "DECIMAL" ^^ { e => Types.DECIMAL }
+    PRIMITIVE_ARRAY ~ "(" ~> dataType <~ ")" ^^ { ct => Types.PRIMITIVE_ARRAY(ct) } |
+    OBJECT_ARRAY ~ "(" ~> dataType <~ ")" ^^ { ct => Types.OBJECT_ARRAY(ct) } |
+    BYTE ^^ { e => Types.BYTE } |
+    SHORT ^^ { e => Types.SHORT } |
+    INTERVAL_MONTHS ^^ { e => Types.INTERVAL_MONTHS } |
+    INTERVAL_MILLIS ^^ { e => Types.INTERVAL_MILLIS } |
+    INT ^^ { e => Types.INT } |
+    LONG ^^ { e => Types.LONG } |
+    FLOAT ^^ { e => Types.FLOAT } |
+    DOUBLE ^^ { e => Types.DOUBLE } |
+    BOOLEAN ^^ { { e => Types.BOOLEAN } } |
+    STRING ^^ { e => Types.STRING } |
+    SQL_DATE ^^ { e => Types.SQL_DATE } |
+    SQL_TIMESTAMP ^^ { e => Types.SQL_TIMESTAMP } |
+    SQL_TIME ^^ { e => Types.SQL_TIME } |
+    DECIMAL ^^ { e => Types.DECIMAL }
 
   // literals
 
@@ -167,7 +185,7 @@ object ExpressionParser extends JavaTokenParsers with PackratParsers {
     str => Literal(str.substring(1, str.length - 1))
   }
 
-  lazy val boolLiteral: PackratParser[Expression] = ("true" | "false") ^^ {
+  lazy val boolLiteral: PackratParser[Expression] = (TRUE | FALSE) ^^ {
     str => Literal(str.toBoolean)
   }
 

http://git-wip-us.apache.org/repos/asf/flink/blob/9a9e193a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/api/scala/batch/table/stringexpr/CalcStringExpressionTest.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/api/scala/batch/table/stringexpr/CalcStringExpressionTest.scala b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/api/scala/batch/table/stringexpr/CalcStringExpressionTest.scala
index 819d6d4..381b8c8 100644
--- a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/api/scala/batch/table/stringexpr/CalcStringExpressionTest.scala
+++ b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/api/scala/batch/table/stringexpr/CalcStringExpressionTest.scala
@@ -112,7 +112,7 @@ class CalcStringExpressionTest {
     val ds = CollectionDataSets.get3TupleDataSet(env).toTable(tEnv, 'a, 'b, 'c)
 
     val t1 = ds.filter( Literal(false) )
-    val t2 = ds.filter("false")
+    val t2 = ds.filter("faLsE")
 
     val lPlan1 = t1.logicalPlan
     val lPlan2 = t2.logicalPlan
@@ -128,7 +128,7 @@ class CalcStringExpressionTest {
     val ds = CollectionDataSets.get3TupleDataSet(env).toTable(tEnv, 'a, 'b, 'c)
 
     val t1 = ds.filter( Literal(true) )
-    val t2 = ds.filter("true")
+    val t2 = ds.filter("trUe")
 
     val lPlan1 = t1.logicalPlan
     val lPlan2 = t2.logicalPlan

http://git-wip-us.apache.org/repos/asf/flink/blob/9a9e193a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala
index 1a65806..0639835 100644
--- a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala
+++ b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala
@@ -138,6 +138,25 @@ class ScalarOperatorsTest extends ExpressionTestBase {
 
   @Test
   def testOtherExpressions(): Unit = {
+    // boolean literals
+    testAllApis(
+      true,
+      "true",
+      "true",
+      "true")
+
+    testAllApis(
+      false,
+      "False",
+      "fAlse",
+      "false")
+
+    testAllApis(
+      true,
+      "TrUe",
+      "tRuE",
+      "true")
+
     // null
     testAllApis(Null(Types.INT), "Null(INT)", "CAST(NULL AS INT)", "null")
     testAllApis(