Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-7490

limit is not pushed to JDBC storage plugin

    XMLWordPrintableJSON

    Details

      Description

      The limit is not pushed to JDBC storage plugin. 
      The following query:

      select person_id from mysql.`drill_mysql_test`.person limit 10
      

      Returns plan:

      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` ])
      

      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.

        Attachments

        1. image-2020-07-24-17-31-02-589.png
          6 kB
          mustafa Erkoç
        2. image-2020-07-24-17-31-48-831.png
          6 kB
          mustafa Erkoç
        3. image-2020-07-24-17-35-28-912.png
          20 kB
          mustafa Erkoç
        4. image-2020-07-24-17-45-27-357.png
          8 kB
          mustafa Erkoç
        5. image-2020-07-24-17-46-05-219.png
          17 kB
          mustafa Erkoç
        6. image-2020-07-24-17-46-59-584.png
          10 kB
          mustafa Erkoç
        7. image-2020-07-24-17-48-53-740.png
          27 kB
          mustafa Erkoç

          Issue Links

            Activity

              People

              • Assignee:
                volodymyr Vova Vysotskyi
                Reporter:
                volodymyr Vova Vysotskyi
                Reviewer:
                Arina Ielchiieva
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: