MCPcopy Create free account
hub / github.com/apache/datafusion / repartition_empty_files

Function repartition_empty_files

datafusion/datasource/src/file_groups.rs:653–701  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

651 /// Repartition when there is a empty file in file groups
652 #[test]
653 fn repartition_empty_files() {
654 let pfile_a = pfile("a", 10);
655 let pfile_b = pfile("b", 10);
656 let pfile_empty = pfile("empty", 0);
657
658 let empty_first = vec![
659 FileGroup::new(vec![pfile_empty.clone()]),
660 FileGroup::new(vec![pfile_a.clone()]),
661 FileGroup::new(vec![pfile_b.clone()]),
662 ];
663 let empty_middle = vec![
664 FileGroup::new(vec![pfile_a.clone()]),
665 FileGroup::new(vec![pfile_empty.clone()]),
666 FileGroup::new(vec![pfile_b.clone()]),
667 ];
668 let empty_last = vec![
669 FileGroup::new(vec![pfile_a]),
670 FileGroup::new(vec![pfile_b]),
671 FileGroup::new(vec![pfile_empty]),
672 ];
673
674 // Repartition file groups into x partitions
675 let expected_2 = vec![
676 FileGroup::new(vec![pfile("a", 10).with_range(0, 10)]),
677 FileGroup::new(vec![pfile("b", 10).with_range(0, 10)]),
678 ];
679 let expected_3 = vec![
680 FileGroup::new(vec![pfile("a", 10).with_range(0, 7)]),
681 FileGroup::new(vec![
682 pfile("a", 10).with_range(7, 10),
683 pfile("b", 10).with_range(0, 4),
684 ]),
685 FileGroup::new(vec![pfile("b", 10).with_range(4, 10)]),
686 ];
687
688 let file_groups_tests = [empty_first, empty_middle, empty_last];
689
690 for fg in file_groups_tests {
691 let all_expected = [(2, expected_2.clone()), (3, expected_3.clone())];
692 for (n_partition, expected) in all_expected {
693 let actual = FileGroupPartitioner::new()
694 .with_target_partitions(n_partition)
695 .with_repartition_file_min_size(10)
696 .repartition_file_groups(&fg);
697
698 assert_partitioned_files(Some(expected), actual);
699 }
700 }
701 }
702
703 #[test]
704 fn repartition_single_file() {

Callers

nothing calls this directly

Calls 7

pfileFunction · 0.85
newFunction · 0.85
assert_partitioned_filesFunction · 0.85
cloneMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…