[BUG] SQLUtils.refactor表名改写错误
Author: Jin-2019Created Aug 26, 2024Updated Aug 2, 2026
Database Type
MySQL
Database Version
MySQL
Druid Version
1.2.23
JDK Version
JDK 8
Error SQL
select db_a.tbl_b.col_c from db_a.tbl_b
Testcase Code
public void testRenameTable() {
Map<String, String> tableMapping = Collections.singletonMap("tbl_b", "xxx");
String sql = "select db_a.tbl_b.col_c from db_a.tbl_b";
String out = SQLUtils.refactor(sql, DbType.mysql,tableMapping);
System.out.println("input: "+ sql);
System.out.println("out: "+ out);
}Stacktrace Info
No response
Error Info
改写表名tbl_b为xxx,在select item中的表名未被正确改写。
input: select db_a.tbl_b.col_c from db_a.tbl_b out: SELECT db_a.tbl_b.col_c FROM db_a.xxx
补充
另一个case,当select的查询列中使用 'user_extra.col+1 '表名无法被正确替换
select user_extra.col+1 from user_extra Source: alibaba/druid