Carter Shanklin created HIVE-16942:
--------------------------------------
Summary: INFORMATION_SCHEMA: schematool for setting it up is not
idempotent
Key: HIVE-16942
URL: https://issues.apache.org/jira/browse/HIVE-16942
Project: Hive
Issue Type: Bug
Affects Versions: 3.0.0
Reporter: Carter Shanklin
If you run schematool to set up information schema, but the SYS database
already exists, here's what happens:
{code}
[vagrant@trunk apache-hive-3.0.0-SNAPSHOT-bin]$ schematool -metaDbType mysql
-dbType hive -initSchema -url jdbc:hive2://localhost:10000/default -driver
org.apache.hive.jdbc.HiveDriver
Metastore connection URL: jdbc:hive2://localhost:10000/default
Metastore Connection Driver : org.apache.hive.jdbc.HiveDriver
Metastore connection User: hive
Starting metastore schema initialization to 3.0.0
Initialization script hive-schema-3.0.0.hive.sql
Error: org.apache.hive.service.cli.HiveSQLException: Error while processing
statement: FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.DDLTask. Database SYS already exists
at
org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:315)
at
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:254)
{code}
Why is this a problem you ask?
If you run schematool without hive.metastore.db.type set (or set to the wrong
thing), it will create the sys database but fail to create any of the tables
within it. If you go and fix hive.metastore.db.type and re-run you'll get this
failure until you drop the SYS database (which must be done as the hive user).
Can the init script use "create database if not exists sys" rather than just
"create database sys"?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)