You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Prasad V S (JIRA)" <ji...@apache.org> on 2016/12/08 05:27:58 UTC
[jira] [Created] (CALCITE-1533) While executing DML Queries says
table not found
Prasad V S created CALCITE-1533:
-----------------------------------
Summary: While executing DML Queries says table not found
Key: CALCITE-1533
URL: https://issues.apache.org/jira/browse/CALCITE-1533
Project: Calcite
Issue Type: Bug
Reporter: Prasad V S
Assignee: Julian Hyde
I took latest update of CALCITE-1527 still im not able to execute DML queries
Code :
BasicDataSource dataSource = new BasicDataSource();
/* SQL Server */
dataSource.setUrl("jdbc:sqlserver://111.11.11.1:1433");
dataSource.setUsername("xxxxxxx");
dataSource.setPassword("xxxxxxxxx");
dataSource.setDefaultCatalog("TRUNKDB");
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("org.apache.calcite.jdbc.Driver");
Connection connection =
DriverManager.getConnection("jdbc:calcite:");
CalciteConnection calciteConnection =
connection.unwrap(CalciteConnection.class);
SchemaPlus rootSchema = calciteConnection.getRootSchema();
/*JDBC Schema*/
JdbcSchema jdbcSchema = JdbcSchema.create(rootSchema, "TRUNKDB", dataSource, null, "dbo");
rootSchema.add("TRUNKDB", jdbcSchema);
Statement statement = connection.createStatement();
// Select statement is working
ResultSet resultSet = statement.executeQuery("select * from \"TRUNKDB\".\"survey\"");
final StringBuilder buf = new StringBuilder();
while (resultSet.next()) {
int n = resultSet.getMetaData().getColumnCount();
for (int i = 1; i <= n; i++) {
buf.append(i > 1 ? "; " : "")
.append(resultSet.getMetaData().getColumnLabel(i))
.append("=")
.append(resultSet.getObject(i));
}
System.out.println(buf.toString());
buf.setLength(0);
}
//insert statement is not working
int resultSetd1 = statement.executeUpdate("INSERT INTO \"TRUNKDB\".\"survey\"(\"id\",\"name\" ) values (1,'s')");
int resultSetd2 = statement.executeUpdate("INSERT INTO \"TRUNKDB\".\"survey1\" (\"id\",\"name\" ) SELECT \"id\",\"name\" FROM \"TRUNKDB\".\"survey\"");
System.out.println(resultSetd1);
System.out.println(resultSetd2);
Both statement throws the following exception
Exception in thread "main" java.sql.SQLException: Error while executing SQL "INSERT INTO "TRUNKDB"."survey"("id","name" ) values (1,'s')": while executing SQL [INSERT INTO "TRUNKDB"."survey" ("id", "name")
VALUES (1, 's')]
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
at org.apache.calcite.avatica.AvaticaStatement.executeLargeUpdate(AvaticaStatement.java:236)
at org.apache.calcite.avatica.AvaticaStatement.executeUpdate(AvaticaStatement.java:231)
at com.nanobi.calcite.CalciteMSSQL.main(CalciteMSSQL.java:150)
Caused by: java.lang.RuntimeException: while executing SQL [INSERT INTO "TRUNKDB"."survey" ("id", "name")
VALUES (1, 's')]
at org.apache.calcite.runtime.ResultSetEnumerable.enumerator(ResultSetEnumerable.java:154)
at org.apache.calcite.linq4j.AbstractEnumerable.iterator(AbstractEnumerable.java:33)
at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:81)
at org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:196)
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:67)
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:44)
at org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:607)
at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:599)
at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:615)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:148)
... 3 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'TRUNKDB.survey'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:662)
at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at org.apache.calcite.runtime.ResultSetEnumerable.enumerator(ResultSetEnumerable.java:144)
... 12 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)