You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by su...@apache.org on 2018/12/11 00:29:04 UTC
[incubator-pinot] 01/01: Cleanup: update code to return only
physical columns for select * queries
This is an automated email from the ASF dual-hosted git repository.
sunithabeeram pushed a commit to branch virtualColFix
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit e0674fb6ed0747e65c0a56019ebc9d56ed675952
Author: Sunitha Beeram <sb...@linkedin.com>
AuthorDate: Mon Dec 10 16:28:42 2018 -0800
Cleanup: update code to return only physical columns for select * queries
---
.../operator/query/SelectionOrderByOperator.java | 7 +--
.../query/selection/SelectionOperatorUtils.java | 11 +---
.../pinot/core/segment/index/ColumnMetadata.java | 24 +++++++--
.../virtualcolumn/BaseVirtualColumnProvider.java | 13 +++++
.../virtualcolumn/DocIdVirtualColumnProvider.java | 8 ++-
.../SingleStringVirtualColumnProvider.java | 9 ++--
.../pinot/core/common/DataFetcherTest.java | 2 +-
.../function/BaseTransformFunctionTest.java | 2 +-
.../core/startree/hll/HllIndexCreationTest.java | 2 +-
...nnerSegmentSelectionSingleValueQueriesTest.java | 61 ++++++++++++++++++++++
.../DefaultAggregationExecutorTest.java | 2 +-
.../tests/OfflineClusterIntegrationTest.java | 2 +
.../com/linkedin/pinot/perf/RawIndexBenchmark.java | 2 +-
.../tools/scan/query/SegmentQueryProcessor.java | 2 +-
14 files changed, 112 insertions(+), 35 deletions(-)
diff --git a/pinot-core/src/main/java/com/linkedin/pinot/core/operator/query/SelectionOrderByOperator.java b/pinot-core/src/main/java/com/linkedin/pinot/core/operator/query/SelectionOrderByOperator.java
index 2e5f35b..524c857 100644
--- a/pinot-core/src/main/java/com/linkedin/pinot/core/operator/query/SelectionOrderByOperator.java
+++ b/pinot-core/src/main/java/com/linkedin/pinot/core/operator/query/SelectionOrderByOperator.java
@@ -65,11 +65,8 @@ public class SelectionOrderByOperator extends BaseOperator<IntermediateResultsBl
_selectionColumns.addAll(_selection.getSelectionColumns());
if ((_selectionColumns.size() == 1) && ((_selectionColumns.toArray(new String[0]))[0].equals("*"))) {
_selectionColumns.clear();
- for (String columnName : indexSegment.getColumnNames()) {
- // Filter out columns that start with $ (virtual columns)
- if (!columnName.startsWith("$")) {
- _selectionColumns.add(columnName);
- }
+ for (String columnName : indexSegment.getPhysicalColumnNames()) {
+ _selectionColumns.add(columnName);
}
}
if (_selection.getSelectionSortSequence() != null) {
diff --git a/pinot-core/src/main/java/com/linkedin/pinot/core/query/selection/SelectionOperatorUtils.java b/pinot-core/src/main/java/com/linkedin/pinot/core/query/selection/SelectionOperatorUtils.java
index 51958e9..ad02aae 100644
--- a/pinot-core/src/main/java/com/linkedin/pinot/core/query/selection/SelectionOperatorUtils.java
+++ b/pinot-core/src/main/java/com/linkedin/pinot/core/query/selection/SelectionOperatorUtils.java
@@ -84,15 +84,8 @@ public class SelectionOperatorUtils {
public static List<String> getSelectionColumns(@Nonnull List<String> selectionColumns,
@Nonnull IndexSegment indexSegment) {
if (selectionColumns.size() == 1 && selectionColumns.get(0).equals("*")) {
- List<String> allColumns = new LinkedList<>(indexSegment.getColumnNames());
- Set<String> columnNames = indexSegment.getColumnNames();
-
- // Remove columns that start with $ (eg. $docId) when doing select *
- for (String columnName : columnNames) {
- if (columnName.startsWith("$")) {
- allColumns.remove(columnName);
- }
- }
+ List<String> allColumns = new LinkedList<>(indexSegment.getPhysicalColumnNames());
+ Set<String> columnNames = indexSegment.getPhysicalColumnNames();
Collections.sort(allColumns);
return allColumns;
diff --git a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/index/ColumnMetadata.java b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/index/ColumnMetadata.java
index 85ce757..eeb5983 100644
--- a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/index/ColumnMetadata.java
+++ b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/index/ColumnMetadata.java
@@ -64,6 +64,7 @@ public class ColumnMetadata {
@JsonProperty
private final boolean hasInvertedIndex;
private final boolean isSingleValue;
+ private final boolean isVirtual;
private final int maxNumberOfMultiValues;
private final int totalNumberOfEntries;
private final boolean isAutoGenerated;
@@ -81,6 +82,7 @@ public class ColumnMetadata {
private final String dateTimeFormat;
private final String dateTimeGranularity;
+
public static ColumnMetadata fromPropertiesConfiguration(String column, PropertiesConfiguration config) {
Builder builder = new Builder();
@@ -221,6 +223,7 @@ public class ColumnMetadata {
private boolean hasDictionary;
private boolean hasInvertedIndex;
private boolean isSingleValue;
+ private boolean isVirtual;
private int maxNumberOfMultiValues;
private int totalNumberOfEntries;
private boolean isAutoGenerated;
@@ -323,6 +326,11 @@ public class ColumnMetadata {
return this;
}
+ public Builder setVirtual(boolean isVirtual) {
+ this.isVirtual = isVirtual;
+ return this;
+ }
+
public Builder setDefaultNullValueString(String defaultNullValueString) {
this.defaultNullValueString = defaultNullValueString;
return this;
@@ -390,7 +398,7 @@ public class ColumnMetadata {
public ColumnMetadata build() {
return new ColumnMetadata(columnName, cardinality, totalDocs, totalRawDocs, totalAggDocs, dataType,
bitsPerElement, columnMaxLength, fieldType, isSorted, containsNulls, hasDictionary, hasInvertedIndex,
- isSingleValue, maxNumberOfMultiValues, totalNumberOfEntries, isAutoGenerated, defaultNullValueString,
+ isSingleValue, maxNumberOfMultiValues, totalNumberOfEntries, isAutoGenerated, isVirtual, defaultNullValueString,
timeUnit, paddingCharacter, derivedMetricType, fieldSize, originColumnName, minValue, maxValue,
partitionFunction, numPartitions, partitionValues, dateTimeFormat, dateTimeGranularity);
}
@@ -399,10 +407,11 @@ public class ColumnMetadata {
private ColumnMetadata(String columnName, int cardinality, int totalDocs, int totalRawDocs, int totalAggDocs,
DataType dataType, int bitsPerElement, int columnMaxLength, FieldType fieldType, boolean isSorted,
boolean hasNulls, boolean hasDictionary, boolean hasInvertedIndex, boolean isSingleValue,
- int maxNumberOfMultiValues, int totalNumberOfEntries, boolean isAutoGenerated, String defaultNullValueString,
- TimeUnit timeUnit, char paddingCharacter, DerivedMetricType derivedMetricType, int fieldSize,
- String originColumnName, Comparable minValue, Comparable maxValue, PartitionFunction partitionFunction,
- int numPartitions, List<IntRange> partitionRanges, String dateTimeFormat, String dateTimeGranularity) {
+ int maxNumberOfMultiValues, int totalNumberOfEntries, boolean isAutoGenerated, boolean isVirtual,
+ String defaultNullValueString, TimeUnit timeUnit, char paddingCharacter, DerivedMetricType derivedMetricType,
+ int fieldSize, String originColumnName, Comparable minValue, Comparable maxValue,
+ PartitionFunction partitionFunction, int numPartitions, List<IntRange> partitionRanges, String dateTimeFormat,
+ String dateTimeGranularity) {
this.columnName = columnName;
this.cardinality = cardinality;
this.totalDocs = totalDocs;
@@ -420,6 +429,7 @@ public class ColumnMetadata {
this.maxNumberOfMultiValues = maxNumberOfMultiValues;
this.totalNumberOfEntries = totalNumberOfEntries;
this.isAutoGenerated = isAutoGenerated;
+ this.isVirtual = isVirtual;
this.defaultNullValueString = defaultNullValueString;
this.timeUnit = timeUnit;
this.paddingCharacter = paddingCharacter;
@@ -530,6 +540,10 @@ public class ColumnMetadata {
return isAutoGenerated;
}
+ public boolean isVirtual() {
+ return isVirtual;
+ }
+
public String getDefaultNullValueString() {
return defaultNullValueString;
}
diff --git a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/BaseVirtualColumnProvider.java b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/BaseVirtualColumnProvider.java
index f8278ab..08f5e9e 100644
--- a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/BaseVirtualColumnProvider.java
+++ b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/BaseVirtualColumnProvider.java
@@ -15,6 +15,8 @@
*/
package com.linkedin.pinot.core.segment.virtualcolumn;
+import com.linkedin.pinot.common.data.FieldSpec;
+import com.linkedin.pinot.core.segment.index.ColumnMetadata;
import com.linkedin.pinot.core.segment.index.column.ColumnIndexContainer;
@@ -22,6 +24,17 @@ import com.linkedin.pinot.core.segment.index.column.ColumnIndexContainer;
* Shared implementation code between virtual column providers.
*/
public abstract class BaseVirtualColumnProvider implements VirtualColumnProvider {
+
+ protected ColumnMetadata.Builder getColumnMetadataBuilder(VirtualColumnContext context) {
+
+ ColumnMetadata.Builder builder = new ColumnMetadata.Builder()
+ .setVirtual(true)
+ .setColumnName(context.getColumnName())
+ .setTotalDocs(context.getTotalDocCount());
+
+ return builder;
+ }
+
@Override
public ColumnIndexContainer buildColumnIndexContainer(VirtualColumnContext context) {
return new VirtualColumnIndexContainer(buildReader(context), buildInvertedIndex(context), buildDictionary(context));
diff --git a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/DocIdVirtualColumnProvider.java b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/DocIdVirtualColumnProvider.java
index 80e0c78..0d3b292 100644
--- a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/DocIdVirtualColumnProvider.java
+++ b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/DocIdVirtualColumnProvider.java
@@ -51,16 +51,14 @@ public class DocIdVirtualColumnProvider extends BaseVirtualColumnProvider {
@Override
public ColumnMetadata buildMetadata(VirtualColumnContext context) {
- ColumnMetadata.Builder columnMetadataBuilder = new ColumnMetadata.Builder()
- .setColumnName(context.getColumnName())
- .setCardinality(context.getTotalDocCount())
+ ColumnMetadata.Builder columnMetadataBuilder = super.getColumnMetadataBuilder(context);
+ columnMetadataBuilder.setCardinality(context.getTotalDocCount())
.setHasDictionary(true)
.setHasInvertedIndex(true)
.setFieldType(FieldSpec.FieldType.DIMENSION)
.setDataType(FieldSpec.DataType.INT)
.setSingleValue(true)
- .setIsSorted(true)
- .setTotalDocs(context.getTotalDocCount());
+ .setIsSorted(true);
return columnMetadataBuilder.build();
}
diff --git a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/SingleStringVirtualColumnProvider.java b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/SingleStringVirtualColumnProvider.java
index 535489b..f9dc33a 100644
--- a/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/SingleStringVirtualColumnProvider.java
+++ b/pinot-core/src/main/java/com/linkedin/pinot/core/segment/virtualcolumn/SingleStringVirtualColumnProvider.java
@@ -51,16 +51,15 @@ public abstract class SingleStringVirtualColumnProvider extends BaseVirtualColum
@Override
public ColumnMetadata buildMetadata(VirtualColumnContext context) {
- ColumnMetadata.Builder columnMetadataBuilder = new ColumnMetadata.Builder()
- .setColumnName(context.getColumnName())
- .setCardinality(1)
+ ColumnMetadata.Builder columnMetadataBuilder = super.getColumnMetadataBuilder(context);
+
+ columnMetadataBuilder.setCardinality(1)
.setHasDictionary(true)
.setHasInvertedIndex(true)
.setFieldType(FieldSpec.FieldType.DIMENSION)
.setDataType(FieldSpec.DataType.STRING)
.setSingleValue(true)
- .setIsSorted(true)
- .setTotalDocs(context.getTotalDocCount());
+ .setIsSorted(true);
return columnMetadataBuilder.build();
}
diff --git a/pinot-core/src/test/java/com/linkedin/pinot/core/common/DataFetcherTest.java b/pinot-core/src/test/java/com/linkedin/pinot/core/common/DataFetcherTest.java
index e784273..45b79fa 100644
--- a/pinot-core/src/test/java/com/linkedin/pinot/core/common/DataFetcherTest.java
+++ b/pinot-core/src/test/java/com/linkedin/pinot/core/common/DataFetcherTest.java
@@ -121,7 +121,7 @@ public class DataFetcherTest {
IndexSegment indexSegment = ImmutableSegmentLoader.load(new File(INDEX_DIR_PATH, SEGMENT_NAME), ReadMode.heap);
Map<String, DataSource> dataSourceMap = new HashMap<>();
- for (String column : indexSegment.getColumnNames()) {
+ for (String column : indexSegment.getPhysicalColumnNames()) {
dataSourceMap.put(column, indexSegment.getDataSource(column));
}
// Get a data fetcher for the index segment.
diff --git a/pinot-core/src/test/java/com/linkedin/pinot/core/operator/transform/function/BaseTransformFunctionTest.java b/pinot-core/src/test/java/com/linkedin/pinot/core/operator/transform/function/BaseTransformFunctionTest.java
index 54cbc27..d4161a9 100644
--- a/pinot-core/src/test/java/com/linkedin/pinot/core/operator/transform/function/BaseTransformFunctionTest.java
+++ b/pinot-core/src/test/java/com/linkedin/pinot/core/operator/transform/function/BaseTransformFunctionTest.java
@@ -128,7 +128,7 @@ public abstract class BaseTransformFunctionTest {
driver.build();
IndexSegment indexSegment = ImmutableSegmentLoader.load(new File(INDEX_DIR_PATH, SEGMENT_NAME), ReadMode.heap);
- Set<String> columnNames = indexSegment.getColumnNames();
+ Set<String> columnNames = indexSegment.getPhysicalColumnNames();
_dataSourceMap = new HashMap<>(columnNames.size());
for (String columnName : columnNames) {
_dataSourceMap.put(columnName, indexSegment.getDataSource(columnName));
diff --git a/pinot-core/src/test/java/com/linkedin/pinot/core/startree/hll/HllIndexCreationTest.java b/pinot-core/src/test/java/com/linkedin/pinot/core/startree/hll/HllIndexCreationTest.java
index 74102ff..61f058c 100644
--- a/pinot-core/src/test/java/com/linkedin/pinot/core/startree/hll/HllIndexCreationTest.java
+++ b/pinot-core/src/test/java/com/linkedin/pinot/core/startree/hll/HllIndexCreationTest.java
@@ -119,7 +119,7 @@ public class HllIndexCreationTest {
docIdSet[i] = i;
}
Map<String, DataSource> dataSourceMap = new HashMap<>();
- for (String column : indexSegment.getColumnNames()) {
+ for (String column : indexSegment.getPhysicalColumnNames()) {
dataSourceMap.put(column, indexSegment.getDataSource(column));
}
DataBlockCache blockCache = new DataBlockCache(new DataFetcher(dataSourceMap));
diff --git a/pinot-core/src/test/java/com/linkedin/pinot/queries/InnerSegmentSelectionSingleValueQueriesTest.java b/pinot-core/src/test/java/com/linkedin/pinot/queries/InnerSegmentSelectionSingleValueQueriesTest.java
index 6285d42..1199896 100644
--- a/pinot-core/src/test/java/com/linkedin/pinot/queries/InnerSegmentSelectionSingleValueQueriesTest.java
+++ b/pinot-core/src/test/java/com/linkedin/pinot/queries/InnerSegmentSelectionSingleValueQueriesTest.java
@@ -84,6 +84,7 @@ public class InnerSegmentSelectionSingleValueQueriesTest extends BaseSingleValue
Assert.assertEquals(executionStatistics.getNumTotalRawDocs(), 30000L);
DataSchema selectionDataSchema = resultsBlock.getSelectionDataSchema();
Assert.assertEquals(selectionDataSchema.size(), 11);
+ Assert.assertEquals(getVirtualColumns(selectionDataSchema), 0);
Assert.assertEquals(selectionDataSchema.getColumnName(0), "column1");
Assert.assertEquals(selectionDataSchema.getColumnName(1), "column11");
Assert.assertEquals(selectionDataSchema.getColumnDataType(0), DataSchema.ColumnDataType.INT);
@@ -105,6 +106,7 @@ public class InnerSegmentSelectionSingleValueQueriesTest extends BaseSingleValue
Assert.assertEquals(executionStatistics.getNumTotalRawDocs(), 30000L);
selectionDataSchema = resultsBlock.getSelectionDataSchema();
Assert.assertEquals(selectionDataSchema.size(), 11);
+ Assert.assertEquals(getVirtualColumns(selectionDataSchema), 0);
Assert.assertEquals(selectionDataSchema.getColumnName(0), "column1");
Assert.assertEquals(selectionDataSchema.getColumnName(1), "column11");
Assert.assertEquals(selectionDataSchema.getColumnDataType(0), DataSchema.ColumnDataType.INT);
@@ -210,4 +212,63 @@ public class InnerSegmentSelectionSingleValueQueriesTest extends BaseSingleValue
Assert.assertEquals(((Integer) lastRow[0]).intValue(), 6043515);
Assert.assertEquals(((Integer) lastRow[1]).intValue(), 462769197);
}
+
+ @Test
+ public void testSelectStarOrderBy() {
+ String query = "SELECT * " + " FROM testTable" + ORDER_BY;
+
+ // Test query without filter
+ SelectionOrderByOperator selectionOrderByOperator = getOperatorForQuery(query);
+ IntermediateResultsBlock resultsBlock = selectionOrderByOperator.nextBlock();
+ ExecutionStatistics executionStatistics = selectionOrderByOperator.getExecutionStatistics();
+ Assert.assertEquals(executionStatistics.getNumDocsScanned(), 30000L);
+ Assert.assertEquals(executionStatistics.getNumEntriesScannedInFilter(), 0L);
+ Assert.assertEquals(executionStatistics.getNumEntriesScannedPostFilter(), 330000L);
+ Assert.assertEquals(executionStatistics.getNumTotalRawDocs(), 30000L);
+ DataSchema selectionDataSchema = resultsBlock.getSelectionDataSchema();
+ Assert.assertEquals(getVirtualColumns(selectionDataSchema), 0);
+ Assert.assertEquals(selectionDataSchema.size(), 11);
+ Assert.assertEquals(selectionDataSchema.getColumnName(0), "column6");
+ Assert.assertEquals(selectionDataSchema.getColumnName(1), "column1");
+ Assert.assertEquals(selectionDataSchema.getColumnDataType(0), DataSchema.ColumnDataType.INT);
+ Assert.assertEquals(selectionDataSchema.getColumnDataType(1), DataSchema.ColumnDataType.INT);
+ Queue<Serializable[]> selectionResult = (Queue<Serializable[]>) resultsBlock.getSelectionResult();
+ Assert.assertEquals(selectionResult.size(), 10);
+ Serializable[] lastRow = selectionResult.peek();
+ Assert.assertEquals(lastRow.length, 11);
+ Assert.assertEquals(((Integer) lastRow[0]).intValue(), 6043515);
+ Assert.assertEquals(((Integer) lastRow[1]).intValue(), 10542595);
+
+ // Test query with filter
+ selectionOrderByOperator = getOperatorForQueryWithFilter(query);
+ resultsBlock = selectionOrderByOperator.nextBlock();
+ executionStatistics = selectionOrderByOperator.getExecutionStatistics();
+ Assert.assertEquals(executionStatistics.getNumDocsScanned(), 6129L);
+ Assert.assertEquals(executionStatistics.getNumEntriesScannedInFilter(), 84134L);
+ Assert.assertEquals(executionStatistics.getNumEntriesScannedPostFilter(), 67419);
+ Assert.assertEquals(executionStatistics.getNumTotalRawDocs(), 30000L);
+ selectionDataSchema = resultsBlock.getSelectionDataSchema();
+ Assert.assertEquals(getVirtualColumns(selectionDataSchema), 0);
+ Assert.assertEquals(selectionDataSchema.size(), 11);
+ Assert.assertEquals(selectionDataSchema.getColumnName(0), "column6");
+ Assert.assertEquals(selectionDataSchema.getColumnName(1), "column1");
+ Assert.assertEquals(selectionDataSchema.getColumnDataType(0), DataSchema.ColumnDataType.INT);
+ Assert.assertEquals(selectionDataSchema.getColumnDataType(1), DataSchema.ColumnDataType.INT);
+ selectionResult = (Queue<Serializable[]>) resultsBlock.getSelectionResult();
+ Assert.assertEquals(selectionResult.size(), 10);
+ lastRow = selectionResult.peek();
+ Assert.assertEquals(lastRow.length, 11);
+ Assert.assertEquals(((Integer) lastRow[0]).intValue(), 6043515);
+ Assert.assertEquals(((Integer) lastRow[1]).intValue(), 462769197);
+ }
+
+ private int getVirtualColumns(DataSchema selectionDataSchema) {
+ int virtualCols = 0;
+ for (int i = 0; i < selectionDataSchema.size(); ++i) {
+ if (selectionDataSchema.getColumnName(i).startsWith("$")) {
+ virtualCols++;
+ }
+ }
+ return virtualCols;
+ }
}
diff --git a/pinot-core/src/test/java/com/linkedin/pinot/query/aggregation/DefaultAggregationExecutorTest.java b/pinot-core/src/test/java/com/linkedin/pinot/query/aggregation/DefaultAggregationExecutorTest.java
index 245f08a..70e29bf 100644
--- a/pinot-core/src/test/java/com/linkedin/pinot/query/aggregation/DefaultAggregationExecutorTest.java
+++ b/pinot-core/src/test/java/com/linkedin/pinot/query/aggregation/DefaultAggregationExecutorTest.java
@@ -126,7 +126,7 @@ public class DefaultAggregationExecutorTest {
void testAggregation() {
Map<String, DataSource> dataSourceMap = new HashMap<>();
Set<TransformExpressionTree> expressionTrees = new HashSet<>();
- for (String column : _indexSegment.getColumnNames()) {
+ for (String column : _indexSegment.getPhysicalColumnNames()) {
dataSourceMap.put(column, _indexSegment.getDataSource(column));
expressionTrees.add(TransformExpressionTree.compileToExpressionTree(column));
}
diff --git a/pinot-integration-tests/src/test/java/com/linkedin/pinot/integration/tests/OfflineClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/com/linkedin/pinot/integration/tests/OfflineClusterIntegrationTest.java
index 4e5febf..3843f0a 100644
--- a/pinot-integration-tests/src/test/java/com/linkedin/pinot/integration/tests/OfflineClusterIntegrationTest.java
+++ b/pinot-integration-tests/src/test/java/com/linkedin/pinot/integration/tests/OfflineClusterIntegrationTest.java
@@ -234,6 +234,8 @@ public class OfflineClusterIntegrationTest extends BaseClusterIntegrationTestSet
queryResponse = postQuery(SELECT_STAR_QUERY);
Assert.assertEquals(queryResponse.getLong("totalDocs"), numTotalDocs);
Assert.assertEquals(queryResponse.getJSONObject("selectionResults").getJSONArray("columns").length(), 79);
+
+
}
private void reloadDefaultColumns(final boolean withExtraColumns) throws Exception {
diff --git a/pinot-perf/src/main/java/com/linkedin/pinot/perf/RawIndexBenchmark.java b/pinot-perf/src/main/java/com/linkedin/pinot/perf/RawIndexBenchmark.java
index 416db31..c10890a 100644
--- a/pinot-perf/src/main/java/com/linkedin/pinot/perf/RawIndexBenchmark.java
+++ b/pinot-perf/src/main/java/com/linkedin/pinot/perf/RawIndexBenchmark.java
@@ -241,7 +241,7 @@ public class RawIndexBenchmark {
*/
private Map<String, DataSource> buildDataSourceMap(IndexSegment segment) {
Map<String, DataSource> dataSourceMap = new HashMap<>();
- for (String column : segment.getColumnNames()) {
+ for (String column : segment.getPhysicalColumnNames()) {
dataSourceMap.put(column, segment.getDataSource(column));
}
return dataSourceMap;
diff --git a/pinot-tools/src/main/java/com/linkedin/pinot/tools/scan/query/SegmentQueryProcessor.java b/pinot-tools/src/main/java/com/linkedin/pinot/tools/scan/query/SegmentQueryProcessor.java
index 3085a2b..307acec 100644
--- a/pinot-tools/src/main/java/com/linkedin/pinot/tools/scan/query/SegmentQueryProcessor.java
+++ b/pinot-tools/src/main/java/com/linkedin/pinot/tools/scan/query/SegmentQueryProcessor.java
@@ -110,7 +110,7 @@ class SegmentQueryProcessor {
if (brokerRequest.isSetSelections()) {
List<String> columns = brokerRequest.getSelections().getSelectionColumns();
if (columns.contains("*")) {
- columns = new ArrayList<>(_immutableSegment.getColumnNames());
+ columns = new ArrayList<>(_immutableSegment.getPhysicalColumnNames());
}
List<Pair> selectionColumns = new ArrayList<>();
Set<String> columSet = new HashSet<>();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org