[zebra源码]逻辑表名的解析过程
zebra 解析sql使用的阿里druid连接池内部的 ast解析器
SQLParser#parseInternal(SQLStatement stmt)
解析sql 语句的时候,会使用自定义 ast 的访问器 AbstractMySQLASTVisitor 去访问 SQLStatement 的 SQLExprTableSource
@Override
public boolean visit(SQLExprTableSource x) {
SQLName table = (SQLName) x.getExpr();
String simpleName = table.getSimpleName();
String tableName = simpleName.startsWith("`") ? parseTableName(simpleName) : simpleName;
result.getRouterContext().getTableSet().add(tableName);
return true;
}
从而获取到逻辑表明, 填充到路由上下文 RouterContext 中供后续使用
完整目录:数据库中间件zebra源码分析
本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/15022081.html