代码如下:
String stmt = "SHOW FULL TABLES FROM test-ds WHERE Table_type != 'VIEW'";
MySqlStatementParser parser = new MySqlStatementParser(stmt);
MySqlShowTablesStatement statement = (MySqlShowTablesStatement) parser.parseStatement();
SQLName database = statement.getDatabase();
执行后获取的 database = 'test',不是预期的 'test-ds'
1条答案
按热度按时间pokxtpni1#
分析代码,发现是 CharTypes.identifierFlags 判断 identifier 缺少判断 ‘-’ 字符。
由于 odps 采用 ‘--’ 做 comment
因此只修改了 MySQL 的逻辑:
MysqlLexer.java