Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-86

limit in derived in subquery in a stored function

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.5.20
    • Component/s: None
    • Labels:
      None

      Description

      in sp.test:

      create function f1(p1 integer, p2 integer)
      returns int
      begin
        declare count int;
        set count= (select count(*) from (select * from t1 limit p1, p2) t_1);
        return count;
      end|
      select f1(0, -1)|
      

      limit values are used in JOIN::optimize invoked from mysql_derived_optimize.
      While limit values are set in st_select_lex_unit::set_limit invoked from mysql_derived_fill invoked from mysql_derived_optimize. Later in the execute flow.
      Full stack traces are attached.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              serg Sergei Golubchik added a comment -

              please review also the complete changeset that added this test case to sp.test.
              It looks questionable to me. But it's unrelated to the bug.

              Show
              serg Sergei Golubchik added a comment - please review also the complete changeset that added this test case to sp.test. It looks questionable to me. But it's unrelated to the bug.
              Hide
              igor Igor Babaev added a comment -

              Pushed the fix into lp:~maria-captains/maria/5.5

              Show
              igor Igor Babaev added a comment - Pushed the fix into lp:~maria-captains/maria/5.5

                People

                • Assignee:
                  igor Igor Babaev
                  Reporter:
                  serg Sergei Golubchik
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - 0 minutes
                    0m
                    Logged:
                    Time Spent - 1 day, 2 hours, 30 minutes
                    1d 2h 30m