1. 04 Nov, 2019 3 commits
    • Marko Mäkelä's avatar
      Fix -Wmaybe-uninitialized · 8f40c029
      Marko Mäkelä authored
      Follow-up to commit 8965ae27:
      always initialize found_group.
      8f40c029
    • Marko Mäkelä's avatar
      MDEV-19586: Clean up recv_t a little · 541b00a3
      Marko Mäkelä authored
      recv_t, recv_t::data_t: Define constructors that copy the log records
      
      Ideally, we should remove recv_sys.buf, RECV_DATA_BLOCK_SIZE,
      and recv_sys_justify_left_parsing_buf(), and let the
      recv_sys.pages point directly to a buffer of parsed redo log
      records.
      
      The RECV_PARSING_BUF_SIZE (size of recv_sys.buf) is only 2MiB,
      while the minimum innodb_log_buffer_size (size of log_sys.buf) is 16MiB,
      and log_sys.buf is unused during redo log apply!
      541b00a3
    • Marko Mäkelä's avatar
      MDEV-19586: Add const qualifiers · 64a02e4f
      Marko Mäkelä authored
      Except for fil_name_process(), which invokes os_normalize_path(),
      the redo log record parser will not modify the redo log records.
      Add const qualifiers accordingly.
      64a02e4f
  2. 03 Nov, 2019 2 commits
  3. 01 Nov, 2019 3 commits
    • Marko Mäkelä's avatar
      MDEV-19586: Avoid std::map::emplace() · e5fed3b9
      Marko Mäkelä authored
      GCC 4.7 only knows about std::map::insert(), not emplace().
      
      Also, reformat the function in the common style.
      e5fed3b9
    • Marko Mäkelä's avatar
      Refactor recv_sys_t::recs_t into page_recv_t · b7fc2c89
      Marko Mäkelä authored
      page_recv_t: Replaces recv_sys_t::recs_t.
      page_recv_t::state is not private, even though some accessors exist.
      
      page_recv_t::log: A singly-linked list of log_rec_t* with STL decoration
      and the custom operations trim() and append(). The list members are private.
      
      recv_t::data_t: Replaces recv_data_t.
      
      recv_t::data: Remove the pointer indirection for the first log chunk,
      and copy the first chunk directly after the record. Adjust the
      definition of RECV_DATA_BLOCK_SIZE accordingly.
      b7fc2c89
    • Marko Mäkelä's avatar
      MDEV-19586: Rename recv_sys.empty() to recv_sys.clear() · 2aa1f77e
      Marko Mäkelä authored
      In the collections of Standard Template Library,
      empty() is a predicate and clear() empties a collection.
      Let us rename recv_sys.empty() to recv_sys.clear() to avoid confusion.
      2aa1f77e
  4. 31 Oct, 2019 2 commits
  5. 30 Oct, 2019 4 commits
  6. 29 Oct, 2019 5 commits
  7. 28 Oct, 2019 8 commits
  8. 25 Oct, 2019 1 commit
  9. 24 Oct, 2019 2 commits
  10. 23 Oct, 2019 3 commits
    • Marko Mäkelä's avatar
      MDEV-20487 Set innodb_adaptive_hash_index=OFF by default · 88cdfc5c
      Marko Mäkelä authored
      Based on the performance testing that was conducted in MDEV-17492,
      the InnoDB adaptive hash index could only help performance in specific,
      almost-read-only workloads. It could slow down all kinds of workloads
      (especially DROP TABLE, TRUNCATE TABLE, ALTER TABLE, or DROP INDEX
      operations), and it can become corrupted, causing crashes (such as
      MDEV-18815, MDEV-20203) and possibly data corruption. Furthermore,
      the adaptive hash index consumes space from the InnoDB buffer pool,
      which could hurt performance when the working set would almost fit
      in the buffer pool.
      
      Given all this, it is best to disable the adaptive hash index by default.
      88cdfc5c
    • Jan Lindström's avatar
    • Jan Lindström's avatar
      Stabilize tests. · 1036886b
      Jan Lindström authored
      Changes to be committed:
      	modified:   mysql-test/suite/galera_sr/disabled.def
      	modified:   mysql-test/suite/galera_sr/r/GCF-561.result
      	modified:   mysql-test/suite/galera_sr/r/galera_sr_ddl_master.result
      	modified:   mysql-test/suite/galera_sr/r/galera_sr_kill_query.result
      	modified:   mysql-test/suite/galera_sr/r/galera_sr_shutdown_slave.result
      	new file:   mysql-test/suite/galera_sr/suite.pm
      	modified:   mysql-test/suite/galera_sr/t/GCF-561.test
      	modified:   mysql-test/suite/galera_sr/t/galera_sr_ddl_master.test
      	modified:   mysql-test/suite/galera_sr/t/galera_sr_kill_query.test
      	modified:   mysql-test/suite/galera_sr/t/galera_sr_shutdown_slave.test
      1036886b
  11. 20 Oct, 2019 4 commits
  12. 18 Oct, 2019 2 commits
    • Alexander Barkov's avatar
      MDEV-20844 RBR from binary(16) to inet6 fails with error 171: The event was... · ec171a94
      Alexander Barkov authored
      MDEV-20844 RBR from binary(16) to inet6 fails with error 171: The event was corrupt, leading to illegal data being read
      
      This patch changes the way how INET6 is packed to the RBR binary log:
      - from fixed length 16 bytes
      - to BINARY(16) compatible variable length style
        with trailing 0x00 byte compression.
      
      This is to make INET6 fully compatible with BINARY(16) in RBR binary logs,
      so RBR replication works in this scenarios:
      
      - Old master BINARY(16) -> New slave INET6
      - New master INET6      -> Old slave BINARY(16)
      
      A new class StringPack was added to share the code between
      Field_string and Field_inet6.
      ec171a94
    • Alexander Barkov's avatar
      MDEV-20856 Bad values in metadata views for partitions on VARBINARY · 9a833dc6
      Alexander Barkov authored
      The old code to print partition values was too complicated:
      - it created new Items for character set conversion purposes.
      - it mixed string conversion and partition error reporting
        in the same code blocks.
      
      Simplifying the code as follows:
      
      - Adding helper methods String::can_be_safely_convert_to() and
        String::append_introducer_and_hex().
      
      - Adding DBUG_EXECUTE_IF("generate_partition_syntax_for_frm",  push_warning...)
        into generate_partition_syntax_for_frm(), to test the PARTITON
        clause written to FRM. Adding test partition_utf8-debug.test for this.
      
      - Removing functions get_cs_converted_part_value_from_string() and
        get_cs_converted_string_value. Changing get_partition_column_description()
        to use Type_handler::partition_field_append_value() instead.
        This makes SHOW CREATE TABLE and SELECT FROM I_S.PARTITIONS
        use the same code path.
      
      - Changing Type_handler::partition_field_append_value() not to
        call convert_charset_partition_constant(), to avoid creating a new Item
        for string conversion pursposes.
        Rewritting the code to use only String methods.
      
      - Removing error reporting code (ER_PARTITION_FUNCTION_IS_NOT_ALLOWED)
        from Type_handler::partition_field_append_value().
        The error is correctly detected and reported on the caller level.
        So error reporting was redundant here.
      
      Also:
      
      - Moving methods Type_handler::partition_field_*() from sql_partition.cc
        to sql_type.cc. This fixes compilation problem with -DPLUGIN_PARTITION=NO,
        earlier introduced by the patch for MDEV-20831.
      9a833dc6
  13. 17 Oct, 2019 1 commit