1. 12 Jun, 2019 2 commits
  2. 11 Jun, 2019 4 commits
    • Eugene Kosov's avatar
      test commit · e68d3e45
      Eugene Kosov authored
      e68d3e45
    • Marko Mäkelä's avatar
      MDEV-19586 Replace recv_sys_t::addr_hash with a std::map · 177a571e
      Marko Mäkelä authored
      InnoDB crash recovery buffers redo log records in a hash table.
      The function recv_read_in_area() would pick a random hash bucket
      and then try to submit read requests for a few nearby pages.
      Let us replace the recv_sys.addr_hash with a std::map, which will
      automatically be iterated in sorted order.
      
      recv_sys_t::pages: Replaces recv_sys_t::addr_hash, recv_sys_t::n_addrs.
      
      recv_sys_t::recs: Replaces most of recv_addr_t.
      
      recv_t: Encapsulate a raw singly-linked list of records. This reduces
      overhead compared to std::forward_list. Storage and cache overhead,
      because the next-element pointer also points to the data payload.
      Processing overhead, because recv_sys_t::recs_t::last will point to
      the last record, so that recv_sys_t::add() can append straight to the
      end of the list.
      
      RECV_PROCESSED, RECV_DISCARDED: Remove. When a page is fully processed,
      it will be deleted from recv_sys.pages.
      
      recv_sys_t::trim(): Replaces recv_addr_trim().
      
      recv_sys_t::add(): Use page_id_t for identifying pages.
      
      recv_fold(), recv_hash(), recv_get_fil_addr_struct(): Remove.
      
      recv_read_in_area(): Simplify the iteration.
      177a571e
    • Marko Mäkelä's avatar
      Define page_id_t in buf0types.h · 992d2494
      Marko Mäkelä authored
      992d2494
    • Alexander Barkov's avatar
      f42bda6d
  3. 10 Jun, 2019 1 commit
  4. 07 Jun, 2019 2 commits
  5. 06 Jun, 2019 1 commit
  6. 04 Jun, 2019 3 commits
    • Alexander Barkov's avatar
      ab190194
    • Alexander Barkov's avatar
    • Alexander Barkov's avatar
      MDEV-19639 + MDEV-19640 fix + preparatory changes for WL#4179 · bf5a144e
      Alexander Barkov authored
      This patch includes:
      - MDEV-19639 sql_mode=ORACLE: Wrong SHOW PROCEDURE output for sysvar:=expr
      - MDEV-19640 Wrong SHOW PROCEDURE output for SET GLOBAL sysvar1=expr, sysvar2=expr
      - Preparatory refactoring for MySQL WL#4179
      
      Detailed change list:
      
      1. Changing sp_create_assignment_lex() to accept the position
         in the exact query buffer instead of a "bool no_lookahead".
         This actually fixes MDEV-19639.
         In the previous reduction sp_create_assignment_lex() was
         called too late, when the parser went far the from beginning
         of the statement, so only a part of the statement got into
         sp_instr_stmt.
      
      2. Generating "SET" or "SET GLOBAL" inside sp_create_assignment_instr()
         depending on the option type.
         This fixes MDEV-19640.
         In the previous reduction the code passed (through no_lookahead)
         the position of the
         word GLOBAL inside sp_create_assignment_lex(), which
         worked only for the left-most assignment.
      
      3. Fixing the affected rules to use:
         - ident_cli instead of ident
         - ident_cli_set_usual_case instead of ident_set_usual_case
      
      4. Changing the input parameter in:
         - LEX::set_system_variable()
         - LEX::call_statement_start()
         - LEX::set_variable()
         from just LEX_CSTRING to Lex_ident_sys_st for stricter data type constrol:
         to make sure that noone passes an ident_cli
         (a fragment of the original query in the client character set)
         instead of server-side identifier
         (utf8 identifier allocated on THD when needed).
      
      5. Adding Lex_ident_sys() in places where the affected functions are called.
      
      6. Moving all calls of sp_create_assignment_lex() to the places
         just before parsing set_expr_or_default.
         This makes the grammar clearer, because
         sp_create_assignment_lex() and sp_create_assignment_instr()
         now stay near each other, so the balance of LEX's push/pop
         can be read easier.
         This will also help to WL#4179.
      
      7. Adding class sp_lex_set_var
         Moving the initialization code from
         sp_create_assignment_lex() to the constructor of sp_lex_set_var.
         This will also help to WL#4179.
      
      8. Moving a part of the "set" grammar rule into a separate
         rule "set_param".
         This makes the grammar easier to read and removes
         one shift/reduce conflict.
      bf5a144e
  7. 03 Jun, 2019 1 commit
  8. 02 Jun, 2019 1 commit
  9. 01 Jun, 2019 3 commits
  10. 31 May, 2019 1 commit
  11. 30 May, 2019 1 commit
  12. 29 May, 2019 9 commits
  13. 28 May, 2019 11 commits