package my.test.command.dml;
import my.test.TestBase;
public class ExplainTest extends TestBase {
public static void main(String[] args) throws Exception {
new ExplainTest().start();
}
// 测试org.h2.command.Parser.parseExplain()
// org.h2.command.dml.Explain
@Override
public void startInternal() throws Exception {
stmt.executeUpdate("drop table IF EXISTS ExplainTest");
stmt.executeUpdate("create table IF NOT EXISTS ExplainTest(id int, name varchar(500), b boolean)");
stmt.executeUpdate("CREATE INDEX IF NOT EXISTS ExplainTestIndex ON ExplainTest(name)");
stmt.executeUpdate("insert into ExplainTest(id, name, b) values(1, 'a1', true)");
stmt.executeUpdate("insert into ExplainTest(id, name, b) values(1, 'b1', true)");
stmt.executeUpdate("insert into ExplainTest(id, name, b) values(2, 'a2', false)");
stmt.executeUpdate("insert into ExplainTest(id, name, b) values(2, 'b2', true)");
stmt.executeUpdate("insert into ExplainTest(id, name, b) values(3, 'a3', false)");
stmt.executeUpdate("insert into ExplainTest(id, name, b) values(3, 'b3', true)");
sql = "delete top 3 from ExplainTest";
sql = "delete top 3 from ExplainTest where name='a1'";
sql = "delete top 3 from ExplainTest where 'a1'>name";
sql = "delete top 3 from ExplainTest where name = null";
sql = "delete top 3 from ExplainTest where name != null";
sql = "delete top 3 from ExplainTest where name > null";
sql = "delete from ExplainTest where name > 'b1'";
sql = "delete from ExplainTest where id>2";
sql = "delete from ExplainTest where 3<2";
sql = "delete from ExplainTest where b";
sql = "delete from ExplainTest where 3>2";
executeQuery("EXPLAIN ANALYZE " + sql);
sql = "select * from ExplainTest where name > 'b1'";
sql = "select count(name) from ExplainTest where name > 'b1' group by name";
sql = "select name, count(name) from ExplainTest group by name";
sql = "WITH RECURSIVE myTempViewName(f1,f2,f3) "
+ "AS(select * from ExplainTest UNION ALL select * from ExplainTest) select f1, f2 from myTempViewName";
// sql = "EXPLAIN " + sql;
sql = "EXPLAIN ANALYZE " + sql;
// executeQuery();
}
}