Vova Vysotskyi created DRILL-7490: ------------------------------------- Summary: limit is not pushed to JDBC storage plugin Key: DRILL-7490 URL: https://issues.apache.org/jira/browse/DRILL-7490 Project: Apache Drill Issue Type: Bug Components: Client - JDBC Affects Versions: 1.11.0 Reporter: Vova Vysotskyi Assignee: Vova Vysotskyi
The limit is not pushed to JDBC storage plugin. The following query: {code:sql} select person_id from mysql.`drill_mysql_test`.person limit 10 {code} Returns plan: {noformat} 00-00 Screen 00-01 Project(person_id=[$0]) 00-02 SelectionVectorRemover 00-03 Limit(fetch=[10]) 00-04 Limit(fetch=[10]) 00-05 Jdbc(sql=[SELECT `person_id` FROM `drill_mysql_test`.`person` ]) {noformat} This issue happens since incorrect row count is calculated for {{JdbcSort}}. Drill enforces to use {{RelNode.estimateRowCount(mq)}} for calculating row count for all inheritants of {{Sort}} rel node (see {{DrillRelMdRowCount}}), but {{JdbcSort}} doesn't override this method and uses parent one which returns row count of input. So planner choses {{DrillLimitRel}} since it has less row count. -- This message was sent by Atlassian Jira (v8.3.4#803005)