Ejemplo n.º 1
0
        private static IParseTreeVisitor <IASTNode> CreateParseTreeVisitor(ISqlParserConfiguration configuration, SqlCommandTypeEnum type)
        {
            ISqlVisitorFacade visitorFacade = configuration.CreateVisitorFacade();

            switch (type)
            {
            case SqlCommandTypeEnum.DML:
                return((IParseTreeVisitor <IASTNode>)visitorFacade.CreateDMLVisitor());

            case SqlCommandTypeEnum.DDL:
                return((IParseTreeVisitor <IASTNode>)visitorFacade.CreateDDLVisitor());

            case SqlCommandTypeEnum.TCL:
                return((IParseTreeVisitor <IASTNode>)visitorFacade.CreateTCLVisitor());

            case SqlCommandTypeEnum.DCL:
                return((IParseTreeVisitor <IASTNode>)visitorFacade.CreateDCLVisitor());

            case SqlCommandTypeEnum.DAL:
                return((IParseTreeVisitor <IASTNode>)visitorFacade.CreateDALVisitor());

            case SqlCommandTypeEnum.RL:
                return((IParseTreeVisitor <IASTNode>)visitorFacade.CreateRLVisitor());

            default:
                throw new ShardingSqlParsingException($"Can not support SQL statement type: `{type}`");
            }
        }
Ejemplo n.º 2
0
 private static ISqlParser CreateSqlParser(string sql, ISqlParserConfiguration configuration)
 {
     return(configuration.CreateSqlParser(sql));
 }