clintropolis commented on code in PR #17386:
URL: https://github.com/apache/druid/pull/17386#discussion_r1873779399
##########
processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndexColumnSelectorFactory.java:
##########
@@ -51,21 +54,44 @@ class IncrementalIndexColumnSelectorFactory implements
ColumnSelectorFactory, Ro
IncrementalIndexColumnSelectorFactory(
IncrementalIndexRowSelector rowSelector,
IncrementalIndexRowHolder rowHolder,
- VirtualColumns virtualColumns,
+ CursorBuildSpec cursorBuildSpec,
Order timeOrder
)
{
this.rowSelector = rowSelector;
- this.virtualColumns = virtualColumns;
+ this.virtualColumns = cursorBuildSpec.getVirtualColumns();
this.timeOrder = timeOrder;
this.rowHolder = rowHolder;
+
+ final Map<String, ColumnCapabilities> capabilitiesMap = new HashMap<>();
+ if (cursorBuildSpec.getPhysicalColumns() == null) {
+ // add everything
+ for (String column : rowSelector.getDimensionNames(true)) {
+ capabilitiesMap.put(column,
IncrementalIndexCursorFactory.snapshotColumnCapabilities(rowSelector, column));
+ }
+ for (String column : rowSelector.getMetricNames()) {
+ capabilitiesMap.put(column,
IncrementalIndexCursorFactory.snapshotColumnCapabilities(rowSelector, column));
+ }
+ for (String column :
cursorBuildSpec.getVirtualColumns().getColumnNames()) {
+ capabilitiesMap.put(column,
IncrementalIndexCursorFactory.snapshotColumnCapabilities(rowSelector, column));
+ }
+ } else {
+ // just add required columns
+ for (String column : cursorBuildSpec.getPhysicalColumns()) {
+ capabilitiesMap.put(column,
IncrementalIndexCursorFactory.snapshotColumnCapabilities(rowSelector, column));
+ }
+ // and virtual columns
+ for (String column :
cursorBuildSpec.getVirtualColumns().getColumnNames()) {
+ capabilitiesMap.put(column,
IncrementalIndexCursorFactory.snapshotColumnCapabilities(rowSelector, column));
+ }
+ }
this.snapshotColumnInspector = new ColumnInspector()
{
@Nullable
@Override
public ColumnCapabilities getColumnCapabilities(String column)
{
- return
IncrementalIndexCursorFactory.snapshotColumnCapabilities(rowSelector, column);
+ return capabilitiesMap.get(column);
Review Comment:
i added validation for `getColumnCapabilities`. I think I would actually
like to take it a step further and add this validation for all the selector
factory methods for `IncrementalIndexColumnSelectorFactory`,
`QueryableIndexColumnSelectorFactory` and
`QueryableIndexVectorColumnSelectorFactory`, but have decided to do this as a
follow-up since I feel like this PR already has enough stuff going on with it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]