1. 19 May, 2018 4 commits
  2. 18 May, 2018 8 commits
  3. 17 May, 2018 16 commits
  4. 16 May, 2018 12 commits
    • Monty's avatar
      MDEV-14669 Assertion `file->trn == trn' failed in ha_maria::start_stmt · c2352c45
      Monty authored
      Can't repeat issue so I just added the test case
      c2352c45
    • Alexander Barkov's avatar
      Token precedence cleanup in *.yy · 48d70388
      Alexander Barkov authored
      We'll be fixing soon shift-reduce conflicts introduced in the new
      10.3 syntax (see MDEV-15818 for details) by defining precedence for
      a number of tokens (e.g. TIMESTAMP, TRANSACTION_SYM, TEXT_STRING)
      and adding "%prec" directives.
      
      Before doing this, it's better to have the existing precedences set properly,
      for easier readability and maintainability.
      
      Details:
      - Changing precedence of NOT to its proper position (between AND and IS).
        It was wrong. It worked fine only because the relevant grammar reside
        in different separate rules (expr and predicate).
      
      - Moving NOT2_SYM and BINARY to the same line with NEG and ~
        It worked fine because operators !, BINARY, ~ do not conflict
        to each other.
      
      - Fixing associativity of NOT_SYM, NOT2_SYM, BINARY, COLLATE_SYM
        from "right" to "left". They are not dyadic (operate on a single expression
        only). So "%left" or "%right" is needed only to set precedence,
        while associativity does not matter.
        Note, it would be better to use "%precedence" for these tokens
        instead of "%left" though, but we use an old version of Bison on windows,
        which may not support %precedence yet.
      
      This patch does not change behavior. The generated sql_yacc.cc and
      sql_yacc_ora.cc are exactly the same before and after this change.
      48d70388
    • Marko Mäkelä's avatar
      MDEV-13779 InnoDB fails to shut down purge workers, causing hang · a4e78007
      Marko Mäkelä authored
      srv_purge_coordinator_thread(): Wait for all purge worker threads
      to actually exit. An analysis of a core dump of a hung 10.3 server
      revealed that one srv_worker_thread did not exit, even though the
      purge coordinator had exited. This caused kill_server_thread and
      mysqld_main to wait indefinitely. The main InnoDB shutdown was
      never called, because unireg_end() was never called.
      a4e78007
    • Alexander Barkov's avatar
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-13626 Merge InnoDB test cases from MySQL 5.7 · ebc24950
      Thirunarayanan Balathandayuthapani authored
      Imported the following test case from mysql to MariaDB
      
      1) innodb.alter_kill
      2) innodb.alter_foreign_crash
      3) innodb.alter_rename_files
      4) innodb.analyze_table
      5) Appended the case in innodb-online-alter-gis
      ebc24950
    • Shaohua Wang's avatar
      BUG#22385442 - INNODB: DIFFICULT TO FIND FREE BLOCKS IN THE BUFFER POOL · a54b581d
      Shaohua Wang authored
      Problem:
      We keep pinning pages in dict_stats_analyze_index_below_cur(),
      but doesn't release these pages. When we have a relative small
      buffer pool size, and big innodb_stats_persistent_sample_pages,
      there will be no free pages for use.
      
      Solution:
      Use a separate mtr in dict_stats_analyze_index_below_cur(),
      and commit mtr before return.
      Reviewed-by: default avatarJimmy Yang <jimmy.yang@oracle.com>
      RB: 11362
      a54b581d
    • Thirunarayanan Balathandayuthapani's avatar
    • Marko Mäkelä's avatar
      Bug#21628087 innodb_log_checkpoint_now not fully compatible with WL#7142 · 0ba299da
      Marko Mäkelä authored
      In debug builds of MySQL, there is an configuration variable
      that allows an InnoDB log checkpoint to be initiated:
      
      SET GLOBAL innodb_log_checkpoint_now=ON;
      
      Setting this variable while a table-rebuilding ALTER TABLE is executing
      may result in an infinite loop.
      
      checkpoint_now_set(): Account for log_sys->append_on_checkpoint->size().
      Note that this function contains race conditions, because it is accessing
      fields of log_sys without holding log_sys->mutex. We think that this is
      acceptable, because this variable only exists for debugging purposes, in
      debug builds of MySQL.
      
      RB: 9947
      Reviewed-by: default avatarSunny Bains <sunny.bains@oracle.com>
      0ba299da
    • Thirunarayanan Balathandayuthapani's avatar
      Move the test case from innodb.alter_page_size · be465cfb
      Thirunarayanan Balathandayuthapani authored
      to innodb.innodb-online-alter-gis
      be465cfb
    • Annamalai Gurusami's avatar
      Bug #19077964 ASSERT PAGE_SIZE.EQUALS_TO SPACE_PAGE_SIZE BTR_COPY_BLOB_PREFIX · 21e02b2c
      Annamalai Gurusami authored
      Problem:
      
      The function row_build_index_entry_low() takes a dtuple_t object ('row') and
      dict_index_t object ('index') as input and returns a new dtuple_t object
      ('entry') as output.  The dtuple_t object 'row' that is given as input might
      have been constructed from a different dict_index_t object (!= index).  So
      when accessing the externally stored data of the given 'row' we need to make
      use of the correct index object.
      
      Solution:
      
      Store the page size information in the associated row_ext_t object.
      
      rb#6086 approved by Vasil and Jimmy.
      21e02b2c
    • Thirunarayanan Balathandayuthapani's avatar
    • Annamalai Gurusami's avatar
      Bug #20476395 DICT_LOAD_FOREIGNS() FAILED IN COMMIT_INPLACE_ALTER_TABLE · a1f392a9
      Annamalai Gurusami authored
      Problem:
      
      Suppose there are two tables in the database related through a foreign key
      constraint - the parent table and the child table.  Suppose there is an ALTER
      TABLE on the child table which gets interrupted in such a way that the child
      table is not available any more.
      
      After crash recovery, an ALTER TABLE on the parent table identifies that its
      foreign keys cannot be loaded.  This results in an error and a debug assert.
      
      Solution:
      
      Remove the debug assert and change error to a warning.
      
      rb#8658 approved by Marko.
      a1f392a9