diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java index 51cd6727871af9..378e974b7d6fb2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java @@ -139,7 +139,7 @@ protected void initSchemaParams() throws UserException { params.addToRequiredSlots(slotInfo); } setDefaultValueExprs(getTargetTable(), destSlotDescByName, params, false); - setColumnPositionMappingForTextFile(); + setColumnPositionMapping(); // For query, set src tuple id to -1. params.setSrcTupleId(-1); } @@ -167,6 +167,11 @@ public void updateRequiredSlots(PlanTranslatorContext planTranslatorContext, slotInfo.setIsFileSlot(!getPathPartitionKeys().contains(slot.getColumn().getName())); params.addToRequiredSlots(slotInfo); } + // Update required slots in scanRangeLocations. + for (TScanRangeLocations location : scanRangeLocations) { + location.getScanRange().getExtScanRange().getFileScanRange() + .getParams().setRequiredSlots(params.getRequiredSlots()); + } } @Override @@ -184,7 +189,7 @@ protected void doFinalize() throws UserException { createScanRangeLocations(); } - private void setColumnPositionMappingForTextFile() + private void setColumnPositionMapping() throws UserException { TableIf tbl = getTargetTable(); List columnIdxs = Lists.newArrayList();