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)

Reply via email to