public class ResolutionPass extends Object
During iterative resolution, the resolver may need multiple passes to fully resolve all columns. Each pass attempts to resolve more columns based on information discovered in previous passes.
Example scenario requiring multiple passes:
WITH cte1 AS (SELECT * FROM t1), -- Pass 1: Can't fully resolve *
cte2 AS (SELECT c1, c2 FROM cte1) -- Pass 1: References cte1.c1, c1.c2
SELECT * FROM cte2 -- Pass 2: Can now resolve based on cte2
Each pass tracks: - Pass number (1, 2, 3, ...) - Columns resolved in this pass - Columns still unresolved - Whether progress was made - Time taken
| Constructor and Description |
|---|
ResolutionPass(int passNumber,
ResolutionStatistics beforeStats) |
| Modifier and Type | Method and Description |
|---|---|
void |
complete(ResolutionStatistics afterStats)
Complete this pass with final statistics.
|
ResolutionStatistics |
getAfterStats() |
ResolutionStatistics |
getBeforeStats() |
int |
getColumnsResolvedInPass() |
int |
getNewInferences() |
int |
getPassNumber() |
String |
getStopReason() |
String |
getSummary()
Get a summary of this pass.
|
long |
getTimeTaken() |
boolean |
madeProgress() |
void |
setNewInferences(int count)
Set the number of new inferences made in this pass.
|
void |
setStopReason(String reason)
Set the reason why iteration stopped after this pass.
|
String |
toString() |
public ResolutionPass(int passNumber, ResolutionStatistics beforeStats)
public void complete(ResolutionStatistics afterStats)
afterStats - statistics after this passpublic void setNewInferences(int count)
count - inference countpublic void setStopReason(String reason)
reason - stop reasonpublic int getPassNumber()
public ResolutionStatistics getBeforeStats()
public ResolutionStatistics getAfterStats()
public int getColumnsResolvedInPass()
public int getNewInferences()
public long getTimeTaken()
public boolean madeProgress()
public String getStopReason()
public String getSummary()