Github user vdiravka commented on a diff in the pull request: https://github.com/apache/drill/pull/1083#discussion_r160663414 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/SchemalessScan.java --- @@ -0,0 +1,80 @@ +/* + * 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.drill.exec.physical.base; + +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.google.common.base.Preconditions; +import org.apache.drill.common.exceptions.ExecutionSetupException; +import org.apache.drill.common.expression.SchemaPath; +import org.apache.drill.exec.physical.PhysicalOperatorSetupException; +import org.apache.drill.exec.planner.logical.DynamicDrillTable; +import org.apache.drill.exec.proto.CoordinationProtos; + +import java.util.List; + +/** + * The type of scan operator, which allows to scan schemaless tables ({@link DynamicDrillTable} with null selection) + */ +@JsonTypeName("schemaless-scan") +public class SchemalessScan extends AbstractGroupScan implements SubScan { + + public SchemalessScan(String userName) { + super(userName); + } + + public SchemalessScan(AbstractGroupScan that) { + super(that); + } + + @Override + public void applyAssignments(List<CoordinationProtos.DrillbitEndpoint> endpoints) throws PhysicalOperatorSetupException { + } + + @Override + public SubScan getSpecificScan(int minorFragmentId) throws ExecutionSetupException { + return this; + } + + @Override + public int getMaxParallelizationWidth() { + return 1; + } + + @Override + public String getDigest() { + return toString(); --- End diff -- Thanks. Forgot to override this. For now toString() is overridden. And to show selectionRoot I have replaced null file selection with current File Selection (with `emptyDirectory` flag, which indicates whether this FileSelection is an empty directory). Profiles - > Physical Plan shows the following info: `Scan(groupscan=[SchemalessScan [selectionRoot = file:/home/vitalii/Documents/parquet_for_union/folder2]]) : rowType = (DrillRecordRow[*, value]): rowcount = 1.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 334`
---