feat: method for dynamic allows_alias_in_select
#25882
Merged
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.
SUMMARY
DB engine specs have an attribute called
allows_alias_in_select
, indicating if they support aliases inSELECT
statements. For Dremio, this attribute is version dependent — see the fix in their release notes.Because of that, we've been ping-ponging on the attribute. First I disabled it in #23872, and later it was re-enabled in #25657 when the fix came out. Since we have Superset users running older versions, I added a new class method
get_allows_alias_in_select
, that uses theversion
field in the database extra configuration.Note that this requires users running Dremio < 24.1.0 to explicitly add the
version
field when configuring their databases. I'm not sure if we could determine the version at runtime, but even if we could it would require us to run a pre-query every time, which is needlessly expensive.Also note that the
version
field is already used in Presto for version-dependent features.BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A
TESTING INSTRUCTIONS
ADDITIONAL INFORMATION