mysql parser show

This commit is contained in:
温少
2012-05-16 13:34:24 +08:00
parent 029ec5f034
commit 30457a8c06
9 changed files with 387 additions and 33 deletions
@@ -51,6 +51,8 @@ import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowSlaveHostsStat
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowSlaveStatusStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowStatusStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowTableStatusStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowTriggersStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowVariantsStatement;
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
import com.alibaba.druid.sql.parser.Token;
@@ -919,6 +921,42 @@ public class DALParserTest extends TestCase {
Assert.assertEquals("SHOW TABLE STATUS FROM mysql", output);
}
public void test_show_triggers() throws Exception {
String sql = "SHOW TRIGGERS LIKE 'acc%'";
MySqlStatementParser parser = new MySqlStatementParser(sql);
MySqlShowTriggersStatement show = (MySqlShowTriggersStatement) parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(show);
Assert.assertEquals("SHOW TRIGGERS LIKE 'acc%'", output);
}
public void test_show_variants() throws Exception {
String sql = "SHOW VARIABLES LIKE '%size%';";
MySqlStatementParser parser = new MySqlStatementParser(sql);
MySqlShowVariantsStatement show = (MySqlShowVariantsStatement) parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(show);
Assert.assertEquals("SHOW VARIABLES LIKE '%size%'", output);
}
public void test_show_variants_1() throws Exception {
String sql = "SHOW GLOBAL VARIABLES LIKE '%size%';";
MySqlStatementParser parser = new MySqlStatementParser(sql);
MySqlShowVariantsStatement show = (MySqlShowVariantsStatement) parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(show);
Assert.assertEquals("SHOW GLOBAL VARIABLES LIKE '%size%'", output);
}
public void test_show_variants_2() throws Exception {
String sql = "SHOW SESSION VARIABLES LIKE '%size%';";
MySqlStatementParser parser = new MySqlStatementParser(sql);
MySqlShowVariantsStatement show = (MySqlShowVariantsStatement) parser.parseStatementList().get(0);
parser.match(Token.EOF);
String output = SQLUtils.toMySqlString(show);
Assert.assertEquals("SHOW SESSION VARIABLES LIKE '%size%'", output);
}
//
// public void testShow() throws Exception {
//