Class ResolutionPass
Object
gudusoft.gsqlparser.resolver2.iterative.ResolutionPass
Represents a single pass of iterative resolution.
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcomplete(ResolutionStatistics afterStats) Complete this pass with final statistics.intintintGet a summary of this pass.longbooleanvoidsetNewInferences(int count) Set the number of new inferences made in this pass.voidsetStopReason(String reason) Set the reason why iteration stopped after this pass.toString()
-
Constructor Details
-
ResolutionPass
-
-
Method Details
-
complete
Complete this pass with final statistics.- Parameters:
afterStats- statistics after this pass
-
setNewInferences
Set the number of new inferences made in this pass.- Parameters:
count- inference count
-
setStopReason
Set the reason why iteration stopped after this pass.- Parameters:
reason- stop reason
-
getPassNumber
-
getBeforeStats
-
getAfterStats
-
getColumnsResolvedInPass
-
getNewInferences
-
getTimeTaken
-
madeProgress
-
getStopReason
-
getSummary
Get a summary of this pass.- Returns:
- summary string
-
toString
-