[
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)