SourabhBadhya commented on code in PR #3801: URL: https://github.com/apache/hive/pull/3801#discussion_r1065888532
########## itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/txn/compactor/TestCrudCompactorOnTez.java: ########## @@ -2951,4 +2952,170 @@ public void testStatsAfterCompactionPartTbl(boolean isQueryBased, boolean isAuto Assert.assertEquals("The number of rows is differing from the expected", "2", parameters.get("numRows")); executeStatementOnDriver("drop table if exists " + tblName, driver); } + + @Test + public void testMajorCompactionWithMergeNotPartitionedWithoutBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MAJOR, false, false, null, Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("base_0000003_v0000007"), true, true); + } + + @Test + public void testMajorCompactionWithMergePartitionedWithoutBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MAJOR, true, false, "ds=today", Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("base_0000003_v0000007"), true, true); + } + + @Test + public void testMajorCompactionWithMergeNotPartitionedWithBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MAJOR, false, true, null, Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("base_0000003_v0000007"), true, true); + } + + @Test + public void testMajorCompactionWithMergerPartitionedWithBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MAJOR, true, true, "ds=today", Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("base_0000003_v0000007"), true, true); + } + + @Test + public void testMinorCompactionWithMergeNotPartitionedWithoutBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MINOR, false, false, null, + Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("delta_0000001_0000003_v0000007"), true, true); + } + + @Test + public void testMinorCompactionWithMergePartitionedWithoutBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MINOR, true, false, "ds=today", + Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("delta_0000001_0000003_v0000007"), true, true); + } + + @Test + public void testMinorCompactionWithMergeNotPartitionedWithBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MINOR, false, true, null, + Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("delta_0000001_0000003_v0000007"), true, true); + } + + @Test + public void testMinorCompactionWithMergePartitionedWithBuckets() throws Exception { + testCompactionWithMerge(CompactionType.MINOR, true, true, "ds=today", + Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("delta_0000001_0000003_v0000007"), true, true); + } + + @Test + public void testMajorCompactionAfterMinorWithMerge() throws Exception { + testCompactionWithMerge(CompactionType.MINOR, true, true, "ds=today", + Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("delta_0000001_0000003_v0000007"),true, false); + testCompactionWithMerge(CompactionType.MAJOR, true, true, "ds=today", + Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000003_v0000007", "delta_0000004_0000004_0000", "delta_0000005_0000005_0000", + "delta_0000006_0000006_0000"), Collections.singletonList("base_0000006_v0000014"), false, true); + } + + @Test + public void testMinorCompactionAfterMajorWithMerge() throws Exception { + testCompactionWithMerge(CompactionType.MAJOR, false, false, null, + Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("base_0000003_v0000007"), true, false); + testCompactionWithMerge(CompactionType.MINOR, false, false, null, + Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000004_0000004_0000", "delta_0000005_0000005_0000", "delta_0000006_0000006_0000"), + Collections.singletonList("delta_0000001_0000006_v0000014"), false, true); + } + + @Test + public void testMultipleMajorCompactionWithMerge() throws Exception { + testCompactionWithMerge(CompactionType.MAJOR, true, true, "ds=today", + Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("base_0000003_v0000007"), true, false); + testCompactionWithMerge(CompactionType.MAJOR, true, true, "ds=today", + Arrays.asList("bucket_00000", "bucket_00001"), + Arrays.asList("delta_0000004_0000004_0000", "delta_0000005_0000005_0000", "delta_0000006_0000006_0000"), + Collections.singletonList("base_0000006_v0000014"), false, true); + } + + @Test + public void testMultipleMinorCompactionWithMerge() throws Exception { + testCompactionWithMerge(CompactionType.MINOR, false, false, null, + Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000001_0000", "delta_0000002_0000002_0000", "delta_0000003_0000003_0000"), + Collections.singletonList("delta_0000001_0000003_v0000007"), true, false); + testCompactionWithMerge(CompactionType.MINOR, false, false, null, + Collections.singletonList("bucket_00000"), + Arrays.asList("delta_0000001_0000003_v0000007", "delta_0000004_0000004_0000", "delta_0000005_0000005_0000", + "delta_0000006_0000006_0000"), + Collections.singletonList("delta_0000001_0000006_v0000014"), false, true); + } + + private void testCompactionWithMerge(CompactionType compactionType, boolean isPartitioned, boolean isBucketed, Review Comment: Added tests which use only Merge compaction and tests which use fallback to query-based compaction using mocking. Done. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org