...
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Table of Contents
Motivation
Currently some temporal function behaviors are wired to users.
...
We need to consider the time zone offset just like the cast conversion between the TIMESTAMP with wall-clock semantics and BIGINT with Instant semantics. This way can make the both DataStream and SQL/API users feel intuitive.
4. Introduce an option that enable fallback to legacy behavior
The default value of table.exec.fallback-legacy-time-function is 'false' which means
...
the window based on processing time should be triggered by the changed processing time value.
Compatibility, Deprecation, and Migration Plan
- Compatibility
This is an incompatible change, we introduce SQL/API option table.exec.fallback-legacy-time-function for compacting current wrong behavior, and set it to ‘false’. If users want to keep the legacy behavior, they need to set it to ’true’ manually, this would be add to release note.
- Migration Plan
After the proposal is finished, the above user cases will work smoothly. Assume users' local time zone is UTC+8, the wall-clock is 2020-12-29 07:52:52.
- user case 1 :
After the proposal is finished, the above user cases will work smoothly. Assume users' local time zone is UTC+8, the wall-clock is 2020-12-29 07:52:52.
- user case 1 :
Code Block | ||
---|---|---|
| ||
Flink SQL> SELECT NOW(), | ||
Code Block | ||
| ||
Flink SQL> SELECT NOW(), PROCTIME(), CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME;
-- output:
+-------------------------+-------------------------+-------------------------+--------------+--------------+
| NOW() | PROCTIME() | CURRENT_TIMESTAMP | CURRENT_DATE | CURRENT_TIME |
+-------------------------+-------------------------+-------------------------+--------------+--------------+
| 2020-12-29T07:52:52 | 2020-12-29T07:52:52 | 2020-12-29T07:52:52 | 2020-12-29 | 07:52:52|
+-------------------------+-------------------------+-------------------------+--------------+--------------+ |
...
Code Block | ||
---|---|---|
| ||
Flink SQL> SELECT * > FROM userLog > WHERE date >= CURRENT_DATE; -- in the query, records earlier than 2020-12-29 will not be output. +-------------------------+-------------------------+-------------------------+ | date | log_ts | user | +-------------------------+-------------------------+-------------------------+ | 2020-12-29 | 2020-12-29T00:00:00 | Alice | +-------------------------+-------------------------+-------------------------+ | 2020-12-29 | 2020-12-29T00:00:01 | Bob | +-------------------------+-------------------------+-------------------------+ | 2020-12-29 | 2020-12-29T00:00:02 | Tom | +-------------------------+-------------------------+-------------------------+ |
Compatibility, Deprecation, and Migration Plan
- Compatibility
This is an incompatible change, we introduce SQL/API option table.exec.fallback-legacy-time-function for compacting current wrong behavior, and set it to ‘false’. If users want to keep the legacy behavior, they need to set it to ’true’ manually, this would be add to release note.
Test Plan
Will add plan tests, unit tests, window operator harness tests as well as IT tests.
...