Skip to content

fix issue with ScanQueryFrameProcessor cursor build not adjusting intervals#17168

Merged
cryptoe merged 3 commits intoapache:masterfrom
clintropolis:fix-scan-frame-processor-cursor-intervals
Sep 26, 2024
Merged

fix issue with ScanQueryFrameProcessor cursor build not adjusting intervals#17168
cryptoe merged 3 commits intoapache:masterfrom
clintropolis:fix-scan-frame-processor-cursor-intervals

Conversation

@clintropolis
Copy link
Copy Markdown
Member

During the refactor of #16533, accidentally lost the calls to query.withQuerySegmentSpec in ScanQueryFrameProcessor here and here

@github-actions github-actions Bot added Area - Batch Ingestion Area - MSQ For multi stage queries - https://github.com/apache/druid/issues/12262 labels Sep 26, 2024
@clintropolis clintropolis added this to the 31.0.0 milestone Sep 26, 2024
@cryptoe cryptoe merged commit 6ee9e42 into apache:master Sep 26, 2024
cursorFactory.makeCursorHolder(ScanQueryEngine.makeCursorBuildSpec(query, null));
cursorFactory.makeCursorHolder(
ScanQueryEngine.makeCursorBuildSpec(
query.withQuerySegmentSpec(new MultipleIntervalSegmentSpec(Intervals.ONLY_ETERNITY)),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The old code did this too, but, it seems like it'd be incorrect if the query had an intervals filter on the __time column. I am not sure how (or if) this can actually happen, but I wonder if it could be made to happen by doing a query like this:

SELECT * FROM (SELECT * FROM "wikipedia" ORDER BY countryName LIMIT 100)
WHERE TIME_IN_INTERVAL(__time, '2020/P1D') OR TIME_IN_INTERVAL(__time, '2021/P1D')

I tried doing that just now, and got a QueryNotSupported error, which seems like a different problem. But what if it was supported?

IMO, here we should add a validation here to check that query has an eternity interval, rather than overriding it to be eternity. If it was anything other than eternity, this wouldn't be correct.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

PR for fixing this: #17173

@clintropolis clintropolis deleted the fix-scan-frame-processor-cursor-intervals branch September 26, 2024 19:34
kfaraz pushed a commit to kfaraz/druid that referenced this pull request Oct 4, 2024
…ervals (apache#17168)

* fix issue with ScanQueryFrameProcessor cursor build not adjusting intervals

* all hail the robot overlords

* style bot
kfaraz added a commit that referenced this pull request Oct 4, 2024
…g. (#17152) (#17168) (#17245)

* ScanQueryFrameProcessor: Close CursorHolders as we go along. (#17152)
* fix issue with ScanQueryFrameProcessor cursor build not adjusting intervals (#17168)
---------
Co-authored-by: Gian Merlino <gianmerlino@gmail.com>
Co-authored-by: Clint Wylie <cwylie@apache.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area - Batch Ingestion Area - MSQ For multi stage queries - https://github.com/apache/druid/issues/12262 Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants