//wpackage com.alibaba.otter.canal.client.adapter.rdb.test;
//
//import com.alibaba.fastsql.sql.ast.SQLName;
//import com.alibaba.fastsql.sql.ast.SQLStatement;
//import com.alibaba.fastsql.sql.ast.statement.SQLCreateTableStatement;
//import com.alibaba.fastsql.sql.ast.statement.SQLExprTableSource;
//import com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlCreateTableParser;
//import com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlStatementParser;
//import com.alibaba.fastsql.sql.dialect.mysql.visitor.MySqlOutputVisitor;
//import com.alibaba.fastsql.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor;
//import com.alibaba.fastsql.sql.parser.SQLStatementParser;
//
//import java.io.StringWriter;
//
//public class SqlParserTest {
//
//    public static class TableNameVisitor extends MySqlOutputVisitor {
//
//        public TableNameVisitor(Appendable appender){
//            super(appender);
//        }
//
//        @Override
//        public boolean visit(SQLExprTableSource x) {
//            SQLName table = (SQLName) x.getExpr();
//            String tableName = table.getSimpleName();
//
//            // 改写tableName
//            print0("new_" + tableName.toUpperCase());
//
//            return true;
//        }
//
//    }
//
//    public static void main(String[] args) {
//        // String sql = "select * from `mytest`.`t` where id=1 and name=ming group by
//        // uid limit 1,200 order by ctime";
//
//        String sql = "CREATE TABLE `mytest`.`user` (\n" + "  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n"
//                     + "  `name` varchar(30) NOT NULL,\n" + "  `c_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,\n"
//                     + "  `role_id` bigint(20) DEFAULT NULL,\n" + "  `test1` text,\n" + "  `test2` blob,\n"
//                     + "  `key` varchar(30) DEFAULT NULL,\n" + "  PRIMARY KEY (`id`)\n"
//                     + ") ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;";
//
//        // // 新建 MySQL Parser
//        // SQLStatementParser parser = new MySqlStatementParser(sql);
//        //
//        // // 使用Parser解析生成AST，这里SQLStatement就是AST
//        // SQLStatement sqlStatement = parser.parseStatement();
//        //
//        // MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
//        // sqlStatement.accept(visitor);
//        //
//        // System.out.println("getTables:" + visitor.getTables());
//        // System.out.println("getParameters:" + visitor.getParameters());
//        // System.out.println("getOrderByColumns:" + visitor.getOrderByColumns());
//        // System.out.println("getGroupByColumns:" + visitor.getGroupByColumns());
//        // System.out.println("---------------------------------------------------------------------------");
//        //
//        // // 使用select访问者进行select的关键信息打印
//        // // SelectPrintVisitor selectPrintVisitor = new SelectPrintVisitor();
//        // // sqlStatement.accept(selectPrintVisitor);
//        //
//        // System.out.println("---------------------------------------------------------------------------");
//        // // 最终sql输出
//        // StringWriter out = new StringWriter();
//        // TableNameVisitor outputVisitor = new TableNameVisitor(out);
//        // sqlStatement.accept(outputVisitor);
//        // System.out.println(out.toString());
//
//        MySqlCreateTableParser parser1 = new MySqlCreateTableParser(sql);
//        SQLCreateTableStatement createTableStatement = parser1.parseCreateTable();
////        MySqlSchemaStatVisitor visitor1 = new MySqlSchemaStatVisitor();
////        createTableStatement.accept(visitor1);
//        // visitor1.getTables().forEach((k, v) -> {
//        // System.out.println(k.);
//        // System.out.println(v);
//        // });
//        // 最终sql输出
//        StringWriter out = new StringWriter();
//        TableNameVisitor outputVisitor = new TableNameVisitor(out);
//        createTableStatement.accept(outputVisitor);
//        System.out.println(out.toString());
//    }
//}
