Eugene Koifman created HIVE-17505:
-------------------------------------

             Summary: hive.optimize.union.remove=true doesn't work with insert 
into
                 Key: HIVE-17505
                 URL: https://issues.apache.org/jira/browse/HIVE-17505
             Project: Hive
          Issue Type: Bug
            Reporter: Eugene Koifman


add this to TestTxnNoBuckets  (not related to Acid - just a repro)
{noformat}
@Test
  public void testToAcidConversionMultiBucket() throws Exception {
    hiveConf.setBoolVar(HiveConf.ConfVars.HIVE_OPTIMIZE_UNION_REMOVE, true);
    hiveConf.setVar(HiveConf.ConfVars.HIVEFETCHTASKCONVERSION, "none");
    d.close();
    d = new Driver(hiveConf);
    int[][] values = {{1,2},{3,4},{5,6},{7,8},{9,10}};
    runStatementOnDriver("insert into " + Table.ACIDTBL + 
makeValuesClause(values));
    runStatementOnDriver("drop table if exists T");
    runStatementOnDriver("create table T (a int, b int) stored as ORC  
TBLPROPERTIES ('transactional'='false')");//todo: try with T bucketd
//    runStatementOnDriver("insert into T select a,b from (" + "select a, b 
from " + Table.ACIDTBL + " where a <= 5 union all select a, b from " + 
Table.ACIDTBL + " where a >= 5" + ") S order by a, b");
    runStatementOnDriver("insert into T(a,b) select a, b from " + Table.ACIDTBL 
+ " where a between 1 and 3 group by a, b union all select a, b from " + 
Table.ACIDTBL + " where a between 5 and 7 union all select a, b from " + 
Table.ACIDTBL + " where a >= 9");
    List<String> rs = runStatementOnDriver("select a, b, INPUT__FILE__NAME from 
T order by a, b, INPUT__FILE__NAME");
    LOG.warn("before converting to acid");
    for(String s : rs) {
      LOG.warn(s);
    }
{noformat}
this creates 
{noformat}
ekoifman:apache-hive-3.0.0-SNAPSHOT-bin ekoifman$ tree 
~/dev/hiverwgit/ql/target/tmp/org.apache.hadoop.hive.ql.TestTxnNoBuckets-1505153866252/warehouse/t/.hive-staging_hive_2017-09-11_11-18-48_614_1924461543400304640-1/
/Users/ekoifman/dev/hiverwgit/ql/target/tmp/org.apache.hadoop.hive.ql.TestTxnNoBuckets-1505153866252/warehouse/t/.hive-staging_hive_2017-09-11_11-18-48_614_1924461543400304640-1/
├── -ext-10002
│   ├── 19
│   │   └── 000000_0
│   ├── 20
│   │   └── 000000_0
│   └── 21
│       └── 000000_0
└── _tmp.-ext-10000

5 directories, 3 files
{noformat}
but 
_Hive.copyFiles(HiveConf conf, Path srcf, Path destf, FileSystem fs, boolean 
isSrcLocal, boolean isAcid, List<Path> newFiles)_

bails out at 
{noformat}
    if (srcs == null) {
      LOG.info("No sources specified to move: " + srcf);
      return;
      // srcs = new FileStatus[0]; Why is this needed?
    }

{noformat}
and so the table T ends up empty.

cc [~ashutoshc], [~jcamachorodriguez]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to