hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grisha Trubetskoy (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-11427) Location of temporary table for CREATE TABLE SELECT broken by HIVE-7079
Date Fri, 31 Jul 2015 23:29:04 GMT

     [ https://issues.apache.org/jira/browse/HIVE-11427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Grisha Trubetskoy updated HIVE-11427:
-------------------------------------
    Description: 
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 using CREATE
TABLE AS SELECT from a table in the default database, the following happens:
{code}
use default;
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}

I've edited this issue because my initial explanation was completely bogus. A more likely
explanation is in https://github.com/apache/hive/commit/1614314ef7bd0c3b8527ee32a434ababf7711278

{code}
 -                fname = ctx.getExternalTmpPath(
 +                fname = ctx.getExtTmpPathRelTo(  
    // and then something incorrect happens in getExtTmpPathRelTo()
{code}

In any event - the bug is that the location chosen for the temporary storage is not in the
same place as the target table. It should be same as the target table (/user/hive/warehouse/grisha.db
in the above example) because this is where presumably the user running the query would have
write permissions to.

  was:
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’

I've edited this issue because my initial explanation was completely bogus. A more likely
explanation is in https://github.com/apache/hive/commit/1614314ef7bd0c3b8527ee32a434ababf7711278
{code}
-                fname = ctx.getExternalTmpPath(
+                fname = ctx.getExtTmpPathRelTo(
{code}

In any event - the bug is that the location chosen for the temporary storage has to be in
the same place as the target table because that is where presumably the user running the query
would have write permissions to.


> 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 using
CREATE TABLE AS SELECT from a table in the default database, the following happens:
> {code}
> use default;
> 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}
> I've edited this issue because my initial explanation was completely bogus. A more likely
explanation is in https://github.com/apache/hive/commit/1614314ef7bd0c3b8527ee32a434ababf7711278
> {code}
>  -                fname = ctx.getExternalTmpPath(
>  +                fname = ctx.getExtTmpPathRelTo(  
>     // and then something incorrect happens in getExtTmpPathRelTo()
> {code}
> In any event - the bug is that the location chosen for the temporary storage is not in
the same place as the target table. It should be same as the target table (/user/hive/warehouse/grisha.db
in the above example) because this is where presumably the user running the query would have
write permissions to.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message