rawsql-ts
Version:
[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
59 lines (58 loc) • 1.57 kB
TypeScript
import { SelectQuery } from "../models/SelectQuery";
/**
* CTE dependency tree node for visualization
*/
export interface CTENode {
name: string;
columns: string[];
dependencies: string[];
dependents: string[];
query: SelectQuery;
level: number;
}
/**
* CTE dependency graph for debugging complex queries
*/
export interface CTEGraph {
nodes: Map<string, CTENode>;
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<typeof this.traceColumnSearch>): void;
/**
* Find CTEs that are actually referenced in the given query.
* Uses TableSourceCollector to properly identify table references from the AST.
*/
private findReferencedCTEs;
private calculateLevels;
private getSearchOrder;
}