Grisha Trubetskoy created HIVE-11427: ----------------------------------------
Summary: Location of temporary table for CREATE TABLE SELECT broken by HIVE-7079 Key: HIVE-11427 URL: https://issues.apache.org/jira/browse/HIVE-11427 Project: Hive Issue Type: Bug Reporter: Grisha Trubetskoy If a user _does not_ have HDFS write permissions to the _default_ database, and attempts to create a table in a _private_ database to which the user _does_ have permissions, the following happens: {code} create table grisha.blahblah as select * from some_table; FAILED: SemanticException 0:0 Error creating temporary folder on: hdfs://nn.example.com/user/hive/warehouse. Error encountered near token 'TOK_TMP_FILE’ {code} The reason for this seems to be https://github.com/apache/hive/commit/05a2aff71c2682e01331cd333189ce7802233a75#diff-f2040374293a91cbcc6594ee571b20e4L1425, specifically this line: https://github.com/apache/hive/blob/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java#L1787, which changed like this in the aforementioned commit: {code} - location = wh.getDatabasePath(db.getDatabase(newTable.getDbName())); + location = wh.getDatabasePath(db.getDatabase(names[0])); {code} So before the database of the new table was used, and now the database of the table from the select is used as I understand it. NB: This was all inferred from just reading the code, I have not verified it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)