This is an automated email from the ASF dual-hosted git repository.
sunithabeeram pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 732e656 Cleanup: update code to return only physical columns for
select * queries (#3602)
732e656 is described below
commit 732e6568c1d88d83ed78cdd90b6365afa9e18a38
Author: Sunitha Beeram <[email protected]>
AuthorDate: Tue Dec 11 12:51:35 2018 -0800
Cleanup: update code to return only physical columns for select * queries
(#3602)
* 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 | 23 ++++++--
.../virtualcolumn/BaseVirtualColumnProvider.java | 12 +++++
.../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 +-
.../com/linkedin/pinot/perf/RawIndexBenchmark.java | 2 +-
.../tools/scan/query/SegmentQueryProcessor.java | 2 +-
13 files changed, 108 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..8d50e6f 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;
@@ -221,6 +222,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 +325,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 +397,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 +406,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 +428,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 +539,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..617b4b9 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,7 @@
*/
package com.linkedin.pinot.core.segment.virtualcolumn;
+import com.linkedin.pinot.core.segment.index.ColumnMetadata;
import com.linkedin.pinot.core.segment.index.column.ColumnIndexContainer;
@@ -22,6 +23,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-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: [email protected]
For additional commands, e-mail: [email protected]