import { SelectQuery } from "../models/SelectQuery"; import { CTEQuery } from "../models/Clause"; /** * CTE dependency tree node for visualization */ export interface CTENode { name: string; columns: string[]; dependencies: string[]; dependents: string[]; query: CTEQuery; level: number; } /** * CTE dependency graph for debugging complex queries */ export interface CTEGraph { nodes: Map; rootNodes: string[]; leafNodes: string[]; } /** * Debug utility for visualizing CTE dependencies and column search paths */ export declare class CTEDependencyTracer { private columnCollector; private silent; constructor(options?: { silent?: boolean; }); /** * Build complete CTE dependency graph */ buildGraph(query: SelectQuery): CTEGraph; /** * Trace column search path through CTE dependencies */ traceColumnSearch(query: SelectQuery, columnName: string): { searchPath: string[]; foundIn: string[]; notFoundIn: string[]; graph: CTEGraph; }; /** * Print visual representation of CTE dependency graph */ printGraph(graph: CTEGraph): void; /** * Print column search trace */ printColumnTrace(columnName: string, trace: ReturnType): void; /** * Find CTEs that are actually referenced in the given query. * Uses TableSourceCollector to properly identify table references from the AST. */ private findReferencedCTEs; private extractReturningColumns; private extractColumnsFromItems; private extractColumnName; private isSelectQuery; private calculateLevels; private getSearchOrder; }