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"
+ }
}