This is an automated email from the ASF dual-hosted git repository.
clintropolis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 0565ddcaa8f refactor: split out RowCountInspector,
PhysicalSegmentColumnInspector from PhysicalSegmentInspector (#19577)
0565ddcaa8f is described below
commit 0565ddcaa8fa28b0be27614d24d70b7f19a3ff56
Author: Clint Wylie <[email protected]>
AuthorDate: Sat Jun 13 13:00:30 2026 -0700
refactor: split out RowCountInspector, PhysicalSegmentColumnInspector from
PhysicalSegmentInspector (#19577)
---
.../druid/benchmark/query/SqlBaseBenchmark.java | 12 +++--
.../druid/msq/input/LoadableSegmentUtils.java | 6 +--
.../msq/input/RegularLoadableSegmentTest.java | 12 ++---
.../org/apache/druid/msq/test/MSQTestBase.java | 8 ++-
.../druid/query/metadata/SegmentAnalyzer.java | 20 +++----
.../SegmentMetadataQueryRunnerFactory.java | 7 +--
.../apache/druid/query/search/SearchStrategy.java | 4 +-
.../druid/segment/IncrementalIndexSegment.java | 5 +-
...or.java => PhysicalSegmentColumnInspector.java} | 18 ++-----
.../druid/segment/PhysicalSegmentInspector.java | 35 ++++--------
.../QueryableIndexPhysicalSegmentInspector.java | 1 +
.../druid/segment/QueryableIndexSegment.java | 6 ++-
.../apache/druid/segment/RowCountInspector.java | 31 +++++++++++
.../java/org/apache/druid/segment/Segment.java | 19 ++++---
.../IncrementalIndexPhysicalSegmentInspector.java | 1 +
.../apache/druid/segment/IndexMergerTestBase.java | 8 +--
.../segment/PhysicalSegmentInspectorTest.java | 63 ++++++++++++++++++++++
.../org/apache/druid/segment/TestSegmentUtils.java | 4 +-
.../table/BroadcastSegmentIndexedTableTest.java | 6 +--
.../segment/loading/VirtualPlaceholderSegment.java | 15 ++----
.../apache/druid/segment/realtime/FireHydrant.java | 4 +-
.../org/apache/druid/server/SegmentManager.java | 6 +--
.../SegmentLocalCacheManagerConcurrencyTest.java | 6 +--
.../CoordinatorSegmentMetadataCacheTest.java | 4 +-
.../SegmentManagerThreadSafetyTest.java | 6 +--
25 files changed, 192 insertions(+), 115 deletions(-)
diff --git
a/benchmarks/src/test/java/org/apache/druid/benchmark/query/SqlBaseBenchmark.java
b/benchmarks/src/test/java/org/apache/druid/benchmark/query/SqlBaseBenchmark.java
index a5a7c4ca390..1cdd572babd 100644
---
a/benchmarks/src/test/java/org/apache/druid/benchmark/query/SqlBaseBenchmark.java
+++
b/benchmarks/src/test/java/org/apache/druid/benchmark/query/SqlBaseBenchmark.java
@@ -65,11 +65,13 @@ import org.apache.druid.query.policy.NoopPolicyEnforcer;
import org.apache.druid.segment.AutoTypeColumnSchema;
import org.apache.druid.segment.IncrementalIndexSegment;
import org.apache.druid.segment.IndexSpec;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.Metadata;
+import org.apache.druid.segment.PhysicalSegmentColumnInspector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.QueryableIndexCursorFactory;
import org.apache.druid.segment.QueryableIndexPhysicalSegmentInspector;
import org.apache.druid.segment.QueryableIndexSegment;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.column.StringEncodingStrategy;
import org.apache.druid.segment.data.CompressionStrategy;
import org.apache.druid.segment.data.FrontCodedIndexed;
@@ -521,8 +523,10 @@ public class SqlBaseBenchmark
public <T> T as(@Nonnull Class<T> clazz)
{
// computed sql schema uses segment metadata, which relies on
physical inspector, use the underlying index
- if (clazz.equals(PhysicalSegmentInspector.class)) {
+ if (clazz.equals(RowCountInspector.class) ||
clazz.equals(PhysicalSegmentColumnInspector.class)) {
return (T) new QueryableIndexPhysicalSegmentInspector(index);
+ } else if (clazz.equals(Metadata.class)) {
+ return (T) index.getMetadata();
}
return super.as(clazz);
}
@@ -548,8 +552,10 @@ public class SqlBaseBenchmark
public <T> T as(@Nonnull Class<T> clazz)
{
// computed sql schema uses segment metadata, which relies on
physical inspector, use the underlying index
- if (clazz.equals(PhysicalSegmentInspector.class)) {
+ if (clazz.equals(RowCountInspector.class) ||
clazz.equals(PhysicalSegmentColumnInspector.class)) {
return (T) new QueryableIndexPhysicalSegmentInspector(index);
+ } else if (clazz.equals(Metadata.class)) {
+ return (T) index.getMetadata();
}
return super.as(clazz);
}
diff --git
a/multi-stage-query/src/main/java/org/apache/druid/msq/input/LoadableSegmentUtils.java
b/multi-stage-query/src/main/java/org/apache/druid/msq/input/LoadableSegmentUtils.java
index a092777eeef..724ea38cf01 100644
---
a/multi-stage-query/src/main/java/org/apache/druid/msq/input/LoadableSegmentUtils.java
+++
b/multi-stage-query/src/main/java/org/apache/druid/msq/input/LoadableSegmentUtils.java
@@ -22,7 +22,7 @@ package org.apache.druid.msq.input;
import com.google.common.util.concurrent.ListenableFuture;
import org.apache.druid.common.guava.FutureUtils;
import org.apache.druid.msq.counters.ChannelCounters;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.loading.AcquireSegmentAction;
import org.apache.druid.segment.loading.AcquireSegmentResult;
@@ -73,11 +73,11 @@ public class LoadableSegmentUtils
}
/**
- * Gets the number of rows for a segment, using a {@link
PhysicalSegmentInspector}. Returns 0 when unknown.
+ * Gets the number of rows for a segment, using a {@link RowCountInspector}.
Returns 0 when unknown.
*/
public static int getSegmentRowCount(final Segment segment)
{
- final PhysicalSegmentInspector inspector =
segment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector inspector = segment.as(RowCountInspector.class);
return inspector != null ? inspector.getNumRows() : 0;
}
}
diff --git
a/multi-stage-query/src/test/java/org/apache/druid/msq/input/RegularLoadableSegmentTest.java
b/multi-stage-query/src/test/java/org/apache/druid/msq/input/RegularLoadableSegmentTest.java
index c24a1506ec2..e68780677b7 100644
---
a/multi-stage-query/src/test/java/org/apache/druid/msq/input/RegularLoadableSegmentTest.java
+++
b/multi-stage-query/src/test/java/org/apache/druid/msq/input/RegularLoadableSegmentTest.java
@@ -44,7 +44,7 @@ import org.apache.druid.math.expr.ExprMacroTable;
import org.apache.druid.query.expression.TestExprMacroTable;
import org.apache.druid.segment.IndexIO;
import org.apache.druid.segment.IndexSpec;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.TestHelper;
import org.apache.druid.segment.TestIndex;
@@ -249,7 +249,7 @@ class RegularLoadableSegmentTest extends
InitializedNullHandlingTest
try (final AcquireSegmentAction ignored = pair.lhs;
final Segment acquiredSegment =
acquiredSegmentOptional.get()) {
Assertions.assertEquals(segment.getId(),
acquiredSegment.getId());
- PhysicalSegmentInspector gadget =
acquiredSegment.as(PhysicalSegmentInspector.class);
+ RowCountInspector gadget =
acquiredSegment.as(RowCountInspector.class);
Assertions.assertNotNull(gadget);
Assertions.assertEquals(1209, gadget.getNumRows());
return true;
@@ -320,7 +320,7 @@ class RegularLoadableSegmentTest extends
InitializedNullHandlingTest
try (final AcquireSegmentAction ignored = pair.lhs;
final Segment acquiredSegment =
acquiredSegmentOptional.get()) {
Assertions.assertEquals(segment.getId(),
acquiredSegment.getId());
- PhysicalSegmentInspector gadget =
acquiredSegment.as(PhysicalSegmentInspector.class);
+ RowCountInspector gadget =
acquiredSegment.as(RowCountInspector.class);
Assertions.assertNotNull(gadget);
Assertions.assertEquals(1209, gadget.getNumRows());
return true;
@@ -377,7 +377,7 @@ class RegularLoadableSegmentTest extends
InitializedNullHandlingTest
try (final Segment acquiredSegment = cachedSegment.get()) {
Assertions.assertEquals(segment.getId(), acquiredSegment.getId());
- final PhysicalSegmentInspector gadget =
acquiredSegment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector gadget =
acquiredSegment.as(RowCountInspector.class);
Assertions.assertNotNull(gadget);
Assertions.assertEquals(1209, gadget.getNumRows());
}
@@ -440,7 +440,7 @@ class RegularLoadableSegmentTest extends
InitializedNullHandlingTest
try (final AcquireSegmentAction ignored = acquireAction;
final Segment acquiredSegment = acquiredSegmentOptional.get()) {
Assertions.assertEquals(segment.getId(), acquiredSegment.getId());
- final PhysicalSegmentInspector gadget =
acquiredSegment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector gadget =
acquiredSegment.as(RowCountInspector.class);
Assertions.assertNotNull(gadget);
Assertions.assertEquals(1209, gadget.getNumRows());
}
@@ -479,7 +479,7 @@ class RegularLoadableSegmentTest extends
InitializedNullHandlingTest
try (final AcquireSegmentAction ignored = acquireAction;
final Segment acquiredSegment = acquiredSegmentOptional.get()) {
Assertions.assertEquals(segment.getId(), acquiredSegment.getId());
- final PhysicalSegmentInspector gadget =
acquiredSegment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector gadget =
acquiredSegment.as(RowCountInspector.class);
Assertions.assertNotNull(gadget);
Assertions.assertEquals(1209, gadget.getNumRows());
}
diff --git
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java
index 65a9fb5b0e8..651bcaf3579 100644
--- a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java
+++ b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java
@@ -145,10 +145,12 @@ import
org.apache.druid.segment.AggregateProjectionMetadata;
import org.apache.druid.segment.CursorFactory;
import org.apache.druid.segment.IndexBuilder;
import org.apache.druid.segment.IndexIO;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.Metadata;
+import org.apache.druid.segment.PhysicalSegmentColumnInspector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.QueryableIndexCursorFactory;
import org.apache.druid.segment.QueryableIndexPhysicalSegmentInspector;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.column.ColumnConfig;
import org.apache.druid.segment.column.ColumnHolder;
@@ -791,10 +793,12 @@ public class MSQTestBase extends BaseCalciteQueryTest
{
if (CursorFactory.class.equals(clazz)) {
return (T) new QueryableIndexCursorFactory(index);
- } else if (PhysicalSegmentInspector.class.equals(clazz)) {
+ } else if (RowCountInspector.class.equals(clazz) ||
PhysicalSegmentColumnInspector.class.equals(clazz)) {
return (T) new QueryableIndexPhysicalSegmentInspector(index);
} else if (QueryableIndex.class.equals(clazz)) {
return (T) index;
+ } else if (Metadata.class.equals(clazz)) {
+ return (T) index.getMetadata();
}
return null;
}
diff --git
a/processing/src/main/java/org/apache/druid/query/metadata/SegmentAnalyzer.java
b/processing/src/main/java/org/apache/druid/query/metadata/SegmentAnalyzer.java
index 1ebf6e5cc7f..39a507c51e0 100644
---
a/processing/src/main/java/org/apache/druid/query/metadata/SegmentAnalyzer.java
+++
b/processing/src/main/java/org/apache/druid/query/metadata/SegmentAnalyzer.java
@@ -31,8 +31,9 @@ import org.apache.druid.segment.CursorBuildSpec;
import org.apache.druid.segment.CursorFactory;
import org.apache.druid.segment.CursorHolder;
import org.apache.druid.segment.DimensionSelector;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.PhysicalSegmentColumnInspector;
import org.apache.druid.segment.QueryableIndex;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.column.BaseColumn;
import org.apache.druid.segment.column.BaseColumnHolder;
@@ -82,20 +83,21 @@ public class SegmentAnalyzer
public long numRows(Segment segment)
{
- return
Preconditions.checkNotNull(segment.as(PhysicalSegmentInspector.class),
"PhysicalSegmentInspector")
+ return Preconditions.checkNotNull(segment.as(RowCountInspector.class),
"RowCountInspector")
.getNumRows();
}
public Map<String, ColumnAnalysis> analyze(Segment segment)
{
Preconditions.checkNotNull(segment, "segment");
- final PhysicalSegmentInspector segmentInspector =
segment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector rowCountInspector =
segment.as(RowCountInspector.class);
+ final PhysicalSegmentColumnInspector columnInspector =
segment.as(PhysicalSegmentColumnInspector.class);
- // index is null for incremental-index-based segments, but
segmentInspector should always be available
+ // index is null for incremental-index-based segments, but the inspectors
should always be available
final QueryableIndex index = segment.as(QueryableIndex.class);
final CursorFactory cursorFactory =
Objects.requireNonNull(segment.as(CursorFactory.class));
- final int numRows = segmentInspector != null ?
segmentInspector.getNumRows() : 0;
+ final int numRows = rowCountInspector != null ?
rowCountInspector.getNumRows() : 0;
// Use LinkedHashMap to preserve column order.
final Map<String, ColumnAnalysis> columns = new LinkedHashMap<>();
@@ -104,8 +106,8 @@ public class SegmentAnalyzer
for (String columnName : rowSignature.getColumnNames()) {
final ColumnCapabilities capabilities;
- if (segmentInspector != null) {
- capabilities = segmentInspector.getColumnCapabilities(columnName);
+ if (columnInspector != null) {
+ capabilities = columnInspector.getColumnCapabilities(columnName);
} else {
capabilities = null;
}
@@ -135,7 +137,7 @@ public class SegmentAnalyzer
if (index != null) {
analysis = analyzeStringColumn(capabilities,
index.getColumnHolder(columnName));
} else {
- analysis = analyzeStringColumn(capabilities, segmentInspector,
cursorFactory, columnName);
+ analysis = analyzeStringColumn(capabilities, columnInspector,
cursorFactory, columnName);
}
break;
case ARRAY:
@@ -260,7 +262,7 @@ public class SegmentAnalyzer
private ColumnAnalysis analyzeStringColumn(
final ColumnCapabilities capabilities,
- @Nullable final PhysicalSegmentInspector analysisInspector,
+ @Nullable final PhysicalSegmentColumnInspector analysisInspector,
final CursorFactory cursorFactory,
final String columnName
)
diff --git
a/processing/src/main/java/org/apache/druid/query/metadata/SegmentMetadataQueryRunnerFactory.java
b/processing/src/main/java/org/apache/druid/query/metadata/SegmentMetadataQueryRunnerFactory.java
index 2047e8ee159..6f88cff920d 100644
---
a/processing/src/main/java/org/apache/druid/query/metadata/SegmentMetadataQueryRunnerFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/metadata/SegmentMetadataQueryRunnerFactory.java
@@ -39,7 +39,6 @@ import
org.apache.druid.query.metadata.metadata.SegmentAnalysis;
import org.apache.druid.query.metadata.metadata.SegmentMetadataQuery;
import org.apache.druid.segment.AggregateProjectionMetadata;
import org.apache.druid.segment.Metadata;
-import org.apache.druid.segment.PhysicalSegmentInspector;
import org.apache.druid.segment.Segment;
import org.joda.time.Interval;
@@ -204,10 +203,6 @@ public class SegmentMetadataQueryRunnerFactory implements
QueryRunnerFactory<Seg
@Nullable
private Metadata getMetadata(Segment segment)
{
- PhysicalSegmentInspector inspector =
segment.as(PhysicalSegmentInspector.class);
- if (inspector != null) {
- return inspector.getMetadata();
- }
- return null;
+ return segment.as(Metadata.class);
}
}
diff --git
a/processing/src/main/java/org/apache/druid/query/search/SearchStrategy.java
b/processing/src/main/java/org/apache/druid/query/search/SearchStrategy.java
index 5acc9f82098..478e4fac006 100644
--- a/processing/src/main/java/org/apache/druid/query/search/SearchStrategy.java
+++ b/processing/src/main/java/org/apache/druid/query/search/SearchStrategy.java
@@ -28,7 +28,6 @@ import org.apache.druid.query.dimension.DimensionSpec;
import org.apache.druid.query.filter.Filter;
import org.apache.druid.segment.CursorFactory;
import org.apache.druid.segment.Metadata;
-import org.apache.druid.segment.PhysicalSegmentInspector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.column.ColumnHolder;
@@ -70,8 +69,7 @@ public abstract class SearchStrategy
}
} else {
// fallback to RowSignature and Metadata if QueryableIndex not
available
- final PhysicalSegmentInspector segmentInspector =
segment.as(PhysicalSegmentInspector.class);
- final Metadata metadata = segmentInspector != null ?
segmentInspector.getMetadata() : null;
+ final Metadata metadata = segment.as(Metadata.class);
final Set<String> ignore = new HashSet<>();
ignore.add(ColumnHolder.TIME_COLUMN_NAME);
if (metadata != null && metadata.getAggregators() != null) {
diff --git
a/processing/src/main/java/org/apache/druid/segment/IncrementalIndexSegment.java
b/processing/src/main/java/org/apache/druid/segment/IncrementalIndexSegment.java
index f8b57b1417f..a8da1f3a62a 100644
---
a/processing/src/main/java/org/apache/druid/segment/IncrementalIndexSegment.java
+++
b/processing/src/main/java/org/apache/druid/segment/IncrementalIndexSegment.java
@@ -52,6 +52,7 @@ public class IncrementalIndexSegment implements Segment
return index.getInterval();
}
+ @SuppressWarnings("deprecation")
@Nullable
@Override
public <T> T as(final Class<T> clazz)
@@ -64,7 +65,9 @@ public class IncrementalIndexSegment implements Segment
return (T) new IncrementalIndexMaxIngestedEventTimeInspector(index);
} else if (Metadata.class.equals(clazz)) {
return (T) index.getMetadata();
- } else if (PhysicalSegmentInspector.class.equals(clazz)) {
+ } else if (RowCountInspector.class.equals(clazz)
+ || PhysicalSegmentColumnInspector.class.equals(clazz)
+ || PhysicalSegmentInspector.class.equals(clazz)) {
return (T) new IncrementalIndexPhysicalSegmentInspector(index);
} else if (TopNOptimizationInspector.class.equals(clazz)) {
return (T) new SimpleTopNOptimizationInspector(true);
diff --git
a/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
b/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentColumnInspector.java
similarity index 78%
copy from
processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
copy to
processing/src/main/java/org/apache/druid/segment/PhysicalSegmentColumnInspector.java
index 6e72e412463..2cc205c5586 100644
---
a/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
+++
b/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentColumnInspector.java
@@ -22,16 +22,11 @@ package org.apache.druid.segment;
import javax.annotation.Nullable;
/**
- * Interface for methods describing physical segments such as {@link
QueryableIndexSegment} and
+ * Interface for methods describing the columns of physical segments such as
{@link QueryableIndexSegment} and
* {@link IncrementalIndexSegment} that is not typically used at query time
(outside of metadata queries).
*/
-public interface PhysicalSegmentInspector extends ColumnInspector
+public interface PhysicalSegmentColumnInspector extends ColumnInspector
{
- /**
- * Returns {@link Metadata} which contains details about how the segment was
created
- */
- @Nullable
- Metadata getMetadata();
/**
* Returns the minimum value of the provided column, if known through an
index, dictionary, or cache. Returns null
* if not known. Does not scan the column to find the minimum value.
@@ -40,7 +35,7 @@ public interface PhysicalSegmentInspector extends
ColumnInspector
Comparable getMinValue(String column);
/**
- * Returns the minimum value of the provided column, if known through an
index, dictionary, or cache. Returns null
+ * Returns the maximum value of the provided column, if known through an
index, dictionary, or cache. Returns null
* if not known. Does not scan the column to find the maximum value.
*/
@Nullable
@@ -48,12 +43,7 @@ public interface PhysicalSegmentInspector extends
ColumnInspector
/**
* Returns the number of distinct values in a column, if known, or
- * {@link DimensionDictionarySelector#CARDINALITY_UNKNOWN} if not.}
+ * {@link DimensionDictionarySelector#CARDINALITY_UNKNOWN} if not.
*/
int getDimensionCardinality(String column);
-
- /**
- * Returns the number of rows in the segment
- */
- int getNumRows();
}
diff --git
a/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
b/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
index 6e72e412463..5b5161b6acd 100644
---
a/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
+++
b/processing/src/main/java/org/apache/druid/segment/PhysicalSegmentInspector.java
@@ -24,36 +24,21 @@ import javax.annotation.Nullable;
/**
* Interface for methods describing physical segments such as {@link
QueryableIndexSegment} and
* {@link IncrementalIndexSegment} that is not typically used at query time
(outside of metadata queries).
+ *
+ * @deprecated this interface has been split into smaller, single-purpose
interfaces. Use {@link RowCountInspector} for
+ * the number of rows in a segment, {@link PhysicalSegmentColumnInspector} for
column details, and {@link Segment#as}
+ * to get {@link Metadata} instead. It is retained, implemented only by {@link
QueryableIndexSegment} and
+ * {@link IncrementalIndexSegment}, so that existing callers reaching it
through {@link Segment#as} continue to work.
*/
-public interface PhysicalSegmentInspector extends ColumnInspector
+@Deprecated
+public interface PhysicalSegmentInspector extends RowCountInspector,
PhysicalSegmentColumnInspector
{
/**
* Returns {@link Metadata} which contains details about how the segment was
created
+ *
+ * @deprecated use {@link Segment#as} to get {@link Metadata} instead
*/
+ @Deprecated
@Nullable
Metadata getMetadata();
- /**
- * Returns the minimum value of the provided column, if known through an
index, dictionary, or cache. Returns null
- * if not known. Does not scan the column to find the minimum value.
- */
- @Nullable
- Comparable getMinValue(String column);
-
- /**
- * Returns the minimum value of the provided column, if known through an
index, dictionary, or cache. Returns null
- * if not known. Does not scan the column to find the maximum value.
- */
- @Nullable
- Comparable getMaxValue(String column);
-
- /**
- * Returns the number of distinct values in a column, if known, or
- * {@link DimensionDictionarySelector#CARDINALITY_UNKNOWN} if not.}
- */
- int getDimensionCardinality(String column);
-
- /**
- * Returns the number of rows in the segment
- */
- int getNumRows();
}
diff --git
a/processing/src/main/java/org/apache/druid/segment/QueryableIndexPhysicalSegmentInspector.java
b/processing/src/main/java/org/apache/druid/segment/QueryableIndexPhysicalSegmentInspector.java
index 163c4414ced..f4aba7dee44 100644
---
a/processing/src/main/java/org/apache/druid/segment/QueryableIndexPhysicalSegmentInspector.java
+++
b/processing/src/main/java/org/apache/druid/segment/QueryableIndexPhysicalSegmentInspector.java
@@ -30,6 +30,7 @@ import javax.annotation.Nullable;
import java.io.IOException;
import java.io.UncheckedIOException;
+@SuppressWarnings("deprecation")
public class QueryableIndexPhysicalSegmentInspector implements
PhysicalSegmentInspector
{
private final QueryableIndex index;
diff --git
a/processing/src/main/java/org/apache/druid/segment/QueryableIndexSegment.java
b/processing/src/main/java/org/apache/druid/segment/QueryableIndexSegment.java
index 5473400d88d..e15c0d6812b 100644
---
a/processing/src/main/java/org/apache/druid/segment/QueryableIndexSegment.java
+++
b/processing/src/main/java/org/apache/druid/segment/QueryableIndexSegment.java
@@ -70,7 +70,7 @@ public class QueryableIndexSegment implements Segment
index.close();
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked", "deprecation"})
@Nullable
@Override
public <T> T as(@Nonnull Class<T> clazz)
@@ -91,7 +91,9 @@ public class QueryableIndexSegment implements Segment
return (T) timeBoundaryInspector;
} else if (Metadata.class.equals(clazz)) {
return (T) index.getMetadata();
- } else if (PhysicalSegmentInspector.class.equals(clazz)) {
+ } else if (RowCountInspector.class.equals(clazz)
+ || PhysicalSegmentColumnInspector.class.equals(clazz)
+ || PhysicalSegmentInspector.class.equals(clazz)) {
return (T) new QueryableIndexPhysicalSegmentInspector(index);
} else if (TopNOptimizationInspector.class.equals(clazz)) {
return (T) new SimpleTopNOptimizationInspector(true);
diff --git
a/processing/src/main/java/org/apache/druid/segment/RowCountInspector.java
b/processing/src/main/java/org/apache/druid/segment/RowCountInspector.java
new file mode 100644
index 00000000000..5766895e7de
--- /dev/null
+++ b/processing/src/main/java/org/apache/druid/segment/RowCountInspector.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.druid.segment;
+
+/**
+ * Inspector for the number of rows of physical segments.
+ */
+public interface RowCountInspector
+{
+ /**
+ * Returns the number of rows in the segment
+ */
+ int getNumRows();
+}
diff --git a/processing/src/main/java/org/apache/druid/segment/Segment.java
b/processing/src/main/java/org/apache/druid/segment/Segment.java
index 8e7b71dc4f2..1d8798203ce 100644
--- a/processing/src/main/java/org/apache/druid/segment/Segment.java
+++ b/processing/src/main/java/org/apache/druid/segment/Segment.java
@@ -64,14 +64,17 @@ public interface Segment extends Closeable
* @return instance of clazz, or null if the interface is not supported by
this segment, one of the following:
* <ul>
* <li> {@link CursorFactory}, to make cursors to run queries. Never
null.</li>
- * <li> {@link QueryableIndex}, index object, if this is a memory-mapped
regular segment.
- * <li> {@link IndexedTable}, table object, if this is a joinable indexed
table.
- * <li> {@link TimeBoundaryInspector}, inspector for min/max timestamps,
if supported by this segment.
- * <li> {@link PhysicalSegmentInspector}, inspector for physical segment
details, if supported by this segment.
- * <li> {@link MaxIngestedEventTimeInspector}, inspector for {@link
DataSourceMetadataResultValue#getMaxIngestedEventTime()}
- * <li> {@link TopNOptimizationInspector}, inspector containing
information for topN specific optimizations
- * <li> {@link CloseableShapeshifter}, stepping stone to {@link
org.apache.druid.query.rowsandcols.RowsAndColumns}.
- * <li> {@link BypassRestrictedSegment}, a policy-aware segment, converted
from a policy-enforced segment.
+ * <li> {@link QueryableIndex}, index object, if this is a memory-mapped
regular segment.</li>
+ * <li> {@link IndexedTable}, table object, if this is a joinable indexed
table.</li>
+ * <li> {@link TimeBoundaryInspector}, inspector for min/max
timestamps.</li>
+ * <li> {@link PhysicalSegmentInspector}, deprecated, superseded by {@link
RowCountInspector}, {@link PhysicalSegmentColumnInspector}, and {@link
Metadata}.</li>
+ * <li> {@link RowCountInspector}, inspector for number of rows.</li>
+ * <li> {@link Metadata}, segment metadata.</li>
+ * <li> {@link PhysicalSegmentColumnInspector}, inspector for physical
segment column details.</li>
+ * <li> {@link MaxIngestedEventTimeInspector}, inspector for {@link
DataSourceMetadataResultValue#getMaxIngestedEventTime()}.</li>
+ * <li> {@link TopNOptimizationInspector}, inspector containing
information for topN specific optimizations.</li>
+ * <li> {@link CloseableShapeshifter}, stepping stone to {@link
org.apache.druid.query.rowsandcols.RowsAndColumns}.</li>
+ * <li> {@link BypassRestrictedSegment}, a policy-aware segment, converted
from a policy-enforced segment.</li>
* </ul>
*/
@SuppressWarnings({"unused", "unchecked"})
diff --git
a/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndexPhysicalSegmentInspector.java
b/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndexPhysicalSegmentInspector.java
index ec159c057bb..14ef079e17c 100644
---
a/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndexPhysicalSegmentInspector.java
+++
b/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndexPhysicalSegmentInspector.java
@@ -29,6 +29,7 @@ import org.apache.druid.segment.column.ColumnHolder;
import javax.annotation.Nullable;
+@SuppressWarnings("deprecation")
public class IncrementalIndexPhysicalSegmentInspector implements
PhysicalSegmentInspector
{
static final ColumnCapabilities.CoercionLogic SNAPSHOT_COERCE_LOGIC =
diff --git
a/processing/src/test/java/org/apache/druid/segment/IndexMergerTestBase.java
b/processing/src/test/java/org/apache/druid/segment/IndexMergerTestBase.java
index 56ec53fe52c..d153ac29649 100644
--- a/processing/src/test/java/org/apache/druid/segment/IndexMergerTestBase.java
+++ b/processing/src/test/java/org/apache/druid/segment/IndexMergerTestBase.java
@@ -1694,7 +1694,7 @@ public abstract class IndexMergerTestBase extends
InitializedNullHandlingTest
);
Assert.assertEquals(
ImmutableSet.of("A", "C"),
-
Arrays.stream(segment.as(PhysicalSegmentInspector.class).getMetadata().getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
+
Arrays.stream(segment.as(Metadata.class).getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
);
}
@@ -1770,7 +1770,7 @@ public abstract class IndexMergerTestBase extends
InitializedNullHandlingTest
);
Assert.assertEquals(
ImmutableSet.of("A", "C"),
-
Arrays.stream(segment.as(PhysicalSegmentInspector.class).getMetadata().getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
+
Arrays.stream(segment.as(Metadata.class).getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
);
}
@@ -1842,7 +1842,7 @@ public abstract class IndexMergerTestBase extends
InitializedNullHandlingTest
);
Assert.assertEquals(
ImmutableSet.of("A", "B", "C"),
-
Arrays.stream(segment.as(PhysicalSegmentInspector.class).getMetadata().getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
+
Arrays.stream(segment.as(Metadata.class).getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
);
}
@@ -1890,7 +1890,7 @@ public abstract class IndexMergerTestBase extends
InitializedNullHandlingTest
);
Assert.assertEquals(
ImmutableSet.of("A", "B", "C"),
-
Arrays.stream(segment.as(PhysicalSegmentInspector.class).getMetadata().getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
+
Arrays.stream(segment.as(Metadata.class).getAggregators()).map(AggregatorFactory::getName).collect(Collectors.toSet())
);
}
diff --git
a/processing/src/test/java/org/apache/druid/segment/PhysicalSegmentInspectorTest.java
b/processing/src/test/java/org/apache/druid/segment/PhysicalSegmentInspectorTest.java
new file mode 100644
index 00000000000..f290d8c5424
--- /dev/null
+++
b/processing/src/test/java/org/apache/druid/segment/PhysicalSegmentInspectorTest.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.druid.segment;
+
+import org.apache.druid.segment.incremental.IncrementalIndex;
+import org.apache.druid.testing.InitializedNullHandlingTest;
+import org.apache.druid.timeline.SegmentId;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+@SuppressWarnings("deprecation")
+public class PhysicalSegmentInspectorTest extends InitializedNullHandlingTest
+{
+ @Test
+ public void testQueryableIndexSegmentProvidesDeprecatedInspector()
+ {
+ final QueryableIndex index = TestIndex.getMMappedTestIndex();
+ // not closed on purpose: the index is a shared static fixture
+ final QueryableIndexSegment segment = new QueryableIndexSegment(index,
SegmentId.dummy("test"));
+
+ final PhysicalSegmentInspector inspector =
segment.as(PhysicalSegmentInspector.class);
+ Assertions.assertNotNull(inspector);
+ Assertions.assertEquals(index.getNumRows(), inspector.getNumRows());
+ Assertions.assertEquals(index.getMetadata(), inspector.getMetadata());
+
+ // the deprecated inspector is the union of the interfaces that supersede
it
+ Assertions.assertNotNull(segment.as(RowCountInspector.class));
+ Assertions.assertNotNull(segment.as(PhysicalSegmentColumnInspector.class));
+ }
+
+ @Test
+ public void testIncrementalIndexSegmentProvidesDeprecatedInspector()
+ {
+ final IncrementalIndex index = TestIndex.getIncrementalTestIndex();
+ // not closed on purpose: the index is a shared static fixture
+ final IncrementalIndexSegment segment = new IncrementalIndexSegment(index,
SegmentId.dummy("test"));
+
+ final PhysicalSegmentInspector inspector =
segment.as(PhysicalSegmentInspector.class);
+ Assertions.assertNotNull(inspector);
+ Assertions.assertEquals(index.numRows(), inspector.getNumRows());
+ Assertions.assertEquals(index.getMetadata(), inspector.getMetadata());
+
+ Assertions.assertNotNull(segment.as(RowCountInspector.class));
+ Assertions.assertNotNull(segment.as(PhysicalSegmentColumnInspector.class));
+ }
+}
diff --git
a/processing/src/test/java/org/apache/druid/segment/TestSegmentUtils.java
b/processing/src/test/java/org/apache/druid/segment/TestSegmentUtils.java
index e79b10a0953..76263352d72 100644
--- a/processing/src/test/java/org/apache/druid/segment/TestSegmentUtils.java
+++ b/processing/src/test/java/org/apache/druid/segment/TestSegmentUtils.java
@@ -184,8 +184,10 @@ public class TestSegmentUtils
return (T) INDEX;
} else if (clazz.equals(CursorFactory.class)) {
return (T) new QueryableIndexCursorFactory(INDEX);
- } else if (clazz.equals(PhysicalSegmentInspector.class)) {
+ } else if (clazz.equals(RowCountInspector.class) ||
clazz.equals(PhysicalSegmentColumnInspector.class)) {
return (T) new QueryableIndexPhysicalSegmentInspector(INDEX);
+ } else if (clazz.equals(Metadata.class)) {
+ return (T) INDEX.getMetadata();
}
return null;
}
diff --git
a/processing/src/test/java/org/apache/druid/segment/join/table/BroadcastSegmentIndexedTableTest.java
b/processing/src/test/java/org/apache/druid/segment/join/table/BroadcastSegmentIndexedTableTest.java
index d355c77b0f2..350d550558f 100644
---
a/processing/src/test/java/org/apache/druid/segment/join/table/BroadcastSegmentIndexedTableTest.java
+++
b/processing/src/test/java/org/apache/druid/segment/join/table/BroadcastSegmentIndexedTableTest.java
@@ -41,10 +41,10 @@ import org.apache.druid.segment.IndexIO;
import org.apache.druid.segment.IndexMerger;
import org.apache.druid.segment.IndexMergerV9;
import org.apache.druid.segment.IndexSpec;
-import org.apache.druid.segment.PhysicalSegmentInspector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.QueryableIndexCursorFactory;
import org.apache.druid.segment.QueryableIndexSegment;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.SegmentLazyLoadFailCallback;
import org.apache.druid.segment.SimpleAscendingOffset;
import org.apache.druid.segment.TestIndex;
@@ -296,7 +296,7 @@ public class BroadcastSegmentIndexedTableTest extends
InitializedNullHandlingTes
checkColumnSelectorFactory(columnName);
try (final Closer closer = Closer.create()) {
final int columnIndex = columnNames.indexOf(columnName);
- final int numRows =
backingSegment.as(PhysicalSegmentInspector.class).getNumRows();
+ final int numRows =
backingSegment.as(RowCountInspector.class).getNumRows();
final IndexedTable.Reader reader =
broadcastTable.columnReader(columnIndex);
closer.register(reader);
final SimpleAscendingOffset offset = new SimpleAscendingOffset(numRows);
@@ -326,7 +326,7 @@ public class BroadcastSegmentIndexedTableTest extends
InitializedNullHandlingTes
private void checkColumnSelectorFactory(String columnName)
{
try (final Closer closer = Closer.create()) {
- final int numRows =
backingSegment.as(PhysicalSegmentInspector.class).getNumRows();
+ final int numRows =
backingSegment.as(RowCountInspector.class).getNumRows();
final SimpleAscendingOffset offset = new SimpleAscendingOffset(numRows);
final BaseColumn theColumn = backingSegment.as(QueryableIndex.class)
diff --git
a/server/src/main/java/org/apache/druid/segment/loading/VirtualPlaceholderSegment.java
b/server/src/main/java/org/apache/druid/segment/loading/VirtualPlaceholderSegment.java
index 4099274edb8..b86b1fd7e09 100644
---
a/server/src/main/java/org/apache/druid/segment/loading/VirtualPlaceholderSegment.java
+++
b/server/src/main/java/org/apache/druid/segment/loading/VirtualPlaceholderSegment.java
@@ -22,10 +22,10 @@ package org.apache.druid.segment.loading;
import org.apache.druid.data.input.Row;
import org.apache.druid.java.util.common.guava.Sequences;
import org.apache.druid.segment.DimensionDictionarySelector;
-import org.apache.druid.segment.Metadata;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.PhysicalSegmentColumnInspector;
import org.apache.druid.segment.RowAdapters;
import org.apache.druid.segment.RowBasedSegment;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.column.ColumnCapabilities;
import org.apache.druid.segment.column.ColumnCapabilitiesImpl;
import org.apache.druid.segment.column.ColumnHolder;
@@ -74,13 +74,13 @@ public class VirtualPlaceholderSegment extends
RowBasedSegment<Row>
@Override
public <T> T as(@Nonnull Class<T> clazz)
{
- if (PhysicalSegmentInspector.class.equals(clazz)) {
+ if (RowCountInspector.class.equals(clazz) ||
PhysicalSegmentColumnInspector.class.equals(clazz)) {
return (T) EmptyPhysicalInspector.INSTANCE;
}
return super.as(clazz);
}
- private static class EmptyPhysicalInspector implements
PhysicalSegmentInspector
+ private static class EmptyPhysicalInspector implements RowCountInspector,
PhysicalSegmentColumnInspector
{
private static final EmptyPhysicalInspector INSTANCE = new
EmptyPhysicalInspector();
@@ -94,13 +94,6 @@ public class VirtualPlaceholderSegment extends
RowBasedSegment<Row>
return null;
}
- @Nullable
- @Override
- public Metadata getMetadata()
- {
- return null;
- }
-
@Nullable
@Override
public Comparable getMinValue(String column)
diff --git
a/server/src/main/java/org/apache/druid/segment/realtime/FireHydrant.java
b/server/src/main/java/org/apache/druid/segment/realtime/FireHydrant.java
index 63306d95a93..4970dcebe27 100644
--- a/server/src/main/java/org/apache/druid/segment/realtime/FireHydrant.java
+++ b/server/src/main/java/org/apache/druid/segment/realtime/FireHydrant.java
@@ -23,7 +23,6 @@ import com.google.common.annotations.VisibleForTesting;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.segment.IncrementalIndexSegment;
import org.apache.druid.segment.Metadata;
-import org.apache.druid.segment.PhysicalSegmentInspector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.ReferenceCountedSegmentProvider;
import org.apache.druid.segment.Segment;
@@ -93,8 +92,7 @@ public class FireHydrant
{
final Segment segment = segmentReferenceProvider.get().getBaseSegment();
if (segment != null) {
- final PhysicalSegmentInspector segmentInspector =
segment.as(PhysicalSegmentInspector.class);
- final Metadata metadata = segmentInspector == null ? null :
segmentInspector.getMetadata();
+ final Metadata metadata = segment.as(Metadata.class);
return metadata != null && metadata.getAggregators() != null ?
metadata.getAggregators().length : 0;
}
return 0;
diff --git a/server/src/main/java/org/apache/druid/server/SegmentManager.java
b/server/src/main/java/org/apache/druid/server/SegmentManager.java
index a3fcbe4907a..7c961804492 100644
--- a/server/src/main/java/org/apache/druid/server/SegmentManager.java
+++ b/server/src/main/java/org/apache/druid/server/SegmentManager.java
@@ -31,7 +31,7 @@ import org.apache.druid.query.DataSegmentAndDescriptor;
import org.apache.druid.query.LeafSegmentsBundle;
import org.apache.druid.query.SegmentDescriptor;
import org.apache.druid.query.TableDataSource;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.SegmentLazyLoadFailCallback;
import org.apache.druid.segment.SegmentMapFunction;
@@ -357,7 +357,7 @@ public class SegmentManager
segment.getId()
);
}
- final PhysicalSegmentInspector countInspector =
segment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector countInspector =
segment.as(RowCountInspector.class);
if (countInspector != null) {
numOfRows = countInspector.getNumRows();
}
@@ -405,7 +405,7 @@ public class SegmentManager
final Optional<Segment> oldSegment =
cacheManager.acquireCachedSegment(oldSegmentRef.getId());
long numberOfRows = oldSegment.map(segment -> {
closer.register(segment);
- final PhysicalSegmentInspector countInspector =
segment.as(PhysicalSegmentInspector.class);
+ final RowCountInspector countInspector =
segment.as(RowCountInspector.class);
if (countInspector != null) {
return countInspector.getNumRows();
}
diff --git
a/server/src/test/java/org/apache/druid/segment/loading/SegmentLocalCacheManagerConcurrencyTest.java
b/server/src/test/java/org/apache/druid/segment/loading/SegmentLocalCacheManagerConcurrencyTest.java
index ddc6094bf6c..5073ddf9b16 100644
---
a/server/src/test/java/org/apache/druid/segment/loading/SegmentLocalCacheManagerConcurrencyTest.java
+++
b/server/src/test/java/org/apache/druid/segment/loading/SegmentLocalCacheManagerConcurrencyTest.java
@@ -34,7 +34,7 @@ import org.apache.druid.java.util.common.concurrent.Execs;
import org.apache.druid.java.util.common.io.Closer;
import org.apache.druid.java.util.emitter.EmittingLogger;
import org.apache.druid.segment.IndexIO;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.TestHelper;
import org.apache.druid.segment.TestIndex;
@@ -950,7 +950,7 @@ class SegmentLocalCacheManagerConcurrencyTest
}
final Optional<Segment> segment =
result.getReferenceProvider().acquireReference().map(closer::register);
if (segment.isPresent()) {
- PhysicalSegmentInspector gadget =
segment.get().as(PhysicalSegmentInspector.class);
+ RowCountInspector gadget = segment.get().as(RowCountInspector.class);
if (delayMin >= 0 && delayMax > 0) {
Thread.sleep(ThreadLocalRandom.current().nextInt(delayMin,
delayMax));
}
@@ -997,7 +997,7 @@ class SegmentLocalCacheManagerConcurrencyTest
}
final Optional<Segment> segmentReference =
segmentManager.acquireCachedSegment(segment.getId()).map(closer::register);
if (segmentReference.isPresent()) {
- PhysicalSegmentInspector gadget =
segmentReference.get().as(PhysicalSegmentInspector.class);
+ RowCountInspector gadget =
segmentReference.get().as(RowCountInspector.class);
if (maxDelayAfter > 0) {
Thread.sleep(ThreadLocalRandom.current().nextInt(maxDelayAfter));
}
diff --git
a/server/src/test/java/org/apache/druid/segment/metadata/CoordinatorSegmentMetadataCacheTest.java
b/server/src/test/java/org/apache/druid/segment/metadata/CoordinatorSegmentMetadataCacheTest.java
index ea4301f8b31..4574e91d203 100644
---
a/server/src/test/java/org/apache/druid/segment/metadata/CoordinatorSegmentMetadataCacheTest.java
+++
b/server/src/test/java/org/apache/druid/segment/metadata/CoordinatorSegmentMetadataCacheTest.java
@@ -58,10 +58,10 @@ import
org.apache.druid.query.metadata.metadata.SegmentMetadataQuery;
import org.apache.druid.query.policy.NoRestrictionPolicy;
import org.apache.druid.query.spec.MultipleSpecificSegmentSpec;
import org.apache.druid.segment.IndexBuilder;
-import org.apache.druid.segment.PhysicalSegmentInspector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.QueryableIndexCursorFactory;
import org.apache.druid.segment.QueryableIndexSegment;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.SchemaPayload;
import org.apache.druid.segment.SchemaPayloadPlus;
import org.apache.druid.segment.SegmentMetadata;
@@ -1758,7 +1758,7 @@ public class CoordinatorSegmentMetadataCacheTest extends
CoordinatorSegmentMetad
CoordinatorSegmentMetadataCache schema =
buildSchemaMarkAndTableLatch(config);
QueryableIndexSegment queryableIndexSegment = new
QueryableIndexSegment(index2, SegmentId.dummy("test"));
- PhysicalSegmentInspector rowCountInspector =
queryableIndexSegment.as(PhysicalSegmentInspector.class);
+ RowCountInspector rowCountInspector =
queryableIndexSegment.as(RowCountInspector.class);
QueryableIndexCursorFactory cursorFactory = new
QueryableIndexCursorFactory(index2);
ImmutableMap.Builder<SegmentId, SegmentMetadata> segmentStatsMap = new
ImmutableMap.Builder<>();
diff --git
a/server/src/test/java/org/apache/druid/server/coordination/SegmentManagerThreadSafetyTest.java
b/server/src/test/java/org/apache/druid/server/coordination/SegmentManagerThreadSafetyTest.java
index 8695cef6fcf..75f9c347a9c 100644
---
a/server/src/test/java/org/apache/druid/server/coordination/SegmentManagerThreadSafetyTest.java
+++
b/server/src/test/java/org/apache/druid/server/coordination/SegmentManagerThreadSafetyTest.java
@@ -31,7 +31,7 @@ import org.apache.druid.java.util.common.Intervals;
import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.java.util.common.concurrent.Execs;
import org.apache.druid.java.util.emitter.EmittingLogger;
-import org.apache.druid.segment.PhysicalSegmentInspector;
+import org.apache.druid.segment.RowCountInspector;
import org.apache.druid.segment.Segment;
import org.apache.druid.segment.SegmentLazyLoadFailCallback;
import org.apache.druid.segment.TestIndex;
@@ -247,7 +247,7 @@ public class SegmentManagerThreadSafetyTest
{
return new Segment()
{
- PhysicalSegmentInspector rowCountInspector =
Mockito.mock(PhysicalSegmentInspector.class);
+ RowCountInspector rowCountInspector =
Mockito.mock(RowCountInspector.class);
@Override
public SegmentId getId()
@@ -264,7 +264,7 @@ public class SegmentManagerThreadSafetyTest
@Override
public <T> T as(Class<T> clazz)
{
- if (PhysicalSegmentInspector.class.equals(clazz)) {
+ if (RowCountInspector.class.equals(clazz)) {
Mockito.when(rowCountInspector.getNumRows()).thenReturn(1);
return (T) rowCountInspector;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]