lava-oushudb-dt-sql-parser/src/parser/postgresql/postgreEntityCollector.ts
Hayden bb0fad1dbe
refactor: standard naming (#278)
* 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
2024-03-27 10:33:25 +08:00

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();
}
}