[Bugfix]: Subquery time filter logic for sqla datasources (partitions) #3892
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When you create a group-by query using the UI it will create a subquery which will contain the time filter of the outer query. If you configured Superset to automatically align queries to partitions (e.g. using
time_secondary_columns
of overridingappend_timefilter
ofBaseEngineSpec
indb_engine_spec.py
) the inner time filter will not receive the partition alignment logic from the outer filter. This fixes this.Example:
We are using
append_timefilter
to automatically add a filter on the partition column_PARTITIONTIME
when we query for the columntimestamp
. This works great for the outer query but not for the subquery.With this fix the time filter will get correctly passed down to the subquery.
Before
After
Note that the subquery also has the
_PARTITIONTIME
included