[
https://issues.apache.org/jira/browse/HIVE-28079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17817765#comment-17817765
]
Jim Halfpenny commented on HIVE-28079:
--------------------------------------
It would seem to me there are a few ways this could be addressed:
* Allow the schema name to be set explicitly
* Always default to the schema `public` when using PostgreSQL
* Iterate through all the schemas in the database when validating the
metastore tables
* Document the need to have only one schema in the database
> Metastore schema validation fails on PostgreSQL with multiple schemas
> ---------------------------------------------------------------------
>
> Key: HIVE-28079
> URL: https://issues.apache.org/jira/browse/HIVE-28079
> Project: Hive
> Issue Type: Bug
> Components: Metastore
> Affects Versions: 3.1.3
> Reporter: Jim Halfpenny
> Priority: Minor
>
> Hive metastore connections to PostgreSQL databases containing more than one
> schema can cause the schema validation task to fail when the metastore is
> restarted. In HiveSchemaTool we see a call to getSchema(), which grabs the
> current schema for the database connection.
> {code:java}
> LOG.debug("Validating tables in the schema for version " + version);
> try {
> String schema = null;
> try {
> schema = hmsConn.getSchema();
> } catch (SQLFeatureNotSupportedException e) {
> LOG.debug("schema is not supported");
> } {code}
> If this schema is not the one that contains the Hive metastore tables then
> the validation check fails and triggers an attempt to create the tables. This
> then fails because the tables are already there.
> The scenario can occur if the hive database is set up with PostgreSQL HA
> replication and the `repmgr` schema is created in the same database as Hive.
> In the logs below we see HiveSchemaTool attempting to validate the list of
> tables in the repmgr schema against the list list of tables it expects to
> find.
> {noformat}
> Validating metastore schema tables
> 2024-02-15T14:55:07,608 DEBUG [main] beeline.HiveSchemaTool: Validating
> tables in the schema for version 3.1.0
> 2024-02-15T14:55:07,613 DEBUG [main] beeline.HiveSchemaTool: Found table
> events in HMS dbstore
> 2024-02-15T14:55:07,613 DEBUG [main] beeline.HiveSchemaTool: Found table
> monitoring_history in HMS dbstore
> 2024-02-15T14:55:07,613 DEBUG [main] beeline.HiveSchemaTool: Found table
> nodes in HMS dbstore
> 2024-02-15T14:55:07,613 DEBUG [main] beeline.HiveSchemaTool: Found table
> voting_term in HMS dbstore
> 2024-02-15T14:55:07,614 DEBUG [main] beeline.HiveSchemaTool: Parsing schema
> script
> /stackable/hive/scripts/metastore/upgrade/postgres/hive-schema-3.1.0.postgres.sql
> 2024-02-15T14:55:07,615 DEBUG [main] beeline.HiveSchemaTool: Found table
> BUCKETING_COLS in the schema
> 2024-02-15T14:55:07,616 DEBUG [main] beeline.HiveSchemaTool: Found table CDS
> in the schema
> 2024-02-15T14:55:07,616 DEBUG [main] beeline.HiveSchemaTool: Found table
> COLUMNS_V2 in the schema{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)