You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Riju Trivedi (Jira)" <ji...@apache.org> on 2026/03/06 07:38:00 UTC

[jira] [Comment Edited] (HIVE-29484) HMS.getFields() fails with "Storage schema reading not supported" for Avro and Hbase tables

    [ https://issues.apache.org/jira/browse/HIVE-29484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18063434#comment-18063434 ] 

Riju Trivedi edited comment on HIVE-29484 at 3/6/26 7:37 AM:
-------------------------------------------------------------

HBaseSerDe is entirely DDL-driven - all columns are always explicitly defined in the CREATE TABLE statement. No external schema source exists. The schema stored in the metastore SD is always accurate, making it safe to add HBaseSerDe to SERDES_USING_METASTORE_FOR_SCHEMA.

But in case of AvroSerDe with explicit columns or avro.schema.literal, the schema in SD is always correct.

The only gap is tables using avro.schema.url where the external schema file evolves after table creation — in that case SD cols reflect a stale snapshot. Handling this correctly requires SerDeStorageSchemaReader to be properly wired in standalone HMS.


was (Author: rtrivedi12):
HBaseSerDe is entirely DDL-driven - all columns are always explicitly defined in the CREATE TABLE statement. No external schema source exists. The schema stored in the metastore SD is always accurate, making it safe to add HBaseSerDe to SERDES_USING_METASTORE_FOR_SCHEMA.

But in case of AvroSerDe with explicit columns or avro.schema.literal, the schema in SD is always correct.

The only gap is tables using avro.schema.url where the external schema file evolves after table creation — in that case SD cols reflect a stale snapshot. Handling this correctly requires SerDeStorageSchemaReader to be properly wired in standalone HMS, which is a separate concern

> HMS.getFields() fails with "Storage schema reading not supported" for Avro and Hbase tables
> -------------------------------------------------------------------------------------------
>
>                 Key: HIVE-29484
>                 URL: https://issues.apache.org/jira/browse/HIVE-29484
>             Project: Hive
>          Issue Type: Bug
>          Components: Standalone Metastore
>    Affects Versions: 4.2.0
>            Reporter: Riju Trivedi
>            Assignee: Riju Trivedi
>            Priority: Major
>              Labels: pull-request-available
>
> When HMS.get_fields() (or get_fields_with_environment_context()) is called for a table with AvroSerDe or HBaseSerDe, it throws:
> {code:java}
> MetaException: java.lang.UnsupportedOperationException: Storage schema reading not supported{code}
> This surfaces as an end-user-visible error in tools that call getFields() on the metastore like adding Ranger policy for column lookup
> {code:java}
> Caused by: org.apache.hadoop.hive.metastore.api.MetaException: java.lang.UnsupportedOperationException: Storage schema reading not supported
>     at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_fields(ThriftHiveMetastore.java:1845)
>     at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getFields(HiveMetaStoreClient.java:3148)
>     at org.apache.ranger.services.hive.client.HiveClient.getClmListFromHM(HiveClient.java:407){code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)