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/06/26 08:45:25 UTC
flink git commit: [FLINK-6942] [table] Add E() support in Table API
Repository: flink
Updated Branches:
refs/heads/master 524a1fa0f -> 2d8203027
[FLINK-6942] [table] Add E() support in Table API
This closes #4181.
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/2d820302
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/2d820302
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/2d820302
Branch: refs/heads/master
Commit: 2d82030277da58040b24a14ff665a9356a4ee4b2
Parents: 524a1fa
Author: twalthr <tw...@apache.org>
Authored: Mon Jun 26 09:28:59 2017 +0200
Committer: twalthr <tw...@apache.org>
Committed: Mon Jun 26 10:38:12 2017 +0200
----------------------------------------------------------------------
docs/dev/table/tableApi.md | 22 ++++++++++++++++++++
.../flink/table/api/scala/expressionDsl.scala | 13 ++++++++++++
.../table/expressions/mathExpressions.scala | 11 ++++++++++
.../flink/table/validate/FunctionCatalog.scala | 1 +
.../table/expressions/ScalarFunctionsTest.scala | 8 +++++--
5 files changed, 53 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/2d820302/docs/dev/table/tableApi.md
----------------------------------------------------------------------
diff --git a/docs/dev/table/tableApi.md b/docs/dev/table/tableApi.md
index 34cee24..02f3432 100644
--- a/docs/dev/table/tableApi.md
+++ b/docs/dev/table/tableApi.md
@@ -2071,6 +2071,17 @@ pi()
<tr>
<td>
{% highlight java %}
+e()
+{% endhighlight %}
+ </td>
+ <td>
+ <p>Returns a value that is closer than any other value to e.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ {% highlight java %}
rand()
{% endhighlight %}
</td>
@@ -3323,6 +3334,17 @@ pi()
<tr>
<td>
{% highlight scala %}
+e()
+{% endhighlight %}
+ </td>
+ <td>
+ <p>Returns a value that is closer than any other value to e.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ {% highlight scala %}
rand()
{% endhighlight %}
</td>
http://git-wip-us.apache.org/repos/asf/flink/blob/2d820302/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/scala/expressionDsl.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/scala/expressionDsl.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/scala/expressionDsl.scala
index 0fb940f..9370c57 100644
--- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/scala/expressionDsl.scala
+++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/scala/expressionDsl.scala
@@ -924,6 +924,19 @@ object pi {
}
/**
+ * Returns a value that is closer than any other value to e.
+ */
+object e {
+
+ /**
+ * Returns a value that is closer than any other value to e.
+ */
+ def apply(): Expression = {
+ E()
+ }
+}
+
+/**
* Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive).
*/
object rand {
http://git-wip-us.apache.org/repos/asf/flink/blob/2d820302/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/mathExpressions.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/mathExpressions.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/mathExpressions.scala
index f78d917..3f8085b 100644
--- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/mathExpressions.scala
+++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/mathExpressions.scala
@@ -22,6 +22,7 @@ import org.apache.calcite.sql.fun.SqlStdOperatorTable
import org.apache.calcite.tools.RelBuilder
import org.apache.flink.api.common.typeinfo.BasicTypeInfo._
import org.apache.flink.api.common.typeinfo.{BasicTypeInfo, TypeInformation}
+import org.apache.flink.table.functions.sql.ScalarSqlFunctions
import org.apache.flink.table.typeutils.TypeCheckUtils
import org.apache.flink.table.validate._
@@ -287,6 +288,16 @@ case class Pi() extends LeafExpression {
}
}
+case class E() extends LeafExpression {
+ override private[flink] def resultType: TypeInformation[_] = DOUBLE_TYPE_INFO
+
+ override def toString: String = s"e()"
+
+ override private[flink] def toRexNode(implicit relBuilder: RelBuilder): RexNode = {
+ relBuilder.call(ScalarSqlFunctions.E)
+ }
+}
+
case class Rand(seed: Expression) extends Expression with InputTypeSpec {
def this() = this(null)
http://git-wip-us.apache.org/repos/asf/flink/blob/2d820302/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/validate/FunctionCatalog.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/validate/FunctionCatalog.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/validate/FunctionCatalog.scala
index 4bc6364..6d3006d 100644
--- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/validate/FunctionCatalog.scala
+++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/validate/FunctionCatalog.scala
@@ -223,6 +223,7 @@ object FunctionCatalog {
"sign" -> classOf[Sign],
"round" -> classOf[Round],
"pi" -> classOf[Pi],
+ "e" -> classOf[E],
"rand" -> classOf[Rand],
"randInteger" -> classOf[RandInteger],
http://git-wip-us.apache.org/repos/asf/flink/blob/2d820302/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala
index b684108..d4c2a45 100644
--- a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala
+++ b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala
@@ -1149,11 +1149,15 @@ class ScalarFunctionsTest extends ExpressionTestBase {
@Test
def testE(): Unit = {
- testSqlApi(
+ testAllApis(
+ e(),
+ "E()",
"E()",
math.E.toString)
- testSqlApi(
+ testAllApis(
+ e(),
+ "e()",
"e()",
math.E.toString)
}