public static MessageType getRequestedSchema(
    boolean indexAccess,
    List<String> columnNamesList,
    List<TypeInfo> columnTypesList,
    MessageType fileSchema,
    Configuration configuration) {
    MessageType tableSchema =
      getRequestedSchemaForIndexAccess(indexAccess, columnNamesList, columnTypesList, fileSchema);

    List<Integer> indexColumnsWanted = ColumnProjectionUtils.getReadColumnIDs(configuration);
    //TODO Duplicated code for init method since vectorization reader path doesn't support Nested
    // column pruning so far. See HIVE-15156
    if (!ColumnProjectionUtils.isReadAllColumns(configuration) && !indexColumnsWanted.isEmpty()) {
      return DataWritableReadSupport
        .getSchemaByIndex(tableSchema, columnNamesList, indexColumnsWanted);
    } else {
      return tableSchema;
    }
  }
It's used for vectorized code path.
@param indexAccess
@param columnNamesList
@param columnTypesList
@param fileSchema
@param configuration
@return
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/DataWritableReadSupport.java