public interface ResolutionStrategy
Different strategies can be used for different types of SQL: - Standard strategy: Normal forward resolution - Bottom-up strategy: Resolve innermost subqueries first - Top-down strategy: Resolve outer queries first, push down requirements - Adaptive strategy: Dynamically choose based on query structure
Each strategy defines: - How to order resolution (which tables/CTEs first) - When to perform inference - When to expand star columns - When to push down column requirements
| Modifier and Type | Method and Description |
|---|---|
String |
getDescription()
Get a description of this strategy.
|
String |
getName()
Get the name of this strategy.
|
void |
preparePass(int passNumber,
ResolutionStatistics previousStats)
Prepare for a new pass.
|
boolean |
shouldExpandStars(int passNumber,
ResolutionStatistics previousStats)
Determine if this strategy should expand star columns in the current pass.
|
boolean |
shouldPerformInference(int passNumber,
ResolutionStatistics previousStats)
Determine if this strategy should perform inference in the current pass.
|
boolean |
shouldPushDownColumns(int passNumber,
ResolutionStatistics previousStats)
Determine if this strategy should push down column requirements in the current pass.
|
boolean shouldPerformInference(int passNumber, ResolutionStatistics previousStats)
passNumber - the current pass numberpreviousStats - statistics from previous pass (null for first pass)boolean shouldExpandStars(int passNumber, ResolutionStatistics previousStats)
passNumber - the current pass numberpreviousStats - statistics from previous pass (null for first pass)boolean shouldPushDownColumns(int passNumber, ResolutionStatistics previousStats)
passNumber - the current pass numberpreviousStats - statistics from previous pass (null for first pass)void preparePass(int passNumber, ResolutionStatistics previousStats)
passNumber - the upcoming pass numberpreviousStats - statistics from previous pass (null for first pass)String getDescription()