rhombic
Version:
SQL parsing, lineage extraction and manipulation
33 lines • 1.21 kB
TypeScript
import { TablePrimary } from "..";
import { Edge, Table } from "../Lineage";
import { QueryStructureVisitor, TableRelation, QueryRelation } from "./QueryStructureVisitor";
/**
* Visitor extending #QueryStructureVisitor and implementing #onRelation() and #onColumnReference()
* to build column-based SQL lineage.
*/
export declare class LineageVisitor<TableData, ColumnData> extends QueryStructureVisitor<void> {
/** Collected relations (tables). */
tables: {
tablePrimary?: TablePrimary;
table: Table<TableData, ColumnData>;
}[];
/** Collected references (edges). */
edges: Edge[];
constructor(getTable: (table: TablePrimary) => {
table: {
id: string;
data: TableData;
};
columns: {
id: string;
data: ColumnData;
}[];
} | undefined, options?: {
positionalRefsEnabled?: boolean;
});
onColumnReference(tableId: string, columnId?: string): void;
onRelation(relation: TableRelation | QueryRelation, alias?: string): void;
protected defaultResult(): void;
aggregateResult(_aggregate: void, _nextResult: void): void;
}
//# sourceMappingURL=LineageVisitor.d.ts.map