#6119·druid

[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