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 2018/08/02 16:17:15 UTC
[flink] branch master updated: [FLINK-6846] [table] Deprecate
quarter() in Table API
This is an automated email from the ASF dual-hosted git repository.
twalthr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 94ca19e [FLINK-6846] [table] Deprecate quarter() in Table API
94ca19e is described below
commit 94ca19e6195dfc44c519aeaf4c31f8c2bd2535d2
Author: Timo Walther <tw...@apache.org>
AuthorDate: Thu Aug 2 16:39:46 2018 +0200
[FLINK-6846] [table] Deprecate quarter() in Table API
---
docs/dev/table/tableApi.md | 26 ++--------------------
.../flink/table/api/scala/expressionDsl.scala | 4 ++++
.../apache/flink/table/expressions/symbols.scala | 1 +
.../org/apache/flink/table/expressions/time.scala | 1 +
.../table/expressions/ScalarFunctionsTest.scala | 20 ++++++++++-------
5 files changed, 20 insertions(+), 32 deletions(-)
diff --git a/docs/dev/table/tableApi.md b/docs/dev/table/tableApi.md
index 9abe17f..bd9d286 100644
--- a/docs/dev/table/tableApi.md
+++ b/docs/dev/table/tableApi.md
@@ -2783,7 +2783,7 @@ TEMPORAL.extract(TIMEINTERVALUNIT)
{% endhighlight %}
</td>
<td>
- <p>Extracts parts of a time point or time interval. Returns the part as a long value. E.g. <code>'2006-06-05'.toDate.extract(DAY)</code> leads to 5.</p>
+ <p>Extracts parts of a time point or time interval. Returns the part as a long value. E.g. <code>'2006-06-05'.toDate.extract(DAY)</code> leads to 5 or <code>'2006-06-05'.toDate.extract(QUARTER)</code> leads to 2.</p>
</td>
</tr>
@@ -2812,17 +2812,6 @@ TIMEPOINT.ceil(TIMEINTERVALUNIT)
<tr>
<td>
{% highlight java %}
-DATE.quarter()
-{% endhighlight %}
- </td>
- <td>
- <p>Returns the quarter of a year from a SQL date. E.g. <code>'1994-09-27'.toDate.quarter()</code> leads to 3.</p>
- </td>
- </tr>
-
- <tr>
- <td>
- {% highlight java %}
temporalOverlaps(TIMEPOINT, TEMPORAL, TIMEPOINT, TEMPORAL)
{% endhighlight %}
</td>
@@ -4311,7 +4300,7 @@ TEMPORAL.extract(TimeIntervalUnit)
{% endhighlight %}
</td>
<td>
- <p>Extracts parts of a time point or time interval. Returns the part as a long value. E.g. <code>"2006-06-05".toDate.extract(TimeIntervalUnit.DAY)</code> leads to 5.</p>
+ <p>Extracts parts of a time point or time interval. Returns the part as a long value. E.g. <code>"2006-06-05".toDate.extract(TimeIntervalUnit.DAY)</code> leads to 5 or <code>'2006-06-05'.toDate.extract(QUARTER)</code> leads to 2.</p>
</td>
</tr>
@@ -4340,17 +4329,6 @@ TIMEPOINT.ceil(TimeIntervalUnit)
<tr>
<td>
{% highlight scala %}
-DATE.quarter()
-{% endhighlight %}
- </td>
- <td>
- <p>Returns the quarter of a year from a SQL date. E.g. <code>"1994-09-27".toDate.quarter()</code> leads to 3.</p>
- </td>
- </tr>
-
- <tr>
- <td>
- {% highlight scala %}
temporalOverlaps(TIMEPOINT, TEMPORAL, TIMEPOINT, TEMPORAL)
{% endhighlight %}
</td>
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 8aa5f8a..91d72ce 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
@@ -577,7 +577,11 @@ trait ImplicitExpressionOperations {
* Returns the quarter of a year from a SQL date.
*
* e.g. "1994-09-27".toDate.quarter() leads to 3
+ *
+ * @deprecated This method will be used for describing an interval of months in future versions.
+ * Use `extract(TimeIntervalUnit.QUARTER)` instead.
*/
+ @deprecated
def quarter() = Quarter(expr)
/**
diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/symbols.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/symbols.scala
index 4faf8d3..ec127e2 100644
--- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/symbols.scala
+++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/symbols.scala
@@ -85,6 +85,7 @@ object TimeIntervalUnit extends TableSymbols {
val YEAR = Value(TimeUnitRange.YEAR)
val YEAR_TO_MONTH = Value(TimeUnitRange.YEAR_TO_MONTH)
val MONTH = Value(TimeUnitRange.MONTH)
+ val QUARTER = Value(TimeUnitRange.QUARTER)
val DAY = Value(TimeUnitRange.DAY)
val DAY_TO_HOUR = Value(TimeUnitRange.DAY_TO_HOUR)
val DAY_TO_MINUTE = Value(TimeUnitRange.DAY_TO_MINUTE)
diff --git a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/time.scala b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/time.scala
index f231343..5dff774 100644
--- a/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/time.scala
+++ b/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/time.scala
@@ -48,6 +48,7 @@ case class Extract(timeIntervalUnit: Expression, temporal: Expression) extends E
timeIntervalUnit match {
case SymbolExpression(TimeIntervalUnit.YEAR)
| SymbolExpression(TimeIntervalUnit.MONTH)
+ | SymbolExpression(TimeIntervalUnit.QUARTER)
| SymbolExpression(TimeIntervalUnit.DAY)
if temporal.resultType == SqlTimeTypeInfo.DATE
|| temporal.resultType == SqlTimeTypeInfo.TIMESTAMP
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 44cc182..453de19 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
@@ -1544,6 +1544,18 @@ class ScalarFunctionsTest extends ScalarTypesTestBase {
"EXTRACT(YEAR FROM f20)",
"2")
+ testAllApis(
+ 'f18.extract(TimeIntervalUnit.QUARTER),
+ "f18.extract(QUARTER)",
+ "EXTRACT(QUARTER FROM f18)",
+ "4")
+
+ testAllApis(
+ 'f16.extract(TimeIntervalUnit.QUARTER),
+ "f16.extract(QUARTER)",
+ "EXTRACT(QUARTER FROM f16)",
+ "4")
+
// test SQL only time units
testSqlApi(
"EXTRACT(MILLENNIUM FROM f18)",
@@ -1578,14 +1590,6 @@ class ScalarFunctionsTest extends ScalarTypesTestBase {
"1")
testSqlApi(
- "EXTRACT(QUARTER FROM f18)",
- "4")
-
- testSqlApi(
- "EXTRACT(QUARTER FROM f16)",
- "4")
-
- testSqlApi(
"EXTRACT(WEEK FROM f18)",
"45")