[ 
https://issues.apache.org/jira/browse/HIVE-27164?focusedWorklogId=854005&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-854005
 ]

ASF GitHub Bot logged work on HIVE-27164:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 30/Mar/23 18:28
            Start Date: 30/Mar/23 18:28
    Worklog Time Spent: 10m 
      Work Description: VenuReddy2103 opened a new pull request, #4176:
URL: https://github.com/apache/hive/pull/4176

   ### What changes were proposed in this pull request?
   Added `SessionHiveMetaStoreClient.getTranslateTableDryrun()` that detects 
the temporary tables and process it.
   
   ### Why are the changes needed?
   Temporary tables are in-memory tables maintained per session at HS2. They 
not managed at HMS. API calls to HMS are intercepted and processed at 
`SessionHiveMetaStoreClient` itself for the temporary tables. But missed to 
intercept for `getTranslateTableDryrun()` API.
   
   ### Does this PR introduce _any_ user-facing change?
   No
   
   ### How was this patch tested?
   Tested the scenario manually and added unittests
   




Issue Time Tracking
-------------------

            Worklog Id:     (was: 854005)
    Remaining Estimate: 0h
            Time Spent: 10m

> Create Temp Txn Table As Select is failing at tablePath validation
> ------------------------------------------------------------------
>
>                 Key: HIVE-27164
>                 URL: https://issues.apache.org/jira/browse/HIVE-27164
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2, Metastore
>            Reporter: Naresh P R
>            Assignee: Venugopal Reddy K
>            Priority: Major
>         Attachments: mm_cttas.q
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> After HIVE-25303, every CTAS goes for  
> HiveMetaStore$HMSHandler#translate_table_dryrun() call to fetch table 
> location for CTAS queries which fails with following exception for temp 
> tables if MetastoreDefaultTransformer is set.
> {code:java}
> 2023-03-17 16:41:23,390 INFO  
> org.apache.hadoop.hive.metastore.MetastoreDefaultTransformer: 
> [pool-6-thread-196]: Starting translation for CreateTable for processor 
> HMSClient-@localhost with [EXTWRITE, EXTREAD, HIVEBUCKET2, HIVEFULLACIDREAD, 
> HIVEFULLACIDWRITE, HIVECACHEINVALIDATE, HIVEMANAGESTATS, 
> HIVEMANAGEDINSERTWRITE, HIVEMANAGEDINSERTREAD, HIVESQL, HIVEMQT, 
> HIVEONLYMQTWRITE] on table test_temp
> 2023-03-17 16:41:23,392 ERROR 
> org.apache.hadoop.hive.metastore.RetryingHMSHandler: [pool-6-thread-196]: 
> MetaException(message:Illegal location for managed table, it has to be within 
> database's managed location)
>         at 
> org.apache.hadoop.hive.metastore.MetastoreDefaultTransformer.validateTablePaths(MetastoreDefaultTransformer.java:886)
>         at 
> org.apache.hadoop.hive.metastore.MetastoreDefaultTransformer.transformCreateTable(MetastoreDefaultTransformer.java:666)
>         at 
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.translate_table_dryrun(HiveMetaStore.java:2164)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) {code}
> I am able to repro this issue using attached testcase. [^mm_cttas.q]
>  
> There are multiple ways to fix this issue
>  * Have temp txn table path under db's managed location path. This will help 
> with encryption zone paths as well.
>  * Skip location check for temp tables at 
> MetastoreDefaultTransformer#validateTablePaths()



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to