Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
doujutun3207
flink
提交
4dfefd04
F
flink
项目概览
doujutun3207
/
flink
与 Fork 源项目一致
从无法访问的项目Fork
通知
24
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
flink
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4dfefd04
编写于
8月 08, 2017
作者:
T
twalthr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FLINK-6429] [table] Fix build and simplifications
上级
d5770fe8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
11 addition
and
108 deletion
+11
-108
flink-libraries/flink-table/src/main/java/org/apache/calcite/sql/fun/SqlTimestampAddFunction.java
...a/org/apache/calcite/sql/fun/SqlTimestampAddFunction.java
+0
-97
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/time.scala
.../main/scala/org/apache/flink/table/expressions/time.scala
+1
-2
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala
.../apache/flink/table/expressions/ScalarFunctionsTest.scala
+3
-2
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/validation/ScalarFunctionsValidationTest.scala
...xpressions/validation/ScalarFunctionsValidationTest.scala
+2
-7
tools/maven/spotbugs-exclude.xml
tools/maven/spotbugs-exclude.xml
+5
-0
未找到文件。
flink-libraries/flink-table/src/main/java/org/apache/calcite/sql/fun/SqlTimestampAddFunction.java
已删除
100644 → 0
浏览文件 @
d5770fe8
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.calcite.sql.fun
;
/*
* THIS FILE HAS BEEN COPIED FROM THE APACHE CALCITE PROJECT UNTIL WE UPGRADE TO CALCITE 1.13.
*/
import
org.apache.calcite.avatica.util.TimeUnit
;
import
org.apache.calcite.rel.type.RelDataType
;
import
org.apache.calcite.rel.type.RelDataTypeFactory
;
import
org.apache.calcite.sql.SqlFunction
;
import
org.apache.calcite.sql.SqlFunctionCategory
;
import
org.apache.calcite.sql.SqlKind
;
import
org.apache.calcite.sql.SqlOperatorBinding
;
import
org.apache.calcite.sql.type.OperandTypes
;
import
org.apache.calcite.sql.type.SqlReturnTypeInference
;
import
org.apache.calcite.sql.type.SqlTypeFamily
;
import
org.apache.calcite.sql.type.SqlTypeName
;
/**
*
* The <code>TIMESTAMPADD</code> function, which adds an interval to a
* timestamp.
*
* <p>The SQL syntax is
*
* <blockquote>
* <code>TIMESTAMPADD(<i>timestamp interval</i>, <i>quantity</i>,
* <i>timestamp</i>)</code>
* </blockquote>
*
* <p>The interval time unit can one of the following literals:<ul>
* <li>MICROSECOND (and synonyms SQL_TSI_MICROSECOND, FRAC_SECOND,
* SQL_TSI_FRAC_SECOND)
* <li>SECOND (and synonym SQL_TSI_SECOND)
* <li>MINUTE (and synonym SQL_TSI_MINUTE)
* <li>HOUR (and synonym SQL_TSI_HOUR)
* <li>DAY (and synonym SQL_TSI_DAY)
* <li>WEEK (and synonym SQL_TSI_WEEK)
* <li>MONTH (and synonym SQL_TSI_MONTH)
* <li>QUARTER (and synonym SQL_TSI_QUARTER)
* <li>YEAR (and synonym SQL_TSI_YEAR)
* </ul>
*
* <p>Returns modified timestamp.
*
* __Note__: Due to the change of [[org.apache.calcite.rex.RexLiteral]] we should keep using this
* class until upgrade to calcite 1.13.
*/
class
SqlTimestampAddFunction
extends
SqlFunction
{
private
static
final
SqlReturnTypeInference
RETURN_TYPE_INFERENCE
=
new
SqlReturnTypeInference
()
{
public
RelDataType
inferReturnType
(
SqlOperatorBinding
opBinding
)
{
final
RelDataTypeFactory
typeFactory
=
opBinding
.
getTypeFactory
();
final
TimeUnit
unit
=
(
TimeUnit
)
opBinding
.
getOperandLiteralValue
(
0
);
switch
(
unit
)
{
case
HOUR:
case
MINUTE:
case
SECOND:
case
MILLISECOND:
case
MICROSECOND:
return
typeFactory
.
createTypeWithNullability
(
typeFactory
.
createSqlType
(
SqlTypeName
.
TIMESTAMP
),
opBinding
.
getOperandType
(
1
).
isNullable
()
||
opBinding
.
getOperandType
(
2
).
isNullable
());
default
:
return
opBinding
.
getOperandType
(
2
);
}
}
};
/** Creates a SqlTimestampAddFunction. */
SqlTimestampAddFunction
()
{
super
(
"TIMESTAMPADD"
,
SqlKind
.
TIMESTAMP_ADD
,
RETURN_TYPE_INFERENCE
,
null
,
OperandTypes
.
family
(
SqlTypeFamily
.
ANY
,
SqlTypeFamily
.
INTEGER
,
SqlTypeFamily
.
TIMESTAMP
),
SqlFunctionCategory
.
TIMEDATE
);
}
}
// End SqlTimestampAddFunction.java
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/time.scala
浏览文件 @
4dfefd04
...
...
@@ -29,7 +29,6 @@ import org.apache.flink.table.calcite.FlinkRelBuilder
import
org.apache.flink.table.expressions.ExpressionUtils.
{
divide
,
getFactor
,
mod
}
import
org.apache.flink.table.expressions.TimeIntervalUnit.TimeIntervalUnit
import
org.apache.flink.table.functions.sql.DateTimeSqlFunction
import
org.apache.flink.table.runtime.functions.DateTimeFunctions
import
org.apache.flink.table.typeutils.TypeCheckUtils.isTimeInterval
import
org.apache.flink.table.typeutils.
{
TimeIntervalTypeInfo
,
TypeCheckUtils
}
import
org.apache.flink.table.validate.
{
ValidationFailure
,
ValidationResult
,
ValidationSuccess
}
...
...
@@ -360,7 +359,7 @@ case class TemporalOverlaps(
val
convLeftT
=
convertOverlapsEnd
(
relBuilder
,
leftP
,
leftT
,
leftTemporal
.
resultType
)
val
convRightT
=
convertOverlapsEnd
(
relBuilder
,
rightP
,
rightT
,
rightTemporal
.
resultType
)
//
S
ort end points into start and end, such that (s0 <= e0) and (s1 <= e1).
//
s
ort end points into start and end, such that (s0 <= e0) and (s1 <= e1).
val
(
s0
,
e0
)
=
buildSwap
(
relBuilder
,
leftP
,
convLeftT
)
val
(
s1
,
e1
)
=
buildSwap
(
relBuilder
,
rightP
,
convRightT
)
...
...
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarFunctionsTest.scala
浏览文件 @
4dfefd04
...
...
@@ -1664,11 +1664,12 @@ class ScalarFunctionsTest extends ScalarTypesTestBase {
s
"TIMESTAMPADD($interval, ${data(4)._1}, ${data(4)._2})"
,
result
(
4
))
}
testSqlApi
(
"TIMESTAMPADD(HOUR, CAST(NULL AS INTEGER),"
+
" TIMESTAMP '2016-02-24 12:42:25')"
,
"null"
)
testSqlApi
(
"TIMESTAMPADD(HOUR, CAST(NULL AS INTEGER), TIMESTAMP '2016-02-24 12:42:25')"
,
"null"
)
testSqlApi
(
"TIMESTAMPADD(HOUR, -200, CAST(NULL AS TIMESTAMP))"
,
"null"
)
testSqlApi
(
"TIMESTAMPADD(DAY, 1, DATE '2016-06-15')"
,
"2016-06-16"
)
testSqlApi
(
"TIMESTAMPADD(MONTH, 3, CAST(NULL AS TIMESTAMP))"
,
"null"
)
}
...
...
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/validation/ScalarFunctionsValidationTest.scala
浏览文件 @
4dfefd04
...
...
@@ -67,18 +67,13 @@ class ScalarFunctionsValidationTest extends ScalarTypesTestBase {
// Temporal functions
// ----------------------------------------------------------------------------------------------
@Test
(
expected
=
classOf
[
ValidationException
])
def
testTimestampAddWithDate
()
:
Unit
={
testSqlApi
(
"TIMESTAMPADD(DAY, 1, date '2016-06-15')"
,
"2016-06-16"
)
}
@Test
(
expected
=
classOf
[
SqlParserException
])
def
testTimestampAddWithrongTimestampInterval
()
:
Unit
={
def
testTimestampAddWith
W
rongTimestampInterval
()
:
Unit
={
testSqlApi
(
"TIMESTAMPADD(XXX, 1, timestamp '2016-02-24'))"
,
"2016-06-16"
)
}
@Test
(
expected
=
classOf
[
SqlParserException
])
def
testTimestampAddWithrongTimestampFormat
()
:
Unit
={
def
testTimestampAddWith
W
rongTimestampFormat
()
:
Unit
={
testSqlApi
(
"TIMESTAMPADD(YEAR, 1, timestamp '2016-02-24'))"
,
"2016-06-16"
)
}
...
...
tools/maven/spotbugs-exclude.xml
浏览文件 @
4dfefd04
...
...
@@ -18,6 +18,11 @@ specific language governing permissions and limitations
under the License.
-->
<FindBugsFilter>
<!-- Sometimes we have to temporarily fix very long, different formatted Calcite files. -->
<Match>
<Package
name=
"~org\.apache\.calcite.*"
/>
</Match>
<Match>
<Bug
pattern=
"VA_FORMAT_STRING_USES_NEWLINE"
/>
</Match>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录