1. 13 Jul, 2017 1 commit
  2. 12 Jul, 2017 1 commit
    • Jan Lindström's avatar
      MDEV-11828: innodb_page_size=64k must reject ROW_FORMAT=REDUNDANT records longer than 16383 bytes · 9284e8b2
      Jan Lindström authored
      In all InnoDB row formats, the pointers or lengths stored in the record
      header can be at most 14 bits, that is, count up to 16383.
      In ROW_FORMAT=REDUNDANT, this limits the maximum possible record length
      to 16383 bytes. In other ROW_FORMAT, it could merely limit the maximum
      length of variable-length fields.
      
      When MySQL 5.7 introduced innodb_page_size=32k and 64k, the maximum
      record length was limited to 16383 bytes (I hope 16383, not 16384,
      to be able to distinguish from a record whose length is 0 bytes).
      This change is present in MariaDB Server 10.2.
      
      btr_cur_optimistic_update(): Restrict maximum record size to 16K-1
      for REDUNDANT and 64K page size.
      
      dict_index_too_big_for_tree(): The maximum allowed record size
      is half a B-tree page or 16K(-1 for REDUNDANT) for 64K page size.
      
      convert_error_code_to_mysql(): Fix error message to print
      correct limits.
      
      my_error_innodb(): Fix error message to print correct limits.
      
      page_zip_rec_needs_ext() : record size was already restricted to 16K.
      Restrict REDUNDANT to 16K-1.
      
      rem0rec.h: Introduce REDUNDANT_REC_MAX_DATA_SIZE (16K-1)
      and COMPRESSED_REC_MAX_DATA_SIZE (16K).
      9284e8b2
  3. 07 Jul, 2017 1 commit
  4. 06 Jul, 2017 5 commits
    • Sergei Golubchik's avatar
      after-merge fix for a7ed4644 · 6b99859f
      Sergei Golubchik authored
      (10.0+ changes, as specified in the MDEV)
      
      and remove unused variable (compiler warning)
      6b99859f
    • Sergei Golubchik's avatar
      Merge branch '5.5' into 10.0 · 89dc445a
      Sergei Golubchik authored
      89dc445a
    • Sergei Golubchik's avatar
      coverity medium warnings · 4d213135
      Sergei Golubchik authored
      4d213135
    • Sergei Golubchik's avatar
      bugfix: long partition names · f305a7ce
      Sergei Golubchik authored
      f305a7ce
    • Marko Mäkelä's avatar
      MDEV-13247 innodb_log_compressed_pages=OFF breaks crash recovery of ROW_FORMAT=COMPRESSED tables · 2b5c9bc2
      Marko Mäkelä authored
      The option innodb_log_compressed_pages was contributed by
      Facebook to MySQL 5.6. It was disabled in the 5.6.10 GA release
      due to problems that were fixed in 5.6.11, which is when the
      option was enabled.
      
      The option was set to innodb_log_compressed_pages=ON by default
      (disabling the feature), because safety was considered more
      important than speed. The option innodb_log_compressed_pages=OFF
      can *CORRUPT* ROW_FORMAT=COMPRESSED tables on crash recovery
      if the zlib deflate function is behaving differently (producing
      a different amount of compressed data) from how it behaved
      when the redo log records were written (prior to the crash recovery).
      
      In MDEV-6935, the default value was changed to
      innodb_log_compressed_pages=OFF. This is inherently unsafe, because
      there are very many different environments where MariaDB can be
      running, using different zlib versions. While zlib can decompress
      data just fine, there are no guarantees that different versions will
      always compress the same data to the exactly same size. To avoid
      problems related to zlib upgrades or version mismatch, we must
      use a safe default setting.
      
      This will reduce the write performance for users of
      ROW_FORMAT=COMPRESSED tables. If you configure
      innodb_log_compressed_pages=ON, please make sure that you will
      always cleanly shut down InnoDB before upgrading the server
      or zlib.
      2b5c9bc2
  5. 05 Jul, 2017 4 commits
  6. 04 Jul, 2017 2 commits
  7. 03 Jul, 2017 8 commits
  8. 02 Jul, 2017 2 commits
    • Andrei Elkin's avatar
      Fix for MDEV-9670 server_id mysteriously set to 0 · 946a07e8
      Andrei Elkin authored
      Problem was that in a circular replication setup the master remembers
      position to events it has generated itself when reading from a slave.
      If there are no new events in the queue from the slave, a
      Gtid_list_log_event is generated to remember the last skipped event.
      The problem happens if there is a network delay and we generate a
      Gtid_list_log_event in the middle of the transaction, in which case there
      will be an implicit comment and a new transaction with serverid=0 will be
      logged.
      
      The fix was to not generate any Gtid_list_log_events in the middle of a
      transaction.
      946a07e8
    • Monty's avatar
      Fix for MDEV-13191. Assert for !is_set() when doing LOAD DATA · 46d6f74c
      Monty authored
      This could happen when the client connection dies while sending a progress
      report packet.
      Fixed by not raising any errors when sending progress packets.
      46d6f74c
  9. 01 Jul, 2017 1 commit
  10. 30 Jun, 2017 8 commits
  11. 29 Jun, 2017 3 commits
  12. 28 Jun, 2017 1 commit
  13. 27 Jun, 2017 3 commits