1. 30 Jun, 2016 1 commit
  2. 29 Jun, 2016 1 commit
  3. 26 Jun, 2016 1 commit
  4. 07 Jun, 2016 2 commits
  5. 06 Jun, 2016 1 commit
  6. 24 May, 2016 6 commits
  7. 23 May, 2016 2 commits
  8. 21 May, 2016 1 commit
  9. 20 May, 2016 4 commits
    • Alexander Barkov's avatar
      sql_yacc.yy: Removing unnecessary init_nested_join() and end_nested_join() · 349da1d6
      Alexander Barkov authored
      from select_derived_init.
      349da1d6
    • Alexander Barkov's avatar
      A derived_query_specification clean-up · c44b2e66
      Alexander Barkov authored
      (to simplify further MDEV-8909 changes)
      
      1. Better semantic readability:
      - Moving get_select_lex_derived inside select_derived_init
        and decomposing it into get_select_lex and
        $1->init_nested_join(lex->thd)
      -  Moving DBUG_ASSERT($1 == Lex->current_select) inside
         select_derived_init
      
      Now init_nested_join() and end_nested_join() reside inside
      the same rule select_derived_init.
      (It's very likely that they can be further removed,
       as there are no any joins in this rule).
      
      3. Better grammar readability:
        Moving SELECT_SYM from select_derived_init to derived_query_specification.
        It's easier to read a rule when it starts from a terminal symbol.
      c44b2e66
    • Oleksandr Byelkin's avatar
    • Alexander Barkov's avatar
      MDEV-10080 Derived tables allow double LIMIT clause · f6a7c1c7
      Alexander Barkov authored
      1. Moving the "| get_select_lex_derived select_derived_init" part of
      select_derived into a separate new rule derived_query_specification.
      2. Using derived_query_specification directly in select_derived_union
      rather than in select_derived.
      3. Moving the sequence "opt_order_clause opt_limit_clause opt_select_lock_type"
      from select_derived2 to select_derived_union,
      after derived_query_specification.
      
      Effectively, the parser now does not go through the sequence
      "opt_order_clause opt_limit_clause ... opt_union_order_or_limit" any more.
      
      This fixes the problem with double LIMIT clause and removes 2 shift/reduce
      conflicts.
      f6a7c1c7
  10. 19 May, 2016 3 commits
    • Galina Shalygina's avatar
      Changes in test files · 0f7fe2a7
      Galina Shalygina authored
      0f7fe2a7
    • Galina Shalygina's avatar
      Fixed many problems in the code of With_element::check_unrestricted_recursive(). · 46a2e413
      Galina Shalygina authored
      Added the check whether there are set functions in the specifications of recursive CTE.
      Added the check whether there are recursive references in subqueries.
      Introduced boolean system variable 'standards_compliant_cte'. By default it's set to 'on'.
      When it's set to 'off' non-standard compliant CTE can be executed.
      46a2e413
    • Alexander Barkov's avatar
      This patch is a cleanup simplifying upcoming · c9629daa
      Alexander Barkov authored
      "MDEV-8909 union parser cleanup" changes.
      
      When the server parses a query like
        SELECT * FROM (SELECT 1);
      a sequence of calls
        st_select_lex::init_nested_join() ..
        st_select_lex::end_nested_join()
      was performed two times (tested in gdb).
      Both pairs of calls seem to be redundant for a query
      like this, because there are actually no any joins here.
      
      This patch moved "table_ref_select" inside "select_derived",
      which revealed that one the pairs was definitely redundant:
      After this transformation we got an init_nested_join()
      immediately followed by end_nested_join() for the same st_select_lex,
      which has no any sense. So this pair of calls was removed.
      c9629daa
  11. 17 May, 2016 7 commits
  12. 16 May, 2016 1 commit
    • Alexander Barkov's avatar
      sql_yacc.yy cleanup, to simplify further changes for MDEV-8909. · 1f4f7293
      Alexander Barkov authored
      - Moving "SELECT_SYM select_init2_derived opt_table_expression"
        from query_term into a new separate rule query_specification,
        and using query_specification in the beginning of query_term.
      - query_term now does not have a %type, query_specification has a %type
        instead. This removes duplicate code that returns
        Lex->current_select->master_unit()->first_select();
      1f4f7293
  13. 14 May, 2016 2 commits
  14. 13 May, 2016 3 commits
  15. 12 May, 2016 1 commit
  16. 10 May, 2016 4 commits