You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by 勾王敏浩 <gw...@mails.tsinghua.edu.cn> on 2019/03/03 08:15:05 UTC

question using ddl

Hi,
  Currently I am using calcite jdbc trying to create a table in mysql.
  My code is like this.


public static void main(String[] args) throws Exception {

    Class.forName("org.apache.calcite.jdbc.Driver");

Properties info = new Properties();
info.setProperty("lex", "JAVA");
info.setProperty("remarks","true");
info.setProperty("parserFactory","org.apache.calcite.sql.parser.ddl.SqlDdlParserImpl#FACTORY");
Connection connection = DriverManager.getConnection("jdbc:calcite:", info);
CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
System.out.println(calciteConnection.getProperties());
SchemaPlus rootSchema = calciteConnection.getRootSchema();

Class.forName("com.mysql.jdbc.Driver");
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:mysql://192.168.130.7/hr");
dataSource.setUsername("root");
dataSource.setPassword("123456");
Schema schema = JdbcSchema.create(rootSchema, "ex", dataSource, null, "hr");

rootSchema.add("ex", schema);
DatabaseMetaData databaseMetaData = calciteConnection.getMetaData();
//    ResultSet rs=databaseMetaData.getTables(null,null,"%",new String[]{"TABLE"});
//    ResultSet rs1 = databaseMetaData.getColumns(null, null, "dwf_test", "%");

Statement statement = calciteConnection.createStatement();
System.out.println(statement.execute(
"create table ex.emp (id varchar(255) ,test int )"));
System.out.println(statement.execute("insert into ex.emp values ('test',1)"));

//    PGConnection.outputResult(rs,System.out,new String[]{"TABLE_NAME","REMARKS"});
//    PGConnection.outputResult(rs1, System.out, new String[]{"TABLE_NAME","COLUMN_NAME","TYPE_NAME"});
//    statement.close();
connection.close();
}
  The code runs without error.However,I can not find the table in the mysql server.
  I think I need your help.
Thank you.