1. 02 Jul, 2019 7 commits
  2. 01 Jul, 2019 9 commits
  3. 28 Jun, 2019 2 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-17228 Encrypted temporary tables are not encrypted · 723a4b1d
      Thirunarayanan Balathandayuthapani authored
      - Introduce a new variable called innodb_encrypt_temporary_tables which is
      a boolean variable. It decides whether to encrypt the temporary tablespace.
      - Encrypts the temporary tablespace based on full checksum format.
      - Introduced a new counter to track encrypted and decrypted temporary
      tablespace pages.
      - Warnings issued if temporary table creation has conflict value with
      innodb_encrypt_temporary_tables
      - Added a new test case which reads and writes the pages from/to temporary
      tablespace.
      723a4b1d
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-19781 Add page id matching check in innochecksum tool · e4a0dbfb
      Thirunarayanan Balathandayuthapani authored
      Added the condition in innochecksum tool to check page id mismatch.
      This could catch the write corruption caused by InnoDB.
      
      Added the debug insert inside fil_io() to check whether it writes
      the page to wrong offset.
      e4a0dbfb
  4. 27 Jun, 2019 8 commits
    • Monty's avatar
      f7a4a871
    • Monty's avatar
      MDEV-17551 assert or crashed table when using blobs · 9053047f
      Monty authored
      The bug was that when long item-strings was converted to VARCHAR,
      type_handler::string_type_handler() didn't take into account max
      VARCHAR length.  The resulting Aria temporary table was created with
      a VARCHAR field of length 1 when it should have been 65537. This caused
      MariaDB to send impossible records to ma_write() and Aria reported
      eventually the table as crashed.
      
      Fixed by updating Type_handler::string_type_handler() to not create too long
      VARCHAR fields. To make things extra safe, I also added checks in when
      writing dynamic Aria records to ensure we find the wrong record during write
      instead of during read.
      9053047f
    • Vladislav Vaintroub's avatar
      51c3a5c8
    • Vladislav Vaintroub's avatar
    • Marko Mäkelä's avatar
      MDEV-19886 InnoDB returns misleading ER_NO_SUCH_TABLE_IN_ENGINE · 92feac53
      Marko Mäkelä authored
      A fix in MySQL 5.7.6 was not completely merged to MariaDB:
      Bug#19419026 WHEN A TABLESPACE IS NOT FOUND, DO NOT REPORT "TABLE NOT FOUND"
      92feac53
    • Marko Mäkelä's avatar
      MDEV-19845: Fix the build on some platforms · f5c080c7
      Marko Mäkelä authored
      On some platforms, MY_RELAX_CPU() falls back to an atomic
      memory operation, but my_cpu.h fails to include my_atomic.h.
      f5c080c7
    • Marko Mäkelä's avatar
      MDEV-19845: Fix the build on some x86 targets · 0b7fa5a0
      Marko Mäkelä authored
      The RDTSC instruction, which was introduced in the Intel Pentium,
      has been used in MariaDB for a long time. But, the __rdtsc()
      wrapper is not available by default in some x86 build environments.
      The simplest solution seems to replace the inlined instruction
      with a call to the wrapper function my_timer_cycles(). The overhead
      for the call should not affect the measurement threshold.
      
      On Windows and on AMD64, we will keep using __rdtsc() directly.
      0b7fa5a0
    • Marko Mäkelä's avatar
      MDEV-19845: Adaptive spin loops · 042fc295
      Marko Mäkelä authored
      Starting with the Intel Skylake microarchitecture, the PAUSE
      instruction latency is about 140 clock cycles instead of earlier 10.
      On AMD processors, the latency could be 10 or 50 clock cycles,
      depending on microarchitecture.
      
      Because of this big range of latency, let us scale the loops around
      the PAUSE instruction based on timing results at server startup.
      
      my_cpu_relax_multiplier: New variable: How many times to invoke PAUSE
      in a loop. Only defined for IA-32 and AMD64.
      
      my_cpu_init(): Determine with RDTSC the time to run 16 PAUSE instructions
      in two unrolled loops according, and based on the quicker of the two
      runs, initialize my_cpu_relax_multiplier. This form of calibration was
      suggested by Mikhail Sinyavin from Intel.
      
      LF_BACKOFF(), ut_delay(): Use my_cpu_relax_multiplier when available.
      
      ut_delay(): Define inline in my_cpu.h.
      
      UT_COMPILER_BARRIER(): Remove. This does not seem to have any effect,
      because in our ut_delay() implementation, no computations are being
      performed inside the loop. The purpose of UT_COMPILER_BARRIER() was to
      prohibit the compiler from reordering computations. It was not
      emitting any code.
      042fc295
  5. 26 Jun, 2019 1 commit
  6. 25 Jun, 2019 2 commits
  7. 24 Jun, 2019 3 commits
  8. 23 Jun, 2019 1 commit
  9. 21 Jun, 2019 4 commits
  10. 20 Jun, 2019 3 commits