Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(temporal-filter): support more now expressions in temporal filter pattern #17745

Merged
merged 3 commits into from
Jul 19, 2024

Conversation

stdrc
Copy link
Member

@stdrc stdrc commented Jul 18, 2024

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.

What's changed and what's your intention?

Support complex expressions like ts + interval '1 hour' > date_trunc('day', ('2024-07-18 00:00:00+00:00'::timestamptz - ('2024-07-18 00:00:00+00:00'::timestamptz - now())).

Fixes #17630.

Checklist

  • I have written necessary rustdoc comments
  • I have added necessary unit tests and integration tests
  • I have added test labels as necessary. See details.
  • I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features Sqlsmith: Sql feature generation #7934).
  • My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
  • All checks passed in ./risedev check (or alias, ./risedev c)
  • My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)
  • My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

  • My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note

If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

stdrc added 2 commits July 18, 2024 18:02
Signed-off-by: Richard Chien <[email protected]>
Signed-off-by: Richard Chien <[email protected]>
Copy link
Contributor

@st1page st1page left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM.
As a user facing issue, could you please help to improve the doc about the temporal filter? And maybe we need to modify some out-of-date error message such as that in LogicalFilter::to_stream()

│ └─StreamTableScan { table: t, columns: [t.ts, t.a, t._row_id], stream_scan_type: ArrangementBackfill, stream_key: [t._row_id], pk: [_row_id], dist: UpstreamHashShard(t._row_id) }
└─StreamExchange { dist: Broadcast }
└─StreamProject { exprs: [DateTrunc('day':Varchar, SubtractWithTimeZone('2024-07-18 00:00:00+00:00':Timestamptz, ('2024-07-18 00:00:00+00:00':Timestamptz - now), 'UTC':Varchar), 'UTC':Varchar) as $expr2] }
└─StreamNow { output: [now] }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can add more test such as

  • xxx < now_expression
  • xxx = now_expression
  • a non-monotonic now expression such as
create table t (ts timestamp with time zone, c text, i int);
explain create materialized view mv as select * from t where i > extract(hour from now()) ;

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have many xxx < now_expression and xxx = now_expression. Just added a non-mono expression test for failing case.

Signed-off-by: Richard Chien <[email protected]>
@stdrc
Copy link
Member Author

stdrc commented Jul 19, 2024

As a user facing issue, could you please help to improve the doc about the temporal filter? And maybe we need to modify some out-of-date error message such as that in LogicalFilter::to_stream()

Thanks for reminding. Error message is now updated. Will update document later.

@stdrc
Copy link
Member Author

stdrc commented Jul 19, 2024

Will update document later.

Oh I just realized that we cannot update the docs for now, because current document is for v1.10, and this PR will be in 1.11. Will do it after we release 1.10...

@stdrc stdrc added this pull request to the merge queue Jul 19, 2024
Merged via the queue into main with commit dba2c53 Jul 19, 2024
29 of 30 checks passed
@stdrc stdrc deleted the rc/temporal-filter-more-exprs branch July 19, 2024 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

allow conditions like ts < expr(now()) in temporal filter
4 participants