add calcite test case

This commit is contained in:
zyyang-taosdata 2020-09-15 00:04:15 +08:00
parent 99741286ce
commit 8a39f899b6
2 changed files with 45 additions and 48 deletions

View File

@ -242,7 +242,7 @@ public class TSDBStatement implements Statement {
public void addBatch(String sql) throws SQLException { public void addBatch(String sql) throws SQLException {
if (batchedArgs == null) { if (batchedArgs == null) {
batchedArgs = new ArrayList<String>(); batchedArgs = new ArrayList<>();
} }
batchedArgs.add(sql); batchedArgs.add(sql);
} }

View File

@ -7,34 +7,17 @@ import org.apache.calcite.sql.parser.SqlParseException;
import org.apache.commons.dbcp2.BasicDataSource; import org.apache.commons.dbcp2.BasicDataSource;
import java.sql.*; import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties; import java.util.Properties;
public class CalciteTest { public class CalciteTest {
public static void main(String[] args) throws SqlParseException, ClassNotFoundException, SQLException { public static void main(String[] args) throws SqlParseException, ClassNotFoundException, SQLException {
//创建Calcite Connection对象 // CalciteConnection calciteConnection = testMyqsl();
Class.forName("org.apache.calcite.jdbc.Driver"); CalciteConnection calciteConnection = testTSDB();
Properties info = new Properties();
info.setProperty("caseSensitive", "false");
Connection connection = DriverManager.getConnection("jdbc:calcite:", info);
CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
SchemaPlus rootSchema = calciteConnection.getRootSchema();
// JDBC adapter
Class.forName("com.mysql.jdbc.Driver");
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:mysql://192.168.56.101:3306");
dataSource.setUsername("root");
dataSource.setPassword("123456");
Map<String, String> map = new HashMap<>();
JdbcSchema schema = JdbcSchema.create(rootSchema, "hr", dataSource, null, null);
rootSchema.add("hr", schema);
Statement statement = calciteConnection.createStatement(); Statement statement = calciteConnection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from hr.depts"); ResultSet resultSet = statement.executeQuery("select * from test.t");
while (resultSet.next()) { while (resultSet.next()) {
ResultSetMetaData metaData = resultSet.getMetaData(); ResultSetMetaData metaData = resultSet.getMetaData();
@ -45,36 +28,50 @@ public class CalciteTest {
} }
resultSet.close(); resultSet.close();
statement.close(); statement.close();
connection.close(); calciteConnection.close();
}
private static CalciteConnection testMyqsl() throws ClassNotFoundException, SQLException {
//创建Calcite Connection对象
Class.forName("org.apache.calcite.jdbc.Driver");
Properties info = new Properties();
info.setProperty("lex", "JAVA");
info.setProperty("caseSensitive", "false");
Connection connection = DriverManager.getConnection("jdbc:calcite:", info);
CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
SchemaPlus rootSchema = calciteConnection.getRootSchema();
//创建TDengine的数据源schema // JDBC adapter
// Class.forName("com.taosdata.jdbc.TSDBDriver"); Class.forName("com.mysql.jdbc.Driver");
// String url = "jdbc:TAOS://127.0.0.1:6030/hdb"; BasicDataSource dataSource = new BasicDataSource();
// dataSource.setUrl(url); dataSource.setUrl("jdbc:mysql://192.168.236.135:3306/test");
// dataSource.setUsername("root"); dataSource.setUsername("root");
// dataSource.setPassword("taosdata"); dataSource.setPassword("123456");
JdbcSchema schema = JdbcSchema.create(rootSchema, "test", dataSource, null, "test");
rootSchema.add("test", schema);
// Class.forName("com.mysql.jdbc.Driver"); return calciteConnection;
// String url = "jdbc:mysql://localhost:3306/hdb"; }
// BasicDataSource dataSource = new BasicDataSource();
// dataSource.setUrl(url);
// dataSource.setUsername("root");
// dataSource.setPassword("123456");
//这里hdb是在tdengine中创建的数据库名
// JdbcSchema schema = JdbcSchema.create(rootSchema, "test", dataSource, null, "test");
// Schema schema = JdbcSchema.create(rootSchema, "test", dataSource, "hdb", null);
//创建新的schema自动映射到原来的hdb数据库
// rootSchema.add("test", schema);
// Statement stmt = calciteConnection.createStatement(); private static CalciteConnection testTSDB() throws SQLException, ClassNotFoundException {
//查询schema test中的表表名是tdengine中的表 //创建Calcite Connection对象
// ResultSet rs = stmt.executeQuery("select * from test.t"); Class.forName("org.apache.calcite.jdbc.Driver");
// for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { Properties info = new Properties();
// System.out.println(rs.getMetaData().getColumnName(i)); info.setProperty("lex", "JAVA");
// } info.setProperty("caseSensitive", "false");
// while (rs.next()) { Connection connection = DriverManager.getConnection("jdbc:calcite:", info);
// System.out.println(rs.getObject(1)); CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
// } SchemaPlus rootSchema = calciteConnection.getRootSchema();
// JDBC adapter
Class.forName("com.taosdata.jdbc.TSDBDriver");
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:TAOS://192.168.236.135:6030/test");
dataSource.setUsername("root");
dataSource.setPassword("taosdata");
JdbcSchema schema = JdbcSchema.create(rootSchema, "test", dataSource, null, "test");
rootSchema.add("test", schema);
return calciteConnection;
} }
} }