1. 25 Apr, 2018 3 commits
  2. 24 Apr, 2018 15 commits
  3. 23 Apr, 2018 16 commits
    • Alexander Barkov's avatar
    • Marko Mäkelä's avatar
      MDEV-15723 Crash in INFORMATION_SCHEMA.INNODB_SYS_TABLES when accessing corrupted record · c7bb3372
      Marko Mäkelä authored
      dict_load_table_low(): When flagging an error, assign *table = NULL.
      Failure to do so could cause a crash if an error was flagged when
      accessing INFORMATION_SCHEMA.INNODB_SYS_TABLES.
      c7bb3372
    • Alexander Barkov's avatar
      "AS OF" clean in Type_handler · 8fce4065
      Alexander Barkov authored
      This patch does the following:
      
      1. Makes Field_vers_trx_id::type_handler() return
        &type_handler_vers_trx_id rather than &type_handler_longlong.
        Fixes Item_func::convert_const_compared_to_int_field() to
        test field_item->type_handler() against &type_handler_vers_trx_id,
        instead of testing field_item->vers_trx_id().
      
      2. Removes VERS_TRX_ID related code from
        Type_handler_hybrid_field_type::aggregate_for_comparison(),
        because "BIGINT UNSIGNED GENERATED ALWAYS AS ROW {START|END}"
        columns behave just like a BIGINT in a regular comparison,
        i.e. when not inside AS OF.
      
      3. Removes
         - Type_handler_hybrid_field_type::m_vers_trx_id;
         - Type_handler_hybrid_field_type::m_flags;
        because a "BIGINT UNSIGNED GENERATED ALWAYS AS ROW {START|END}"
        behaves like a regular BIGINT column when in UNION.
      
      4. Removes Field::vers_trx_id(), Item::vers_trx_id(), Item::field_flags()
        They are not needed anymore. See N1.
      8fce4065
    • Jan Lindström's avatar
      Merge pull request #713 from codership/MDEV-15948 · 82d4f081
      Jan Lindström authored
      MDEV-15948 Fix error "Lost connection to MySQL server..." in test gal…
      82d4f081
    • Oleksandr Byelkin's avatar
      MDEV-13232: Assertion `(&(&share->intern_lock)->m_mutex)->count > 0 &&... · 14f84d20
      Oleksandr Byelkin authored
      MDEV-13232: Assertion `(&(&share->intern_lock)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&share->intern_lock)->m_mutex)->thread)' failed in _ma_state_info_write
      
      Limit length of result of "negative" operation to something reasonable
      14f84d20
    • Marko Mäkelä's avatar
      MDEV-15983 Reduce fil_system.mutex contention further · de942c9f
      Marko Mäkelä authored
      fil_space_t::n_pending_ops, n_pending_ios: Use a combination of
      fil_system.mutex and atomic memory access for protection.
      
      fil_space_t::release(): Replaces fil_space_release().
      Does not acquire fil_system.mutex.
      
      fil_space_t::release_for_io(): Replaces fil_space_release_for_io().
      Does not acquire fil_system.mutex.
      de942c9f
    • Marko Mäkelä's avatar
      MDEV-12266 follow-up fix to Mariabackup · 6c64101b
      Marko Mäkelä authored
      xtrabackup_apply_delta(): Refer to fil_system.sys_space directly.
      6c64101b
    • Marko Mäkelä's avatar
      Remove the "register" keyword · fcaf6194
      Marko Mäkelä authored
      fcaf6194
    • Marko Mäkelä's avatar
      Fix -Wimplicit-fallthrough · 88b1905e
      Marko Mäkelä authored
      88b1905e
    • Marko Mäkelä's avatar
      MDEV-15937 Assertion failure 'key->flags & 1' on ALTER TABLE · 01b2e773
      Marko Mäkelä authored
      While the test case crashes a MariaDB 10.2 debug build only,
      let us apply the fix to the earliest applicable MariaDB series (10.0)
      to avoid any data corruption on a table-rebuilding ALTER TABLE
      using ALGORITHM=INPLACE.
      
      innobase_create_key_defs(): Use altered_table->s->primary_key
      when a new primary key is being created.
      01b2e773
    • Daniele Sciascia's avatar
      MDEV-15948 Followup commit · 63e5307a
      Daniele Sciascia authored
      * Increased timeout counter in galera_wait_ready.inc
      
      * Replaced useless include/wait_until_ready.inc after start_mysqld.inc
        in galera_st_*.inc with wait_condition on cluster size.
      63e5307a
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · c6ba758d
      Marko Mäkelä authored
      c6ba758d
    • Marko Mäkelä's avatar
      Fix test results after merge from 10.1 · 619dc2b2
      Marko Mäkelä authored
      619dc2b2
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-15374 Server hangs and aborts with long semaphore wait or assertion `len... · 211842dd
      Thirunarayanan Balathandayuthapani authored
      MDEV-15374 Server hangs and aborts with long semaphore wait or assertion `len < ((ulint) srv_page_size)' fails in trx_undo_rec_copy upon ROLLBACK on temporary table
      
      Problem:
      =======
      InnoDB cleans all temporary undo logs during commit. During rollback
      of secondary index entry, InnoDB tries to build the previous version
      of clustered index. It leads to access of freed undo page during
      previous transaction commit and it leads to undo log corruption.
      
      Solution:
      =========
      During rollback, temporary undo logs should not try to build
      the previous version of the record.
      211842dd
    • Alexander Barkov's avatar
      MDEV-15957 Unexpected "Data too long" when doing CREATE..SELECT with stored func · 6426b52e
      Alexander Barkov authored
      Problems:
      
      1. Unlike Item_field::fix_fields(),
        Item_sum_sp::fix_length_and_dec() and Item_func_sp::fix_length_and_dec()
        did not run the code which resided in adjust_max_effective_column_length(),
        therefore they did not extend max_length for the integer return data types
        from the user-specified length to the maximum length according to
        the data type capacity.
      
      2. The code in adjust_max_effective_column_length() was not correct
         for TEXT data, because Field_blob::max_display_length()
         multiplies to mbmaxlen. So TEXT variants were unintentionally
         promoted to the next longer data type for multi-byte character
         sets: TINYTEXT->TEXT, TEXT->MEDIUMTEXT, MEDIUMTEXT->LONGTEXT.
      
      3. Item_sum_sp::create_table_field_from_handler()
         Item_func_sp::create_table_field_from_handler()
         erroneously called tmp_table_field_from_field_type(),
         which converted VARCHAR(>512) to TEXT variants.
         So "CREATE..SELECT spfunc()" erroneously converted
         VARCHAR to TEXT. This was wrong, because stored
         functions have explicitly declared data types,
         which should be preserved.
      
      Solution:
      
      - Removing Type_std_attributes(const Field *)
        and using instead Type_std_attributes::set() in combination
        with field->type_str_attributes() all around the code, e.g.:
           Type_std_attributes::set(field->type_std_attributes())
      
        These two ways of copying attributes from a Field
        to an Item duplicated each other, and were slightly
        different in how to mix max_length and mbmaxlen.
      
      - Removing adjust_max_effective_column_length() and
        fixing Field::type_std_attributes() to do all necessary
        type-specific calculations , so no further adjustments
        is needed.
        Field::type_std_attributes() is now called from all affected methods:
         Item_field::fix_fields()
         Item_sum_sp::fix_length_and_dec()
         Item_func_sp::fix_length_and_dec()
        This fixes the problem N1.
      
      - Making Field::type_std_attributes() virtual, to make
        sure that type-specific adjustments a properly done
        by individual Field_xxx classes. Implementing
        Field_blob::type_std_attributes() in the way that
        no TEXT promotion is done.
        This fixes the problem N2.
      
      - Fixing Item_sum_sp::create_table_field_from_handler()
        Item_func_sp::create_table_field_from_handler() to
        call create_table_field_from_handler() instead of
        tmp_table_field_from_field_type() to avoid
        VARCHAR->TEXT conversion on "CREATE..SELECT spfunc()".
      
      - Recording mysql-test/suite/compat/oracle/r/sp-param.result
        as "CREATE..SELECT spfunc()" now correctly
        preserve the data type as specified in the RETURNS clause.
      
      - Adding new tests
      6426b52e
    • Jan Lindström's avatar
      Merge pull request #711 from codership/MDEV-15929 · 31a19683
      Jan Lindström authored
      MDEV-15929 Fix lock wait timeout on `SELECT @@GLOBAL.WSREP_ON`
      31a19683
  4. 22 Apr, 2018 3 commits
  5. 21 Apr, 2018 3 commits