mergeServerHandle(other.getServerHandle());
connection.getClient().executePreparedStatement(preparedStatement.getServerHandle(), resultsListener); } else { connection.getClient().runQuery(QueryType.SQL, signature.sql, resultsListener);
/** * Simple query. * @throws Exception */ @Test public void simple() throws Exception { String query = "SELECT * FROM cp.\"region.json\" ORDER BY region_id LIMIT 1"; PreparedStatement preparedStatement = createPrepareStmt(query, false, null); List<ExpectedColumnResult> expMetadata = ImmutableList.of( new ExpectedColumnResult("region_id", "BIGINT", true, 20, 0, 0, true, Long.class.getName()), new ExpectedColumnResult("sales_city", "CHARACTER VARYING", true, 65536, 65536, 0, false, String.class.getName()), new ExpectedColumnResult("sales_state_province", "CHARACTER VARYING", true, 65536, 65536, 0, false, String.class.getName()), new ExpectedColumnResult("sales_district", "CHARACTER VARYING", true, 65536, 65536, 0, false, String.class.getName()), new ExpectedColumnResult("sales_region", "CHARACTER VARYING", true, 65536, 65536, 0, false, String.class.getName()), new ExpectedColumnResult("sales_country", "CHARACTER VARYING", true, 65536, 65536, 0, false, String.class.getName()), new ExpectedColumnResult("sales_district_id", "BIGINT", true, 20, 0, 0, true, Long.class.getName()) ); verifyMetadata(expMetadata, preparedStatement.getColumnsList()); testBuilder() .unOrdered() .preparedStatement(preparedStatement.getServerHandle()) .baselineColumns("region_id", "sales_city", "sales_state_province", "sales_district", "sales_region", "sales_country", "sales_district_id") .baselineValues(0L, "None", "None", "No District", "No Region", "No Country", 0L) .go(); }
rpc.executePreparedStatement(resp.getPreparedStatement().getServerHandle(), new UserResultsListener() {
@Test public void invalidPrepareHandle() throws Exception { final ServerPreparedStatementState state = ServerPreparedStatementState.newBuilder() .setHandle(-23) // Handles start from 0 in the sever. This is relying on server implementation detail. May need to find a better way to test it. .setSqlQuery("SELECT sales_city, count(*) as cnt FROM cp.\"region.json\" " + "GROUP BY sales_city ORDER BY sales_city DESC LIMIT 2") .setPrepareId(QueryId.newBuilder().build()) .build(); PreparedStatement preparedStatement = PreparedStatement.newBuilder() .setServerHandle(PreparedStatementHandle.newBuilder().setServerInfo(state.toByteString()).build()) .build(); testBuilder() .unOrdered() .preparedStatement(preparedStatement.getServerHandle()) .baselineColumns("sales_city", "cnt") .baselineValues("Yakima", 1L) .baselineValues("Woodland Hills", 1L) .go(); }
/** * Create a prepared statement for a query that has GROUP BY clause in it */ @Test public void groupByQuery() throws Exception { String query = "SELECT sales_city, count(*) as cnt FROM cp.\"region.json\" " + "GROUP BY sales_city ORDER BY sales_city DESC LIMIT 1"; PreparedStatement preparedStatement = createPrepareStmt(query, false, null); List<ExpectedColumnResult> expMetadata = ImmutableList.of( new ExpectedColumnResult("sales_city", "CHARACTER VARYING", true, 65536, 65536, 0, false, String.class.getName()), new ExpectedColumnResult("cnt", "BIGINT", true, 20, 0, 0, true, Long.class.getName()) ); verifyMetadata(expMetadata, preparedStatement.getColumnsList()); testBuilder() .unOrdered() .preparedStatement(preparedStatement.getServerHandle()) .baselineColumns("sales_city", "cnt") .baselineValues("Yakima", 1L) .go(); }
public void writeTo(io.protostuff.Output output, com.dremio.exec.proto.UserProtos.PreparedStatement message) throws java.io.IOException { for(com.dremio.exec.proto.UserProtos.ResultColumnMetadata columns : message.getColumnsList()) output.writeObject(1, columns, com.dremio.exec.proto.SchemaUserProtos.ResultColumnMetadata.WRITE, true); if(message.hasServerHandle()) output.writeObject(2, message.getServerHandle(), com.dremio.exec.proto.SchemaUserProtos.PreparedStatementHandle.WRITE, false); } public boolean isInitialized(com.dremio.exec.proto.UserProtos.PreparedStatement message)