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(): 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

Released under the MIT License.