[ https://issues.apache.org/jira/browse/DRILL-3623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009832#comment-15009832 ]
ASF GitHub Bot commented on DRILL-3623: --------------------------------------- Github user sudheeshkatkam commented on a diff in the pull request: https://github.com/apache/drill/pull/193#discussion_r45138996 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillDirectScanRel.java --- @@ -0,0 +1,111 @@ +/** + * 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.planner.logical; + +import com.google.common.collect.Iterators; +import org.apache.calcite.plan.RelOptCluster; +import org.apache.calcite.plan.RelTraitSet; +import org.apache.calcite.rel.AbstractRelNode; +import org.apache.calcite.rel.RelWriter; +import org.apache.calcite.rel.type.RelDataType; +import org.apache.drill.common.logical.data.LogicalOperator; +import org.apache.drill.exec.physical.base.PhysicalOperator; +import org.apache.drill.exec.planner.physical.DrillScanPrel; +import org.apache.drill.exec.planner.physical.PhysicalPlanCreator; +import org.apache.drill.exec.planner.physical.PlannerSettings; +import org.apache.drill.exec.planner.physical.Prel; +import org.apache.drill.exec.planner.physical.PrelUtil; +import org.apache.drill.exec.planner.physical.visitor.PrelVisitor; +import org.apache.drill.exec.record.BatchSchema; +import org.apache.drill.exec.store.direct.DirectGroupScan; + +import java.io.IOException; +import java.util.Iterator; + +/** + * Logical and physical RelNode representing a {@link DirectGroupScan}. This is not backed by a {@link DrillTable}, + * unlike {@link DrillScanRel}. + */ +public class DrillDirectScanRel extends AbstractRelNode implements DrillScanPrel, DrillRel { --- End diff -- @jinfengni I'll post the patch with Values approach. @julianhyde That makes sense. @jacques-n Since we use data to encode types in Values, pushing Limit (specially zero) into into Values requires a sizable change (?). Also, I think [there is a bug](https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRel.java#L141) since Calcite allows for creating a LogicalValues [with types and without literals](https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/logical/LogicalValues.java#L101), and Drill does not handle this case. Regarding the above approach (putting a limit 0 on top of scan), I think fast schema wasn't sufficient because there was only one record batch during execution (extreme case). Right now, I do not see any specific issue there. Regarding the note, can you expand on what you mean? Change the visitor pattern to a logical rule? Or is there a logical rule that conflicts with this change, and this shorter path should be avoided? > Hive query hangs with limit 0 clause > ------------------------------------ > > Key: DRILL-3623 > URL: https://issues.apache.org/jira/browse/DRILL-3623 > Project: Apache Drill > Issue Type: Bug > Components: Storage - Hive > Affects Versions: 1.1.0 > Environment: MapR cluster > Reporter: Andries Engelbrecht > Assignee: Sudheesh Katkam > Fix For: Future > > > Running a select * from hive.table limit 0 does not return (hangs). > Select * from hive.table limit 1 works fine > Hive table is about 6GB with 330 files with parquet using snappy compression. > Data types are int, bigint, string and double. > Querying directory with parquet files through the DFS plugin works fine > select * from dfs.root.`/user/hive/warehouse/database/table` limit 0; -- This message was sent by Atlassian JIRA (v6.3.4#6332)