use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlUpdateTest_4 method test_0.
public void test_0() throws Exception {
String sql = "insert into darenai_stat_url SET user='nologin',ip='58.101.223.183',reffer='http://item.taobao.com/item.htm?spm=a230r.1.14.419.KDVewC&id=17052767689',url='/d/jingpinhui?spm=2013.1.0.0.zr4nLz&ac=shop&imageid=1019937265&s=1259538&s=1259538',shopnick='零利润3232',time=NOW()";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement stmt = statementList.get(0);
// print(statementList);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
stmt.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(6, visitor.getColumns().size());
Assert.assertEquals(0, visitor.getConditions().size());
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("darenai_stat_url")));
Assert.assertTrue(visitor.getColumns().contains(new Column("darenai_stat_url", "user")));
Assert.assertTrue(visitor.getColumns().contains(new Column("darenai_stat_url", "ip")));
{
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("INSERT INTO darenai_stat_url (user, ip, reffer, url, shopnick" + "\n\t, time)" + "\nVALUES ('nologin', '58.101.223.183', 'http://item.taobao.com/item.htm?spm=a230r.1.14.419.KDVewC&id=17052767689', '/d/jingpinhui?spm=2013.1.0.0.zr4nLz&ac=shop&imageid=1019937265&s=1259538&s=1259538', '零利润3232'" + //
"\n\t, NOW())", output);
}
{
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
Assert.assertEquals("insert into darenai_stat_url (user, ip, reffer, url, shopnick" + "\n\t, time)" + "\nvalues ('nologin', '58.101.223.183', 'http://item.taobao.com/item.htm?spm=a230r.1.14.419.KDVewC&id=17052767689', '/d/jingpinhui?spm=2013.1.0.0.zr4nLz&ac=shop&imageid=1019937265&s=1259538&s=1259538', '零利润3232'" + //
"\n\t, NOW())", output);
}
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlUpdateTest_9 method test_0.
public void test_0() throws Exception {
String sql = "update tb1 a , tb2 b set a.name='abc' where a.id=b.id";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement stmt = statementList.get(0);
print(statementList);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
stmt.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(2, visitor.getTables().size());
Assert.assertEquals(3, visitor.getColumns().size());
// Assert.assertEquals(2, visitor.getConditions().size());
Assert.assertTrue(visitor.containsTable("tb1"));
Assert.assertTrue(visitor.containsTable("tb2"));
Assert.assertTrue(visitor.getColumns().contains(new Column("tb1", "id")));
Assert.assertTrue(visitor.getColumns().contains(new Column("tb1", "name")));
Assert.assertTrue(visitor.getColumns().contains(new Column("tb2", "id")));
{
String output = SQLUtils.toMySqlString(stmt);
Assert.assertEquals("UPDATE tb1 a, tb2 b\n" + "SET a.name = 'abc'\n" + //
"WHERE a.id = b.id", output);
}
{
String output = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
Assert.assertEquals("update tb1 a, tb2 b\n" + "set a.name = 'abc'\n" + //
"where a.id = b.id", output);
}
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlSchemaStatVisitorTest1 method test_0.
public void test_0() throws Exception {
String sql = "select a.name, b.name FROM users a, usergroups b on a.groupId = b.id";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor);
System.out.println(sql);
System.out.println("Tables : " + visitor.getTables());
System.out.println("fields : " + visitor.getColumns());
Assert.assertEquals(2, visitor.getTables().size());
Assert.assertEquals(true, visitor.containsTable("users"));
Assert.assertEquals(true, visitor.containsTable("usergroups"));
Assert.assertEquals(4, visitor.getColumns().size());
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users", "groupId")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users", "name")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("usergroups", "id")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("usergroups", "name")));
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlSelectTest_1 method test_0.
public void test_0() throws Exception {
String sql = "SELECT t1.name, t2.salary FROM employee t1, info t2 WHERE t1.name = t2.name;";
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(2, visitor.getTables().size());
Assert.assertEquals(3, visitor.getColumns().size());
Assert.assertEquals(2, visitor.getConditions().size());
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("employee")));
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("info")));
Assert.assertTrue(visitor.getColumns().contains(new Column("employee", "name")));
Assert.assertTrue(visitor.getColumns().contains(new Column("info", "name")));
Assert.assertTrue(visitor.getColumns().contains(new Column("info", "salary")));
}
use of com.alibaba.druid.stat.TableStat.Column in project druid by alibaba.
the class MySqlSchemaStatVisitorTest3 method test_0.
public void test_0() throws Exception {
String sql = "insert into users2 (id2, name2) select id, name FROM users where loginCount > 1";
MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor);
System.out.println(sql);
System.out.println("Tables : " + visitor.getTables());
System.out.println("fields : " + visitor.getColumns());
Assert.assertEquals(2, visitor.getTables().size());
Assert.assertEquals(true, visitor.containsTable("users"));
Assert.assertEquals(true, visitor.containsTable("users2"));
Assert.assertEquals(5, visitor.getColumns().size());
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users", "id")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users", "name")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users", "loginCount")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users2", "name2")));
Assert.assertEquals(true, visitor.getColumns().contains(new Column("users2", "id2")));
}
Aggregations