hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Koifman (JIRA)" <>
Subject [jira] [Created] (HIVE-18154) Acid Load Data/Insert with Overwrite in multi statement transactions
Date Tue, 28 Nov 2017 01:17:00 GMT
Eugene Koifman created HIVE-18154:

             Summary: Acid Load Data/Insert with Overwrite in multi statement transactions
                 Key: HIVE-18154
             Project: Hive
          Issue Type: Bug
          Components: Transactions
    Affects Versions: 3.0.0
            Reporter: Eugene Koifman
            Assignee: Eugene Koifman

insert into T values(1,2),(3,4)
load data local inpath '" + getWarehouseDir() + "/1/data' overwrite into table T
update T set a = 0 where a = 6

So what we should have on disk is
├── base_0000028
│   ├── 000000_0
│   └── _metadata_acid
├── delete_delta_0000028_0000028_0002
│   └── bucket_00000
├── delta_0000028_0000028_0000
│   └── bucket_00000
└── delta_0000028_0000028_0002
    └── bucket_00000
where base_28 is from overwrite, delta_0000028_0000028_0000 from 1st insert nad delta_0000028_0000028_0002/delete_delta_0000028_0000028_0002
is from update.

AcidUtils.getAcidState() only returns base_28 thinking that all other deltas are included
in it - not what we want here.  

The simple way to get correct behavior is to disallow commands with Overwrite clause in multi-statement

This message was sent by Atlassian JIRA

View raw message