You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Ayush Saxena (Jira)" <ji...@apache.org> on 2022/09/23 22:27:00 UTC

[jira] [Resolved] (HIVE-14514) OrcRecordUpdater should clone writerOptions when creating delete event writers

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

Ayush Saxena resolved HIVE-14514.
---------------------------------
    Fix Version/s: 4.0.0-alpha-2
       Resolution: Fixed

> OrcRecordUpdater should clone writerOptions when creating delete event writers
> ------------------------------------------------------------------------------
>
>                 Key: HIVE-14514
>                 URL: https://issues.apache.org/jira/browse/HIVE-14514
>             Project: Hive
>          Issue Type: Improvement
>          Components: Transactions
>    Affects Versions: 2.2.0
>            Reporter: Saket Saurabh
>            Assignee: Dmitriy Fingerman
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 4.0.0-alpha-2
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> When split-update is enabled for ACID, OrcRecordUpdater creates two sets of writers: one for the insert deltas and one for the delete deltas. The deleteEventWriter is initialized with similar writerOptions as the normal writer, except that it has a different callback handler. Due to the lack of copy constructor/ clone() method in writerOptions, the same writerOptions object is mutated to specify a different callback for the delete case. Although, this is harmless for now, but it may become a source of confusion and possible error in future. The ideal way to fix this would be to create a clone() method for writerOptions- however this requires that the parent class of WriterOptions in the OrcFile.WriterOptions should implement Cloneable or provide a copy constructor.



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