Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:44
Analyzer for CTE dependencies in SQL queries. Provides functionality to analyze dependencies, detect circular references, and generate topological ordering of CTEs.
Constructors ​
Constructor ​
new CTEDependencyAnalyzer():
CTEDependencyAnalyzer
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:58
Returns ​
CTEDependencyAnalyzer
Methods ​
analyzeDependencies() ​
analyzeDependencies(
query):CTEDependencyGraph
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:75
Analyzes the dependencies between CTEs in the given query
Parameters ​
query ​
The query to analyze
Returns ​
The dependency graph
getDependencies() ​
getDependencies(
cteName):string[]
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:87
Gets the list of CTEs that the specified CTE depends on
Parameters ​
cteName ​
string
The name of the CTE
Returns ​
string[]
Array of CTE names this CTE depends on
getDependents() ​
getDependents(
cteName):string[]
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:98
Gets the list of CTEs that depend on the specified CTE
Parameters ​
cteName ​
string
The name of the CTE
Returns ​
string[]
Array of CTE names that depend on this CTE
getMainQueryDependencies() ​
getMainQueryDependencies():
string[]
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:108
Gets the list of CTEs that are directly referenced by the main query
Returns ​
string[]
Array of CTE names referenced by the main query
getNodesByType() ​
getNodesByType(
nodeType):CTENode[]
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:119
Gets nodes by type (CTE or ROOT)
Parameters ​
nodeType ​
The type of nodes to retrieve
Returns ​
CTENode[]
Array of nodes of the specified type
getMainQueryNode() ​
getMainQueryNode():
CTENode|undefined
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:128
Gets the main query node
Returns ​
CTENode | undefined
The main query node or undefined if not found
hasCircularDependency() ​
hasCircularDependency():
boolean
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:137
Checks if there are any circular dependencies in the CTE graph
Returns ​
boolean
true if circular dependencies exist, false otherwise
getExecutionOrder() ​
getExecutionOrder():
string[]
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:155
Gets the topological sort order for CTE execution
Returns ​
string[]
Array of CTE names in execution order
Throws ​
Error if circular dependencies are detected