[
https://issues.apache.org/jira/browse/CALCITE-4563?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonard Xu updated CALCITE-4563:
--------------------------------
Description:
in CALCITE-2133 we allowed SqlGroupedWindowFunction to specify
returnTypeInference in its constructor, but for auxiliary
SqlGroupedWindowFunction, the returnTypeInference is fixed as
*ReturnTypes.ARG0*, we can also enable user to config it.
To resolve the day light saving time issue in window, our approach in Flink is
using TIMESTAMP type for *TUMBLE_START*, *TUMBLE_END* and use TIMESTAMP WITH
LOCAL TIME ZONE type for the *TUMBLE*. In this way, the window [2021-03-14
00:00:00 2021-03-14 00:04:00] will collect 3 hours data in Los_angele
timezone, but it collect 4 hours data in other non-DST timezone.
{code:java}
// The DaylightTime in Los_Angele start at time 2021-03-14 02:00:00
long epoch1 = 1615708800000L; // 2021-03-14 00:00:00
long epoch2 = 1615712400000L; // 2021-03-14 01:00:00
long epoch3 = 1615716000000L; // 2021-03-14 03:00:00, skip one hour (2021-03-14
02:00:00)
long epoch4 = 1615719600000L; // 2021-03-14 04:00:00
{code}
>From the example we know we want to split the window in timestamp literal
>which means we want to use TIMESTAMP for auxiliary sqlGroupWindowFunction no
>matter the SqlGroupedWindowFunction return type is TIMESTAMP or TIMESTAMP WITH
>LOCAL TIME ZONE. If calcite allows auxiliary SqlGroupedWindowFunction to
>specify returnTypeInference, we can resolve the DST issue easily.
was:
in CALCITE-2133 we allowed SqlGroupedWindowFunction to specify
returnTypeInference in its constructor, but for auxiliary
SqlGroupedWindowFunction, the returnTypeInference is fixed as
*ReturnTypes.ARG0*, we can also enable user to config it.
To resolve the day light saving time issue in window, our approach in Flink is
using TIMESTAMP type for *TUMBLE_START*, *TUMBLE_END* and use TIMESTAMP WITH
LOCAL TIME ZONE type for the *TUMBLE*. n this way, the window [2021-03-14
00:00:00 2021-03-14 00:04:00] will collect 3 hours data in Los_angele
timezone, but it collect 4 hours data in other non-DST timezone.
{code:java}
// The DaylightTime in Los_Angele start at time 2021-03-14 02:00:00
long epoch1 = 1615708800000L; // 2021-03-14 00:00:00
long epoch2 = 1615712400000L; // 2021-03-14 01:00:00
long epoch3 = 1615716000000L; // 2021-03-14 03:00:00, skip one hour (2021-03-14
02:00:00)
long epoch4 = 1615719600000L; // 2021-03-14 04:00:00
{code}
>From the example we know we want to split the window in timestamp literal
>which means we want to use TIMESTAMP for auxiliary sqlGroupWindowFunction no
>matter the SqlGroupedWindowFunction return type is TIMESTAMP or TIMESTAMP WITH
>LOCAL TIME ZONE. If calcite allows auxiliary SqlGroupedWindowFunction to
>specify returnTypeInference, we can resolve the DST issue easily.
> Allow auxiliary SqlGroupedWindowFunction to specify returnTypeInference
> ------------------------------------------------------------------------
>
> Key: CALCITE-4563
> URL: https://issues.apache.org/jira/browse/CALCITE-4563
> Project: Calcite
> Issue Type: Improvement
> Reporter: Leonard Xu
> Priority: Minor
>
> in CALCITE-2133 we allowed SqlGroupedWindowFunction to specify
> returnTypeInference in its constructor, but for auxiliary
> SqlGroupedWindowFunction, the returnTypeInference is fixed as
> *ReturnTypes.ARG0*, we can also enable user to config it.
>
> To resolve the day light saving time issue in window, our approach in Flink
> is using TIMESTAMP type for *TUMBLE_START*, *TUMBLE_END* and use TIMESTAMP
> WITH LOCAL TIME ZONE type for the *TUMBLE*. In this way, the window
> [2021-03-14 00:00:00 2021-03-14 00:04:00] will collect 3 hours data in
> Los_angele timezone, but it collect 4 hours data in other non-DST timezone.
> {code:java}
> // The DaylightTime in Los_Angele start at time 2021-03-14 02:00:00
> long epoch1 = 1615708800000L; // 2021-03-14 00:00:00
> long epoch2 = 1615712400000L; // 2021-03-14 01:00:00
> long epoch3 = 1615716000000L; // 2021-03-14 03:00:00, skip one hour
> (2021-03-14 02:00:00)
> long epoch4 = 1615719600000L; // 2021-03-14 04:00:00
> {code}
> From the example we know we want to split the window in timestamp literal
> which means we want to use TIMESTAMP for auxiliary sqlGroupWindowFunction no
> matter the SqlGroupedWindowFunction return type is TIMESTAMP or TIMESTAMP
> WITH LOCAL TIME ZONE. If calcite allows auxiliary SqlGroupedWindowFunction
> to specify returnTypeInference, we can resolve the DST issue easily.
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)