-
Notifications
You must be signed in to change notification settings - Fork 25.5k
ESQL: Propagate min transport version into query planning #136479
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
base: main
Are you sure you want to change the base?
ESQL: Propagate min transport version into query planning #136479
Conversation
Align with PlannerSettings
except local planning
Pinging @elastic/es-analytical-engine (Team:Analytics) |
/** | ||
* Values for cluster level settings used during query analysis. | ||
*/ | ||
public record AnalyzerSettings( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly unrelated cleanup: This got renamed from EsqlQueryClusterSettings because these are only relevant for the analyzer. Also aligned with our PlannerSettings.java.
|
||
private static final TransportVersion ESQL_FIELD_ATTRIBUTE_DROP_TYPE = TransportVersion.fromName("esql_field_attribute_drop_type"); | ||
// Only public for testing | ||
public static final TransportVersion ESQL_FIELD_ATTRIBUTE_DROP_TYPE = TransportVersion.fromName("esql_field_attribute_drop_type"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just needed one public transport version that's not pre-8.17 :D
Relates #131108
Make the minimum transport version available during query planning, so queries can be planned differently if older nodes (or remote clusters) are to take part in the query execution.
More specifically, plug the minimum transport version into:
This means that the whole pipeline from analyzer via logical optimizer and friends until the physical optimizer, which produces the final physical plan, are now aware of the minimum transport version available in this and remote clusters (which participate in the query).
Also, make the tests use a random compatible transport version per default (but ensure the version is consistent across the analysis-optimization pipeline).
This should keep us on our toes for when query plans diverge on newer versions - this will normally require one test for the current transport version and another one for the previous versions.