UNPKG

rawsql-ts

Version:

High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.

48 lines (47 loc) 1.98 kB
import { SimpleSelectQuery } from "../models/SimpleSelectQuery"; import { ColumnReference, ValueComponent } from "../models/ValueComponent"; export type ClauseScopedColumnReferenceClause = "select" | "where" | "joinOn" | "groupBy" | "having" | "orderBy" | "window" | "limitOffset"; export interface ClauseScopedColumnReferenceInfo { clause: ClauseScopedColumnReferenceClause; reference: ColumnReference; qualifiedName: string; namespaces: string[]; namespace: string | null; column: string; expression: ValueComponent; } export interface ClauseScopedColumnReferences { select: ClauseScopedColumnReferenceInfo[]; where: ClauseScopedColumnReferenceInfo[]; joinOn: ClauseScopedColumnReferenceInfo[]; groupBy: ClauseScopedColumnReferenceInfo[]; having: ClauseScopedColumnReferenceInfo[]; orderBy: ClauseScopedColumnReferenceInfo[]; window: ClauseScopedColumnReferenceInfo[]; limitOffset: ClauseScopedColumnReferenceInfo[]; } /** * Collects ColumnReference nodes grouped by the root SimpleSelectQuery clause that owns them. * * Subquery and CTE bodies are intentionally not traversed because they have their own query-body * ownership. Use ColumnReferenceCollector when comprehensive tree traversal is required. */ export declare class ClauseScopedColumnReferenceCollector { collect(query: SimpleSelectQuery): ClauseScopedColumnReferences; private createEmptyResult; private collectFromSelectClause; private collectFromJoinClauses; private collectFromWhereClause; private collectFromGroupByClause; private collectFromHavingClause; private collectFromOrderByClause; private collectFromLimitClause; private collectFromOffsetClause; private collectFromFetchClause; private collectFromWindowsClause; private collectFromValueComponent; private collectFromFunctionCall; private collectFromWindowFrameExpression; private createInfo; private getNameText; }