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():
undefined
|CTENode
Defined in: packages/core/src/transformers/CTEDependencyAnalyzer.ts:128
Gets the main query node
Returns
undefined
| CTENode
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