Skip to content

Commit 2604c9d

Browse files
committed
[FLINK-22313][table-planner-blink] Redundant CAST in plan when selecting window start and window end in window agg
1 parent 0ddda1b commit 2604c9d

File tree

4 files changed

+5
-9
lines changed

4 files changed

+5
-9
lines changed

flink-table/flink-table-planner-blink/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,7 @@ private static class WindowStartEndReturnTypeInference implements SqlReturnTypeI
184184
public WindowStartEndReturnTypeInference() {}
185185

186186
public RelDataType inferReturnType(SqlOperatorBinding opBinding) {
187-
if (opBinding.getOperandType(0).getSqlTypeName().equals(SqlTypeName.TIMESTAMP)) {
188-
return opBinding.getOperandType(0);
189-
} else {
190-
return explicit.inferReturnType(opBinding);
191-
}
187+
return explicit.inferReturnType(opBinding);
192188
}
193189
}
194190
}

flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowEnd.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public PlannerWindowEnd(@JsonProperty(FIELD_NAME_REFERENCE) PlannerWindowReferen
3636

3737
@Override
3838
public LogicalType getResultType() {
39-
return new TimestampType(3);
39+
return new TimestampType(false, 3);
4040
}
4141

4242
@Override

flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/expressions/PlannerWindowStart.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public PlannerWindowStart(
3737

3838
@Override
3939
public LogicalType getResultType() {
40-
return new TimestampType(3);
40+
return new TimestampType(false, 3);
4141
}
4242

4343
@Override

flink-table/flink-table-planner-blink/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/agg/GroupWindowTest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ LogicalProject(EXPR$0=[$1], wAvg=[$2], EXPR$2=[HOP_START($0)], EXPR$3=[HOP_END($
126126
</Resource>
127127
<Resource name="optimized exec plan">
128128
<![CDATA[
129-
Calc(select=[EXPR$0, wAvg, CAST(w$start) AS EXPR$2, CAST(w$end) AS EXPR$3])
129+
Calc(select=[EXPR$0, wAvg, w$start AS EXPR$2, w$end AS EXPR$3])
130130
+- GroupWindowAggregate(window=[SlidingGroupWindow('w$, proctime, 3600000, 900000)], properties=[w$start, w$end, w$proctime], select=[COUNT(*) AS EXPR$0, weightedAvg(c, a) AS wAvg, start('w$) AS w$start, end('w$) AS w$end, proctime('w$) AS w$proctime])
131131
+- Exchange(distribution=[single])
132132
+- Calc(select=[proctime, c, CAST(a) AS a])
@@ -388,7 +388,7 @@ LogicalProject(EXPR$0=[$1], wAvg=[$2], EXPR$2=[SESSION_START($0)], EXPR$3=[SESSI
388388
</Resource>
389389
<Resource name="optimized exec plan">
390390
<![CDATA[
391-
Calc(select=[EXPR$0, wAvg, CAST(w$start) AS EXPR$2, CAST(w$end) AS EXPR$3])
391+
Calc(select=[EXPR$0, wAvg, w$start AS EXPR$2, w$end AS EXPR$3])
392392
+- GroupWindowAggregate(window=[SessionGroupWindow('w$, proctime, 900000)], properties=[w$start, w$end, w$proctime], select=[COUNT(*) AS EXPR$0, weightedAvg(c, a) AS wAvg, start('w$) AS w$start, end('w$) AS w$end, proctime('w$) AS w$proctime])
393393
+- Exchange(distribution=[single])
394394
+- Calc(select=[proctime, c, CAST(a) AS a])

0 commit comments

Comments
 (0)