This is an automated email from the ASF dual-hosted git repository. daijy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push: new 2d9e0e4 HIVE-19831: Hiveserver2 should skip doAuth checks for CREATE DATABASE/TABLE if database/table already exists (Rajkumar Singh, reviewed by Daniel Dai) 2d9e0e4 is described below commit 2d9e0e41ec6db234b8a759f1c5aff8f79227f158 Author: Daniel Dai <da...@cloudera.com> AuthorDate: Mon Jul 1 11:22:15 2019 -0700 HIVE-19831: Hiveserver2 should skip doAuth checks for CREATE DATABASE/TABLE if database/table already exists (Rajkumar Singh, reviewed by Daniel Dai) --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java index ae622c8..8c764e2 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -1088,6 +1088,15 @@ public class Driver implements IDriver { additionalInputs.add(new ReadEntity(e.getTable())); } } + // skipping the auth check for the "CREATE DATABASE" operation if database already exists + // we know that if the database already exists then "CREATE DATABASE" operation will fail. + if(op.equals(HiveOperation.CREATEDATABASE)){ + for (WriteEntity e : sem.getOutputs()) { + if(e.getType() == Entity.Type.DATABASE && db.databaseExists(e.getName().split(":")[1])){ + return; + } + } + } Set<WriteEntity> additionalOutputs = new HashSet<WriteEntity>(); for (WriteEntity e : sem.getOutputs()) {