Github user jinfengni commented on the pull request:

    https://github.com/apache/drill/pull/193#issuecomment-152013964
  
    The original approach (skipping the execution phase for limit 0 
completely), actually could potentially have issues in some cases, due to the 
difference in Calcite rule and Drill execution rule, in terms of how type is 
determined.
    
    For example, sum(int) in calcite is resolved to be int, while in Drill 
execution, we changed to bigint. Another case is implicit cast. Currently, 
there are some small differences between Calcite and Drill execution. That 
means, if we skip the execution for limit 0, then types which are resolved in 
Calcite could be different from the type if the query goes through Drill 
execution. For BI tool like Tableau, that means the type returned from "limit 
0" query and type from a second query w/o "limit 0" could be different. 
    
    If we want to avoid the above issues, we have to detect all those cases, 
which are painful. That's why Sudheesh and I are now more inclined to this new 
approach. 
     


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to