You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by al...@apache.org on 2015/05/15 19:40:51 UTC

flink git commit: [FLINK-1990] Support upper case of `as` for expression

Repository: flink
Updated Branches:
  refs/heads/master 1698f7e0a -> 6dd241d3b


[FLINK-1990] Support upper case of `as` for expression

This closes #667


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

Branch: refs/heads/master
Commit: 6dd241d3bb7b0d057c04187bc114313f9c9e1937
Parents: 1698f7e
Author: Cheng Hao <ch...@gmail.com>
Authored: Wed May 13 22:29:54 2015 +0800
Committer: Aljoscha Krettek <al...@gmail.com>
Committed: Fri May 15 19:39:16 2015 +0200

----------------------------------------------------------------------
 .../flink/api/table/parser/ExpressionParser.scala       | 12 +++++++++++-
 .../flink/api/scala/table/test/ExpressionsITCase.scala  | 12 ++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/6dd241d3/flink-staging/flink-table/src/main/scala/org/apache/flink/api/table/parser/ExpressionParser.scala
----------------------------------------------------------------------
diff --git a/flink-staging/flink-table/src/main/scala/org/apache/flink/api/table/parser/ExpressionParser.scala b/flink-staging/flink-table/src/main/scala/org/apache/flink/api/table/parser/ExpressionParser.scala
index 7637146..1586f50 100644
--- a/flink-staging/flink-table/src/main/scala/org/apache/flink/api/table/parser/ExpressionParser.scala
+++ b/flink-staging/flink-table/src/main/scala/org/apache/flink/api/table/parser/ExpressionParser.scala
@@ -33,6 +33,16 @@ import scala.util.parsing.combinator.{PackratParsers, JavaTokenParsers}
  * lazy valined in the above files.
  */
 object ExpressionParser extends JavaTokenParsers with PackratParsers {
+  case class Keyword(key: String)
+
+  // Convert the keyword into an case insensitive Parser
+  implicit def keyword2Parser(kw: Keyword): Parser[String] = {
+    ("""(?i)\Q""" + kw.key + """\E""").r
+  }
+
+  // KeyWord
+
+  lazy val AS: Keyword = Keyword("as")
 
   // Literals
 
@@ -176,7 +186,7 @@ object ExpressionParser extends JavaTokenParsers with PackratParsers {
 
   // alias
 
-  lazy val alias: PackratParser[Expression] = logic ~ "as" ~ fieldReference ^^ {
+  lazy val alias: PackratParser[Expression] = logic ~ AS ~ fieldReference ^^ {
     case e ~ _ ~ name => Naming(e, name.name)
   } | logic
 

http://git-wip-us.apache.org/repos/asf/flink/blob/6dd241d3/flink-staging/flink-table/src/test/scala/org/apache/flink/api/scala/table/test/ExpressionsITCase.scala
----------------------------------------------------------------------
diff --git a/flink-staging/flink-table/src/test/scala/org/apache/flink/api/scala/table/test/ExpressionsITCase.scala b/flink-staging/flink-table/src/test/scala/org/apache/flink/api/scala/table/test/ExpressionsITCase.scala
index 51dc428..8c60acf 100644
--- a/flink-staging/flink-table/src/test/scala/org/apache/flink/api/scala/table/test/ExpressionsITCase.scala
+++ b/flink-staging/flink-table/src/test/scala/org/apache/flink/api/scala/table/test/ExpressionsITCase.scala
@@ -123,5 +123,17 @@ class ExpressionsITCase(mode: TestExecutionMode) extends MultipleProgramsTestBas
     expected = "1,7,6,-4"
   }
 
+  @Test
+  def testCaseInsensitiveForAs: Unit = {
+
+    val env = ExecutionEnvironment.getExecutionEnvironment
+
+    val ds = env.fromElements((3, 5.toByte)).as('a, 'b)
+      .groupBy("a").select("a, a.count As cnt")
+
+    ds.writeAsText(resultPath, WriteMode.OVERWRITE)
+    env.execute()
+    expected = "3,1"
+  }
 
 }