[
https://issues.apache.org/jira/browse/HIVE-26217?focusedWorklogId=770733&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-770733
]
ASF GitHub Bot logged work on HIVE-26217:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 16/May/22 09:39
Start Date: 16/May/22 09:39
Worklog Time Spent: 10m
Work Description: pvary commented on code in PR #3281:
URL: https://github.com/apache/hive/pull/3281#discussion_r873524614
##########
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:
##########
@@ -7592,6 +7594,22 @@ protected Operator genFileSinkPlan(String dest, QB qb,
Operator input)
destTableIsTransactional = tblProps != null &&
AcidUtils.isTablePropertyTransactional(tblProps);
if (destTableIsTransactional) {
+ isNonNativeTable = AcidUtils.isNonNativeTable(tblProps);
+ boolean isCtas = tblDesc != null && tblDesc.isCTAS();
+ if (AcidUtils.isInsertOnlyTable(tblProps, true)) {
+ isMmTable = isMmCreate = true;
+ }
+ if (!isNonNativeTable && !destTableIsTemporary && isCtas) {
+ destTableIsFullAcid = AcidUtils.isFullAcidTable(tblProps);
+ acidOperation = getAcidType(dest);
+ isDirectInsert = isDirectInsert(destTableIsFullAcid, acidOperation);
+ boolean enableSuffixing =
conf.getBoolVar(ConfVars.HIVE_ACID_CREATE_TABLE_USE_SUFFIX)
+ ||
conf.getBoolVar(ConfVars.HIVE_ACID_LOCKLESS_READS_ENABLED);
+ if (isDirectInsert || isMmTable) {
+ String location = tblDesc.getLocation();
+ destinationPath = location == null ?
getCTASDestinationTableLocation(tblDesc, enableSuffixing) : new Path(location);
Review Comment:
How would this handle the `MetadataTransformer`s? These Transformers could
alter the table location (external/managed directory changes, etc)
Issue Time Tracking
-------------------
Worklog Id: (was: 770733)
Time Spent: 1h (was: 50m)
> Make CTAS use Direct Insert Semantics
> -------------------------------------
>
> Key: HIVE-26217
> URL: https://issues.apache.org/jira/browse/HIVE-26217
> Project: Hive
> Issue Type: Improvement
> Reporter: Sourabh Badhya
> Assignee: Sourabh Badhya
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h
> Remaining Estimate: 0h
>
> CTAS on transactional tables currently does a copy from staging location to
> table location. This can be avoided by using Direct Insert semantics. Added
> support for suffixed table locations as well.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)