rawsql-ts
Version:
High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
54 lines (53 loc) • 3.07 kB
TypeScript
import type { SelectQuery } from '../models/SelectQuery';
import type { InsertQuery } from '../models/InsertQuery';
import type { UpdateQuery } from '../models/UpdateQuery';
import type { DeleteQuery } from '../models/DeleteQuery';
import type { CreateTableQuery } from '../models/CreateTableQuery';
import type { MergeQuery } from '../models/MergeQuery';
import type { DropTableStatement, DropIndexStatement, CreateIndexStatement, CreateSchemaStatement, DropSchemaStatement, AlterTableStatement, DropConstraintStatement, AnalyzeStatement, ExplainStatement, CreateSequenceStatement, AlterSequenceStatement, CommentOnStatement, VacuumStatement, ReindexStatement, ClusterStatement, CheckpointStatement } from '../models/DDLStatements';
export type ParsedStatement = SelectQuery | InsertQuery | UpdateQuery | DeleteQuery | CreateTableQuery | MergeQuery | DropTableStatement | DropIndexStatement | DropSchemaStatement | CreateIndexStatement | CreateSchemaStatement | CreateSequenceStatement | AlterTableStatement | AlterSequenceStatement | CommentOnStatement | DropConstraintStatement | AnalyzeStatement | ExplainStatement | VacuumStatement | ReindexStatement | ClusterStatement | CheckpointStatement;
export interface SqlParserOptions {
mode?: 'single' | 'multiple';
skipEmptyStatements?: boolean;
}
export interface SqlParserManyOptions {
skipEmptyStatements?: boolean;
}
/**
* Canonical entry point for SQL parsing.
* Delegates to dedicated parsers for SELECT, INSERT, UPDATE, and DELETE statements, and is designed to embrace additional statement types next.
*/
export declare class SqlParser {
static parse(sql: string, options?: SqlParserOptions): ParsedStatement;
static parseMany(sql: string, options?: SqlParserManyOptions): ParsedStatement[];
private static dispatchParse;
private static parseSelectStatement;
private static parseExplainStatement;
private static parseVacuumStatement;
private static parseReindexStatement;
private static parseClusterStatement;
private static parseCheckpointStatement;
private static parseInsertStatement;
private static parseUpdateStatement;
private static parseDeleteStatement;
private static parseCreateTableStatement;
private static parseDropTableStatement;
private static parseDropSchemaStatement;
private static parseDropIndexStatement;
private static parseCreateIndexStatement;
private static parseCreateSchemaStatement;
private static parseCreateSequenceStatement;
private static parseAlterSequenceStatement;
private static parseAlterTableStatement;
private static parseDropConstraintStatement;
private static parseCommentOnStatement;
private static parseAnalyzeStatement;
private static parseMergeStatement;
private static parseStatementWithParser;
private static parseStatementWithCallback;
private static assertFullyConsumed;
private static errorMessage;
private static getCommandAfterWith;
private static readNextMeaningfulStatement;
private static consumeNextStatement;
}