* refactor: rename flinksql to flink * refactor: rename pgsql to postgresql * refactor: rename trinosql to trino * refactor: replace all default exports with named export * refactor: rename basicParser to basicSQL * refactor: rename basic-parser-types to types * refactor: replace arrow func with plain func
149 lines
4.2 KiB
TypeScript
149 lines
4.2 KiB
TypeScript
import type {
|
|
ColumnCreateTableContext,
|
|
ColumnNameCreateContext,
|
|
CreateDatabaseContext,
|
|
CreateForeignTableContext,
|
|
CreateMaterializedViewContext,
|
|
CreatePartitionForeignTableContext,
|
|
CreateViewContext,
|
|
CreatefunctionstmtContext,
|
|
DatabaseNameContext,
|
|
DatabaseNameCreateContext,
|
|
FunctionNameCreateContext,
|
|
InsertStatementContext,
|
|
QueryCreateTableContext,
|
|
SelectStatementContext,
|
|
SingleStmtContext,
|
|
TableNameContext,
|
|
TableNameCreateContext,
|
|
ViewNameContext,
|
|
ViewNameCreateContext,
|
|
} from '../../lib/postgresql/PostgreSqlParser';
|
|
import type { PostgreSqlParserListener } from '../../lib/postgresql/PostgreSqlParserListener';
|
|
import { EntityContextType } from '../common/types';
|
|
import { StmtContextType, EntityCollector } from '../common/entityCollector';
|
|
|
|
export class PostgreSqlEntityCollector extends EntityCollector implements PostgreSqlParserListener {
|
|
/** ====== Entity Begin */
|
|
exitDatabaseName(ctx: DatabaseNameContext) {
|
|
this.pushEntity(ctx, EntityContextType.DATABASE);
|
|
}
|
|
|
|
exitDatabaseNameCreate(ctx: DatabaseNameCreateContext) {
|
|
this.pushEntity(ctx, EntityContextType.DATABASE_CREATE);
|
|
}
|
|
|
|
exitTableName(ctx: TableNameContext) {
|
|
this.pushEntity(ctx, EntityContextType.TABLE);
|
|
}
|
|
|
|
exitTableNameCreate(ctx: TableNameCreateContext) {
|
|
this.pushEntity(ctx, EntityContextType.TABLE_CREATE);
|
|
}
|
|
|
|
exitViewName(ctx: ViewNameContext) {
|
|
this.pushEntity(ctx, EntityContextType.VIEW);
|
|
}
|
|
|
|
exitViewNameCreate(ctx: ViewNameCreateContext) {
|
|
this.pushEntity(ctx, EntityContextType.VIEW_CREATE);
|
|
}
|
|
|
|
exitFunctionNameCreate(ctx: FunctionNameCreateContext) {
|
|
this.pushEntity(ctx, EntityContextType.FUNCTION_CREATE);
|
|
}
|
|
|
|
exitColumnNameCreate(ctx: ColumnNameCreateContext) {
|
|
this.pushEntity(ctx, EntityContextType.COLUMN_CREATE);
|
|
}
|
|
|
|
/** ===== Statement begin */
|
|
enterSingleStatement(ctx: SingleStmtContext) {
|
|
this.pushStmt(ctx, StmtContextType.COMMON_STMT);
|
|
}
|
|
|
|
exitSingleStatement(ctx: SingleStmtContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterCreateDatabase(ctx: CreateDatabaseContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_DATABASE_STMT);
|
|
}
|
|
|
|
exitCreateDatabase(ctx: CreateDatabaseContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterQueryCreateTable(ctx: QueryCreateTableContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
}
|
|
|
|
exitQueryCreateTable(ctx: QueryCreateTableContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterColumnCreateTable(ctx: ColumnCreateTableContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
}
|
|
|
|
exitColumnCreateTable(ctx: ColumnCreateTableContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterCreateForeignTable(ctx: CreateForeignTableContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
}
|
|
|
|
exitCreateForeignTable(ctx: CreateForeignTableContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterCreatePartitionForeignTable(ctx: CreatePartitionForeignTableContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
}
|
|
|
|
exitCreatePartitionForeignTable(ctx: CreatePartitionForeignTableContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterCreateView(ctx: CreateViewContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
|
|
}
|
|
|
|
exitCreateView(ctx: CreateViewContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterCreateMaterializedView(ctx: CreateMaterializedViewContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
|
|
}
|
|
|
|
exitCreateMaterializedView(ctx: CreateMaterializedViewContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterSelectStatement(ctx: SelectStatementContext) {
|
|
this.pushStmt(ctx, StmtContextType.SELECT_STMT);
|
|
}
|
|
|
|
exitSelectStatement(ctx: SelectStatementContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterInsertStatement(ctx: InsertStatementContext) {
|
|
this.pushStmt(ctx, StmtContextType.INSERT_STMT);
|
|
}
|
|
|
|
exitInsertStatement(ctx: InsertStatementContext) {
|
|
this.popStmt();
|
|
}
|
|
|
|
enterCreatefunctionstmt(ctx: CreatefunctionstmtContext) {
|
|
this.pushStmt(ctx, StmtContextType.CREATE_FUNCTION_STMT);
|
|
}
|
|
|
|
exitCreatefunctionstmt(ctx: CreatefunctionstmtContext) {
|
|
this.popStmt();
|
|
}
|
|
}
|