/*
* Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.test.db;
import org.h2.test.TestBase;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Test of compatibility for the SHOW statement.
*/
public class TestShow extends TestBase {
/**
* Run just this test.
*
* @param a ignored
*/
public static void main(String... a) throws Exception {
TestBase.createCaller().init().test();
}
@Override
public void test() throws SQLException {
testPgCompatibility();
testMysqlCompatibility();
}
private void testPgCompatibility() throws SQLException {
Connection conn = getConnection("mem:pg");
Statement stat = conn.createStatement();
assertResult("UNICODE", stat, "SHOW CLIENT_ENCODING");
assertResult("read committed", stat, "SHOW DEFAULT_TRANSACTION_ISOLATION");
assertResult("read committed", stat, "SHOW TRANSACTION ISOLATION LEVEL");
assertResult("ISO", stat, "SHOW DATESTYLE");
assertResult("8.1.4", stat, "SHOW SERVER_VERSION");
assertResult("UTF8", stat, "SHOW SERVER_ENCODING");
}
private void testMysqlCompatibility() throws SQLException {
Connection conn = getConnection("mem:pg");
Statement stat = conn.createStatement();
ResultSet rs;
// show tables without a schema
stat.execute("create table person(id int, name varchar)");
rs = stat.executeQuery("SHOW TABLES");
assertTrue(rs.next());
assertEquals("PERSON", rs.getString(1));
assertEquals("PUBLIC", rs.getString(2));
assertFalse(rs.next());
// show tables with a schema
assertResultRowCount(1, stat.executeQuery("SHOW TABLES FROM PUBLIC"));
// columns
assertResultRowCount(2, stat.executeQuery("SHOW COLUMNS FROM person"));
}
}