[
https://issues.apache.org/jira/browse/HIVE-26976?focusedWorklogId=841078&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-841078
]
ASF GitHub Bot logged work on HIVE-26976:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 23/Jan/23 11:34
Start Date: 23/Jan/23 11:34
Worklog Time Spent: 10m
Work Description: VenuReddy2103 opened a new pull request, #3976:
URL: https://github.com/apache/hive/pull/3976
### What changes were proposed in this pull request?
Setting savepoint in transaction before direct sql processing and rollback
to savepoint before moving to JDO processing.
### Why are the changes needed?
Failure in direct SQL processing do not undo the changes made to database
before falling back to JDO based processing. Thus results in stale/dangling
entries in database forever.
For instance, during dropPartitions() direct SQL processing, after dropping
rows from few tables(like PARTITIONS, PARTITION_PARAMS, PARTITION_KEY_VALS
etc), it causes typecast exception in dropStorageDescriptors() and fallback to
JDO processing. But datanucleus JDO processing cannot delete rows from
remaining tables(i.e., from sds, serdes, sds_params, serde_params, sort_cols,
bucketing_cols, skewed cols/values/location if any for the partitions) since
the partition is already in the same transaction during direct SQL processing.
This issue is applicable in the cases where database is modified(i.e., add
partitions[https://github.com/apache/hive/pull/3905](https://github.com/apache/hive/pull/3905)
, drop partitions) in direct sql processing and fails in between.
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Tested manually and also ran unittests
Issue Time Tracking
-------------------
Worklog Id: (was: 841078)
Remaining Estimate: 0h
Time Spent: 10m
> Failure in direct SQL processing do not undo the changes made to database
> before fallback to JDO resulting in stale entries in database forever
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HIVE-26976
> URL: https://issues.apache.org/jira/browse/HIVE-26976
> Project: Hive
> Issue Type: Bug
> Components: Metastore
> Reporter: Venugopal Reddy K
> Priority: Major
> Attachments: image-2023-01-23-15-23-00-975.png
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> *[Description]*
> Failure in direct SQL processing do not undo the changes made to database
> before falling back to JDO based processing. Thus results in stale/dangling
> entries in database forever.
> For instance, during dropPartitions() direct SQL processing, after dropping
> rows from few tables(like PARTITIONS, PARTITION_PARAMS, PARTITION_KEY_VALS
> etc), it causes typecast exception in dropStorageDescriptors() and fallback
> to JDO processing. But datanucleus JDO processing cannot delete rows from
> remaining tables(i.e., from sds, serdes, sds_params, serde_params, sort_cols,
> bucketing_cols, skewed cols/values/location if any for the partitions) since
> the partition is already in the same transaction during direct SQL processing.
> !image-2023-01-23-15-23-00-975.png!
>
>
> *[Steps to reproduce]*
> Reproduction steps are described in issue -
> [https://issues.apache.org/jira/browse/HIVE-26860|https://issues.apache.org/jira/browse/HIVE-26860]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)