use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlCreateProcedureTest4 method test_0.
public void test_0() throws Exception {
String sql = "create or replace procedure sp_name(level int,age int)" + " begin" + " declare x,y,z int;" + " repeat" + " insert into test values(id,age);" + " until x>10" + " end repeat;" + " end";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
// print(statementList);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor);
// System.out.println("Tables : " + visitor.getTables());
// System.out.println("fields : " + visitor.getColumns());
// System.out.println("coditions : " + visitor.getConditions());
// System.out.println("orderBy : " + visitor.getOrderByColumns());
Assert.assertEquals(1, visitor.getTables().size());
Assert.assertEquals(2, visitor.getColumns().size());
Assert.assertEquals(0, visitor.getConditions().size());
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("test")));
Assert.assertTrue(visitor.getColumns().contains(new Column("test", "id")));
Assert.assertTrue(visitor.getColumns().contains(new Column("test", "age")));
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlCreateProcedureTest4 method test_1.
public void test_1() throws Exception {
String sql = "create or replace procedure sp_name(level int,age int)" + " begin" + " declare x,y,z int;" + " lable_1: repeat" + " insert into test values(id,age);" + " until x>10" + " end repeat lable_1;" + " end";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
// print(statementList);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor);
// System.out.println("Tables : " + visitor.getTables());
// System.out.println("fields : " + visitor.getColumns());
// System.out.println("coditions : " + visitor.getConditions());
// System.out.println("orderBy : " + visitor.getOrderByColumns());
Assert.assertEquals(1, visitor.getTables().size());
Assert.assertEquals(2, visitor.getColumns().size());
Assert.assertEquals(0, visitor.getConditions().size());
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("test")));
Assert.assertTrue(visitor.getColumns().contains(new Column("test", "id")));
Assert.assertTrue(visitor.getColumns().contains(new Column("test", "age")));
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlCreateProcedureTest6 method test_1.
public void test_1() throws Exception {
String sql = "create or replace procedure sp_name(in level int,in age int)" + " begin" + " insert into test values(id,age);" + " end";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
// print(statementList);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor);
// System.out.println("Tables : " + visitor.getTables());
// System.out.println("fields : " + visitor.getColumns());
// System.out.println("coditions : " + visitor.getConditions());
// System.out.println("orderBy : " + visitor.getOrderByColumns());
Assert.assertEquals(1, visitor.getTables().size());
Assert.assertEquals(2, visitor.getColumns().size());
Assert.assertEquals(0, visitor.getConditions().size());
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("test")));
Assert.assertTrue(visitor.getColumns().contains(new Column("test", "id")));
Assert.assertTrue(visitor.getColumns().contains(new Column("test", "age")));
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlCreateTableTest71 method test_one.
@Test
public void test_one() throws Exception {
String sql = //
"create table xx (id bigint unsigned not null comment 'aa' auto_increment," + //
"gmt_create datetime not null comment '创建时间'," + //
"gmt_modified datetime not null comment '修改时间', " + "primary key (id)) comment='re'";
MySqlStatementParser parser = new MySqlStatementParser(sql);
SQLStatement stmt = parser.parseCreateTable();
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
stmt.accept(visitor);
Column column = visitor.getColumn("xx", "id");
Assert.assertNotNull(column);
Assert.assertEquals("bigint", column.getDataType());
{
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("CREATE TABLE xx (" + "\n\tid bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'aa', " + "\n\tgmt_create datetime NOT NULL COMMENT '创建时间', " + "\n\tgmt_modified datetime NOT NULL COMMENT '修改时间', " + "\n\tPRIMARY KEY (id)" + "\n) COMMENT = 're'", output);
}
{
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
Assert.assertEquals("create table xx (" + "\n\tid bigint unsigned not null auto_increment comment 'aa', " + "\n\tgmt_create datetime not null comment '创建时间', " + "\n\tgmt_modified datetime not null comment '修改时间', " + "\n\tprimary key (id)" + "\n) comment = 're'", output);
}
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlCreateTableTest72 method test_one.
@Test
public void test_one() throws Exception {
String sql = "CREATE TABLE \"MessageInstance\" (" + " \"id\" int(11) NOT NULL AUTO_INCREMENT," + " \"messageId\" int(11) NOT NULL," + " PRIMARY KEY (\"id\")," + " KEY \"ix_messageId\" (\"messageId\")" + ")";
MySqlStatementParser parser = new MySqlStatementParser(sql);
SQLStatement stmt = parser.parseCreateTable();
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
stmt.accept(visitor);
Column column = visitor.getColumn("MessageInstance", "id");
Assert.assertNotNull(column);
Assert.assertEquals("int", column.getDataType());
{
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("CREATE TABLE \"MessageInstance\" (" + "\n\t\"id\" int(11) NOT NULL AUTO_INCREMENT, " + "\n\t\"messageId\" int(11) NOT NULL, " + "\n\tPRIMARY KEY ('id'), " + "\n\tKEY \"ix_messageId\" ('messageId')" + "\n)", output);
}
{
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
Assert.assertEquals("create table \"MessageInstance\" (" + "\n\t\"id\" int(11) not null auto_increment, " + "\n\t\"messageId\" int(11) not null, " + "\n\tprimary key ('id'), " + "\n\tkey \"ix_messageId\" ('messageId')" + "\n)", output);
}
}
Aggregations