@Test public void testStringColumnsMetadata() throws Exception { String query = "select varchar_field, char_field, string_field from hive.readtest"; Map<String, Integer> expectedResult = new HashMap<>(); expectedResult.put("varchar_field", 50); expectedResult.put("char_field", 10); expectedResult.put("string_field", HiveVarchar.MAX_VARCHAR_LENGTH); verifyColumnsMetadata(client.createPreparedStatement(query).get() .getPreparedStatement().getColumnsList(), expectedResult); try { test("alter session set `%s` = true", ExecConstants.EARLY_LIMIT0_OPT_KEY); verifyColumnsMetadata(client.createPreparedStatement(String.format("select * from (%s) t limit 0", query)).get() .getPreparedStatement().getColumnsList(), expectedResult); } finally { test("alter session reset `%s`", ExecConstants.EARLY_LIMIT0_OPT_KEY); } }
protected DrillPreparedStatementImpl(DrillConnectionImpl connection, StatementHandle h, Meta.Signature signature, PreparedStatement preparedStatementHandle, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { super(connection, h, signature, resultSetType, resultSetConcurrency, resultSetHoldability); connection.openStatementsRegistry.addStatement(this); this.preparedStatementHandle = preparedStatementHandle; if (preparedStatementHandle != null) { ((DrillColumnMetaDataList) signature.columns).updateColumnMetaData(preparedStatementHandle.getColumnsList()); } }
public void writeTo(com.dyuproject.protostuff.Output output, org.apache.drill.exec.proto.UserProtos.PreparedStatement message) throws java.io.IOException { for(org.apache.drill.exec.proto.UserProtos.ResultColumnMetadata columns : message.getColumnsList()) output.writeObject(1, columns, org.apache.drill.exec.proto.SchemaUserProtos.ResultColumnMetadata.WRITE, true); if(message.hasServerHandle()) output.writeObject(2, message.getServerHandle(), org.apache.drill.exec.proto.SchemaUserProtos.PreparedStatementHandle.WRITE, false); } public boolean isInitialized(org.apache.drill.exec.proto.UserProtos.PreparedStatement message)
protected DrillPreparedStatementImpl(DrillConnectionImpl connection, StatementHandle h, Meta.Signature signature, PreparedStatement preparedStatementHandle, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { super(connection, h, signature, resultSetType, resultSetConcurrency, resultSetHoldability); connection.openStatementsRegistry.addStatement(this); this.preparedStatementHandle = preparedStatementHandle; if (preparedStatementHandle != null) { ((DrillColumnMetaDataList) signature.columns).updateColumnMetaData(preparedStatementHandle.getColumnsList()); } }
public void writeTo(com.dyuproject.protostuff.Output output, org.apache.drill.exec.proto.UserProtos.PreparedStatement message) throws java.io.IOException { for(org.apache.drill.exec.proto.UserProtos.ResultColumnMetadata columns : message.getColumnsList()) output.writeObject(1, columns, org.apache.drill.exec.proto.SchemaUserProtos.ResultColumnMetadata.WRITE, true); if(message.hasServerHandle()) output.writeObject(2, message.getServerHandle(), org.apache.drill.exec.proto.SchemaUserProtos.PreparedStatementHandle.WRITE, false); } public boolean isInitialized(org.apache.drill.exec.proto.UserProtos.PreparedStatement message)