diff --git a/flink-table/flink-table-planner-blink/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java b/flink-table/flink-table-planner-blink/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
index fb620da0f7b4c..60fa7489329b0 100644
--- a/flink-table/flink-table-planner-blink/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
+++ b/flink-table/flink-table-planner-blink/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
@@ -184,11 +184,7 @@ private static class WindowStartEndReturnTypeInference implements SqlReturnTypeI
public WindowStartEndReturnTypeInference() {}
public RelDataType inferReturnType(SqlOperatorBinding opBinding) {
- if (opBinding.getOperandType(0).getSqlTypeName().equals(SqlTypeName.TIMESTAMP)) {
- return opBinding.getOperandType(0);
- } else {
- return explicit.inferReturnType(opBinding);
- }
+ return explicit.inferReturnType(opBinding);
}
}
}
diff --git a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowEnd.java b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowEnd.java
index 59a4437530f0f..d3010db037ccb 100644
--- a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowEnd.java
+++ b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowEnd.java
@@ -36,7 +36,7 @@ public PlannerWindowEnd(@JsonProperty(FIELD_NAME_REFERENCE) PlannerWindowReferen
@Override
public LogicalType getResultType() {
- return new TimestampType(3);
+ return new TimestampType(false, 3);
}
@Override
diff --git a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowStart.java b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowStart.java
index 9dd894f02bd8e..1e8819343a807 100644
--- a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowStart.java
+++ b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowStart.java
@@ -37,7 +37,7 @@ public PlannerWindowStart(
@Override
public LogicalType getResultType() {
- return new TimestampType(3);
+ return new TimestampType(false, 3);
}
@Override
diff --git a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testEventTimeTumbleWindow.out b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testEventTimeTumbleWindow.out
index 7a57f9a53fc27..73bbf05191e19 100644
--- a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testEventTimeTumbleWindow.out
+++ b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testEventTimeTumbleWindow.out
@@ -385,14 +385,14 @@
}, {
"w$start" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
}, {
"w$end" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
@@ -427,7 +427,7 @@
"inputIndex" : 5,
"type" : {
"typeName" : "TIMESTAMP",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3
}
}, {
@@ -435,7 +435,7 @@
"inputIndex" : 6,
"type" : {
"typeName" : "TIMESTAMP",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3
}
}, {
@@ -485,14 +485,14 @@
}, {
"window_start" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
}, {
"window_end" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
@@ -550,14 +550,14 @@
}, {
"window_start" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
}, {
"window_end" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
diff --git a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testProcTimeTumbleWindow.out b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testProcTimeTumbleWindow.out
index c3b015218035e..95d02161d1835 100644
--- a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testProcTimeTumbleWindow.out
+++ b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest_jsonplan/testProcTimeTumbleWindow.out
@@ -366,14 +366,14 @@
}, {
"w$start" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
}, {
"w$end" : {
"type" : "TIMESTAMP_WITHOUT_TIME_ZONE",
- "nullable" : true,
+ "nullable" : false,
"precision" : 3,
"kind" : "REGULAR"
}
@@ -397,21 +397,8 @@
"nullable" : true
}
}, {
- "kind" : "REX_CALL",
- "operator" : {
- "name" : "CAST",
- "kind" : "CAST",
- "syntax" : "SPECIAL"
- },
- "operands" : [ {
- "kind" : "INPUT_REF",
- "inputIndex" : 3,
- "type" : {
- "typeName" : "TIMESTAMP",
- "nullable" : true,
- "precision" : 3
- }
- } ],
+ "kind" : "INPUT_REF",
+ "inputIndex" : 3,
"type" : {
"typeName" : "TIMESTAMP",
"nullable" : false,
@@ -450,7 +437,7 @@
"EXPR$2" : "BIGINT NOT NULL"
} ]
},
- "description" : "Calc(select=[b, CAST(w$end) AS window_end, EXPR$2])"
+ "description" : "Calc(select=[b, w$end AS window_end, EXPR$2])"
}, {
"class" : "org.apache.flink.table.planner.plan.nodes.exec.stream.StreamExecSink",
"dynamicTableSink" : {
diff --git a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LegacyTableSourceTest.xml b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LegacyTableSourceTest.xml
index 108a93c1a592b..af09500a05152 100644
--- a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LegacyTableSourceTest.xml
+++ b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/LegacyTableSourceTest.xml
@@ -227,7 +227,7 @@ LogicalProject(name=[$0], EXPR$1=[TUMBLE_END($1)], EXPR$2=[$2])
100)])
diff --git a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MatchRecognizeTest.xml b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MatchRecognizeTest.xml
index e02a25e065485..e5b5b62be7a11 100644
--- a/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MatchRecognizeTest.xml
+++ b/flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/MatchRecognizeTest.xml
@@ -52,7 +52,7 @@ LogicalProject(symbol=[$0], price=[$2], rowTime=[TUMBLE_ROWTIME($1)], startTime=