mirror of https://github.com/apache/druid.git
MSQ ignores tombstone segments for downloads. (#14342)
This commit is contained in:
parent
0cde3a8b52
commit
8d256e35b4
|
@ -103,6 +103,7 @@ public class TableInputSpecSlicer implements InputSpecSlicer
|
||||||
.flatMap(
|
.flatMap(
|
||||||
holder ->
|
holder ->
|
||||||
StreamSupport.stream(holder.getObject().spliterator(), false)
|
StreamSupport.stream(holder.getObject().spliterator(), false)
|
||||||
|
.filter(chunk -> !chunk.getObject().isTombstone())
|
||||||
.map(
|
.map(
|
||||||
chunk ->
|
chunk ->
|
||||||
new DataSegmentWithInterval(
|
new DataSegmentWithInterval(
|
||||||
|
|
|
@ -29,6 +29,7 @@ import org.apache.druid.testing.InitializedNullHandlingTest;
|
||||||
import org.apache.druid.timeline.DataSegment;
|
import org.apache.druid.timeline.DataSegment;
|
||||||
import org.apache.druid.timeline.SegmentTimeline;
|
import org.apache.druid.timeline.SegmentTimeline;
|
||||||
import org.apache.druid.timeline.partition.DimensionRangeShardSpec;
|
import org.apache.druid.timeline.partition.DimensionRangeShardSpec;
|
||||||
|
import org.apache.druid.timeline.partition.TombstoneShardSpec;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -79,13 +80,25 @@ public class TableInputSpecSlicerTest extends InitializedNullHandlingTest
|
||||||
BYTES_PER_SEGMENT
|
BYTES_PER_SEGMENT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
private static final DataSegment SEGMENT3 = new DataSegment(
|
||||||
|
DATASOURCE,
|
||||||
|
Intervals.of("2001/2002"),
|
||||||
|
"1",
|
||||||
|
Collections.emptyMap(),
|
||||||
|
Collections.emptyList(),
|
||||||
|
Collections.emptyList(),
|
||||||
|
TombstoneShardSpec.INSTANCE,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
BYTES_PER_SEGMENT
|
||||||
|
);
|
||||||
private SegmentTimeline timeline;
|
private SegmentTimeline timeline;
|
||||||
private TableInputSpecSlicer slicer;
|
private TableInputSpecSlicer slicer;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp()
|
public void setUp()
|
||||||
{
|
{
|
||||||
timeline = SegmentTimeline.forSegments(ImmutableList.of(SEGMENT1, SEGMENT2));
|
timeline = SegmentTimeline.forSegments(ImmutableList.of(SEGMENT1, SEGMENT2, SEGMENT3));
|
||||||
DataSegmentTimelineView timelineView = (dataSource, intervals) -> {
|
DataSegmentTimelineView timelineView = (dataSource, intervals) -> {
|
||||||
if (DATASOURCE.equals(dataSource)) {
|
if (DATASOURCE.equals(dataSource)) {
|
||||||
return Optional.of(timeline);
|
return Optional.of(timeline);
|
||||||
|
|
Loading…
Reference in New Issue