[
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)