()
| 108 | |
| 109 | #[test] |
| 110 | fn merge_multiple_segments() { |
| 111 | let seg1 = write_segment(50); |
| 112 | let seg2 = write_segment(30); |
| 113 | |
| 114 | let mut del1 = DeleteBitmap::new(); |
| 115 | del1.mark_deleted_batch(&[0, 1, 2]); // Delete 3 from seg1. |
| 116 | |
| 117 | let del2 = DeleteBitmap::new(); // No deletes from seg2. |
| 118 | |
| 119 | let result = compact_segments( |
| 120 | &[(&seg1, &del1), (&seg2, &del2)], |
| 121 | &test_schema(), |
| 122 | 0, |
| 123 | None, |
| 124 | None, |
| 125 | ) |
| 126 | .expect("merge"); |
| 127 | |
| 128 | assert_eq!(result.live_rows, 77); // 50-3 + 30 = 77. |
| 129 | assert_eq!(result.removed_rows, 3); |
| 130 | assert!(result.segment.is_some()); |
| 131 | |
| 132 | let new_seg = result.segment.as_ref().expect("segment"); |
| 133 | let reader = SegmentReader::open(new_seg).expect("open"); |
| 134 | assert_eq!(reader.row_count(), 77); |
| 135 | } |
| 136 | |
| 137 | #[test] |
| 138 | fn compact_preserves_string_data() { |
nothing calls this directly
no test coverage detected