Skip to content

Commit 65142b1

Browse files
committed
[CALCITE-7410] TIMESTAMP type for TUMBLE and HOP is hardwired to TIMESTAMP(3)
Signed-off-by: Mihai Budiu <mbudiu@feldera.com>
1 parent dd34021 commit 65142b1

File tree

3 files changed

+138
-138
lines changed

3 files changed

+138
-138
lines changed

core/src/main/java/org/apache/calcite/sql/SqlWindowTableFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ private static RelDataType inferRowType(SqlOperatorBinding opBinding) {
110110
return typeFactory.builder()
111111
.kind(inputRowType.getStructKind())
112112
.addAll(inputRowType.getFieldList())
113-
.add("window_start", SqlTypeName.TIMESTAMP, 3)
114-
.add("window_end", SqlTypeName.TIMESTAMP, 3)
113+
.add("window_start", SqlTypeName.TIMESTAMP)
114+
.add("window_end", SqlTypeName.TIMESTAMP)
115115
.build();
116116
}
117117

core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8404,7 +8404,7 @@ from table(hop(table Shipments, descriptor(rowtime), INTERVAL '1' MINUTE, INTERV
84048404
<Resource name="plan">
84058405
<![CDATA[
84068406
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8407-
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8407+
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
84088408
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
84098409
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
84108410
]]>
@@ -8418,7 +8418,7 @@ from table(hop(table Shipments, descriptor(rowtime), INTERVAL '1' MINUTE, INTERV
84188418
<Resource name="plan">
84198419
<![CDATA[
84208420
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8421-
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 300000:INTERVAL MINUTE, 180000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8421+
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 300000:INTERVAL MINUTE, 180000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
84228422
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
84238423
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
84248424
]]>
@@ -8437,7 +8437,7 @@ hop(
84378437
<Resource name="plan">
84388438
<![CDATA[
84398439
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8440-
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8440+
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
84418441
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
84428442
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
84438443
]]>
@@ -8456,7 +8456,7 @@ hop(
84568456
<Resource name="plan">
84578457
<![CDATA[
84588458
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8459-
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8459+
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
84608460
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
84618461
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
84628462
]]>
@@ -8470,7 +8470,7 @@ from table(hop((select * from Shipments), descriptor(rowtime), INTERVAL '1' MINU
84708470
<Resource name="plan">
84718471
<![CDATA[
84728472
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8473-
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8473+
LogicalTableFunctionScan(invocation=[HOP(DESCRIPTOR($1), 60000:INTERVAL MINUTE, 120000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
84748474
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
84758475
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
84768476
]]>
@@ -8484,7 +8484,7 @@ from table(session(table Shipments, descriptor(rowtime), descriptor(orderId), IN
84848484
<Resource name="plan">
84858485
<![CDATA[
84868486
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8487-
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8487+
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
84888488
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
84898489
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
84908490
]]>
@@ -8498,7 +8498,7 @@ from table(session(table Orders, descriptor(rowtime), descriptor(orderId, produc
84988498
<Resource name="plan">
84998499
<![CDATA[
85008500
LogicalProject(ROWTIME=[$0], PRODUCTID=[$1], ORDERID=[$2], window_start=[$3], window_end=[$4])
8501-
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($0), DESCRIPTOR($2, $1), 600000:INTERVAL MINUTE)], rowType=[RecordType(TIMESTAMP(0) ROWTIME, INTEGER PRODUCTID, INTEGER ORDERID, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8501+
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($0), DESCRIPTOR($2, $1), 600000:INTERVAL MINUTE)], rowType=[RecordType(TIMESTAMP(0) ROWTIME, INTEGER PRODUCTID, INTEGER ORDERID, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
85028502
LogicalProject(ROWTIME=[$0], PRODUCTID=[$1], ORDERID=[$2])
85038503
LogicalTableScan(table=[[CATALOG, SALES, ORDERS]])
85048504
]]>
@@ -8517,7 +8517,7 @@ session(
85178517
<Resource name="plan">
85188518
<![CDATA[
85198519
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8520-
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8520+
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
85218521
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
85228522
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
85238523
]]>
@@ -8536,7 +8536,7 @@ session(
85368536
<Resource name="plan">
85378537
<![CDATA[
85388538
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8539-
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8539+
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
85408540
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
85418541
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
85428542
]]>
@@ -8550,7 +8550,7 @@ from table(session((select * from Shipments), descriptor(rowtime), descriptor(or
85508550
<Resource name="plan">
85518551
<![CDATA[
85528552
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8553-
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8553+
LogicalTableFunctionScan(invocation=[SESSION(DESCRIPTOR($1), DESCRIPTOR($0), 600000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
85548554
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
85558555
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
85568556
]]>
@@ -8585,7 +8585,7 @@ from table(tumble(table Shipments, descriptor(rowtime), INTERVAL '1' MINUTE))]]>
85858585
<Resource name="plan">
85868586
<![CDATA[
85878587
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8588-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8588+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
85898589
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
85908590
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
85918591
]]>
@@ -8602,10 +8602,10 @@ on a.orderid = b.orderid]]>
86028602
<![CDATA[
86038603
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3], ORDERID0=[$4], ROWTIME0=[$5], window_start0=[$6], window_end0=[$7])
86048604
LogicalJoin(condition=[=($0, $4)], joinType=[inner])
8605-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8605+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
86068606
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
86078607
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
8608-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8608+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
86098609
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
86108610
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
86118611
]]>
@@ -8620,7 +8620,7 @@ from table(tumble(table Shipments, descriptor(rowtime),
86208620
<Resource name="plan">
86218621
<![CDATA[
86228622
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8623-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 600000:INTERVAL MINUTE, 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8623+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 600000:INTERVAL MINUTE, 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
86248624
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
86258625
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
86268626
]]>
@@ -8638,7 +8638,7 @@ tumble(
86388638
<Resource name="plan">
86398639
<![CDATA[
86408640
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8641-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8641+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
86428642
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
86438643
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
86448644
]]>
@@ -8656,7 +8656,7 @@ tumble(
86568656
<Resource name="plan">
86578657
<![CDATA[
86588658
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8659-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8659+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
86608660
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
86618661
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
86628662
]]>
@@ -8670,7 +8670,7 @@ from table(tumble((select * from Shipments), descriptor(rowtime), INTERVAL '1' M
86708670
<Resource name="plan">
86718671
<![CDATA[
86728672
LogicalProject(ORDERID=[$0], ROWTIME=[$1], window_start=[$2], window_end=[$3])
8673-
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end)])
8673+
LogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($1), 60000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER ORDERID, TIMESTAMP(0) ROWTIME, TIMESTAMP(0) window_start, TIMESTAMP(0) window_end)])
86748674
LogicalProject(ORDERID=[$0], ROWTIME=[$1])
86758675
LogicalTableScan(table=[[CATALOG, SALES, SHIPMENTS]])
86768676
]]>

0 commit comments

Comments
 (0)