Search in sources :

Example 1 with TTableSchema

use of org.apache.hive.service.rpc.thrift.TTableSchema in project hive by apache.

the class HiveQueryResultSet method retrieveSchema.

/**
   * Retrieve schema from the server
   */
private void retrieveSchema() throws SQLException {
    try {
        TGetResultSetMetadataReq metadataReq = new TGetResultSetMetadataReq(stmtHandle);
        // TODO need session handle
        TGetResultSetMetadataResp metadataResp;
        metadataResp = client.GetResultSetMetadata(metadataReq);
        Utils.verifySuccess(metadataResp.getStatus());
        StringBuilder namesSb = new StringBuilder();
        StringBuilder typesSb = new StringBuilder();
        TTableSchema schema = metadataResp.getSchema();
        if (schema == null || !schema.isSetColumns()) {
            // TODO: should probably throw an exception here.
            return;
        }
        setSchema(new TableSchema(schema));
        List<TColumnDesc> columns = schema.getColumns();
        for (int pos = 0; pos < schema.getColumnsSize(); pos++) {
            if (pos != 0) {
                namesSb.append(",");
                typesSb.append(",");
            }
            String columnName = columns.get(pos).getColumnName();
            columnNames.add(columnName);
            normalizedColumnNames.add(columnName.toLowerCase());
            TPrimitiveTypeEntry primitiveTypeEntry = columns.get(pos).getTypeDesc().getTypes().get(0).getPrimitiveEntry();
            String columnTypeName = TYPE_NAMES.get(primitiveTypeEntry.getType());
            columnTypes.add(columnTypeName);
            columnAttributes.add(getColumnAttributes(primitiveTypeEntry));
        }
    } catch (SQLException eS) {
        // rethrow the SQLException as is
        throw eS;
    } catch (Exception ex) {
        ex.printStackTrace();
        throw new SQLException("Could not create ResultSet: " + ex.getMessage(), ex);
    }
}
Also used : TGetResultSetMetadataReq(org.apache.hive.service.rpc.thrift.TGetResultSetMetadataReq) TableSchema(org.apache.hive.service.cli.TableSchema) TTableSchema(org.apache.hive.service.rpc.thrift.TTableSchema) TPrimitiveTypeEntry(org.apache.hive.service.rpc.thrift.TPrimitiveTypeEntry) SQLException(java.sql.SQLException) TGetResultSetMetadataResp(org.apache.hive.service.rpc.thrift.TGetResultSetMetadataResp) TColumnDesc(org.apache.hive.service.rpc.thrift.TColumnDesc) TTableSchema(org.apache.hive.service.rpc.thrift.TTableSchema) SQLFeatureNotSupportedException(java.sql.SQLFeatureNotSupportedException) SQLException(java.sql.SQLException)

Aggregations

SQLException (java.sql.SQLException)1 SQLFeatureNotSupportedException (java.sql.SQLFeatureNotSupportedException)1 TableSchema (org.apache.hive.service.cli.TableSchema)1 TColumnDesc (org.apache.hive.service.rpc.thrift.TColumnDesc)1 TGetResultSetMetadataReq (org.apache.hive.service.rpc.thrift.TGetResultSetMetadataReq)1 TGetResultSetMetadataResp (org.apache.hive.service.rpc.thrift.TGetResultSetMetadataResp)1 TPrimitiveTypeEntry (org.apache.hive.service.rpc.thrift.TPrimitiveTypeEntry)1 TTableSchema (org.apache.hive.service.rpc.thrift.TTableSchema)1