Skip to content
# Class: CTEDependencyAnalyzer

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 ​

SimpleSelectQuery

The query to analyze

Returns ​

CTEDependencyGraph

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 ​

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

Released under the MIT License.