rhombic
Version:
SQL parsing, lineage extraction and manipulation
61 lines • 1.82 kB
TypeScript
import { ProjectionItemContext, ProjectionItemsContext, CastContext, OrderItemContext, OrderByContext } from "../Context";
import { IToken } from "chevrotain";
import { Range } from "../utils/getRange";
declare const Visitor: new (...args: any[]) => import("chevrotain").ICstVisitor<any, any>;
/**
* Visitor to extract `projectionItem` list
*/
export declare class ProjectionItemsVisitor extends Visitor {
output: Array<{
range: Range;
isAsterisk: boolean;
expression: string;
path?: {
catalogName?: string;
schemaName?: string;
tableName?: string;
columnName: string;
};
alias?: string;
cast?: {
value: string;
type: string;
};
fn?: {
identifier: string;
values: {
expression: string;
path?: {
catalogName?: string;
schemaName?: string;
tableName?: string;
columnName: string;
};
}[];
};
sort?: {
order: "asc" | "desc";
nullsOrder?: "first" | "last";
};
}>;
sort: Array<{
expression: string;
expressionRange: Range;
order?: "asc" | "desc";
nullsOrder?: "first" | "last";
}>;
sortRange: Range | undefined;
commas: IToken[];
asteriskCount: number;
constructor();
projectionItems(ctx: ProjectionItemsContext): void;
cast(ctx: CastContext): {
value: string;
type: string;
};
orderBy(ctx: OrderByContext): void;
orderItem(ctx: OrderItemContext): void;
projectionItem(ctx: ProjectionItemContext): void;
}
export {};
//# sourceMappingURL=ProjectionItemsVisitor.d.ts.map