1. 21 Aug, 2019 2 commits
  2. 19 Aug, 2019 4 commits
    • Julius Goryavsky's avatar
      MDEV-20185: Windows: Use of uninitialized value $bpath in string eq · c93f96e2
      Julius Goryavsky authored
      The execution of mtr in the Windows environment fails due to
      the fact that the new code from MDEV-18565 does not take into
      account the need to add the ".exe" extension to the names of
      executable files when searching for pre-requisites that are
      needed to run SST scripts (especially when using mariabackup)
      and when searching paths to some other Galera utilities.
      This patch fixes this flaw.
      
      Also adding paths to the PATH environment variable is now
      done with the correct delimiter character.
      c93f96e2
    • Julius Goryavsky's avatar
      MDEV-18863: Galera SST scripts can't read [mysqldN] option groups · 137d8ed3
      Julius Goryavsky authored
      Some users and some scripts (for example, mysqld_multi.sh) use special
      option groups with names like [mysqld1], [mysqld2], ..., [mysqldN].
      
      But SST scripts can't currently fully support these option groups.
      The only option group-related value it gets from the server is
      --defaults-group-suffix, if that option was set for mysqld when
      the server was started.
      
      However, the SST scripts does not get told by the server to read
      these option groups, so this means that the SST script will fail
      to read options like innodb-data-home-dir when it is in a option
      group like [mysqld1]...[mysqldN].
      
      Moreover, SST scripts ignore many parameters that can be passed
      to them explicitly and cannot transfer them further, for example,
      to the input of mariabackup utility. Ideally, we want to transfer
      all the parameters of the original mysqld call to utilities such
      as mariabackup, however the SST script does not receive these
      parameters from the server and therefore cannot transfer them to
      mariabackup.
      
      To correct these shortcomings, we need to transfer to the scripts
      all of the parameters of the original mysqld call, and in the SST
      scripts themselves provide for the transfer all of these parameters
      to utilities such as mariabackup. To prevent these parameters from
      mixing with the script's own parameters, they should be transferred
      to SST script after the special option "--mysqld-args", followed by
      the string argument with the original parameters, as it received by
      the mysqld call at the time of launch (further all these parameters
      will be passed to mariabackup, for example).
      
      In addition, the SST scripts themselves must be refined so that
      they can read the parameters from the user-selected group, not just
      from the global mysqld configuration group. And also so that they
      can receive the parameters (which important for their work) as
      command-line arguments.
      137d8ed3
    • Monty's avatar
      MDEV-19254 Server crashes in maria_status with partitioned table · 93892521
      Monty authored
      Bug was that storage_engine::info() was called with not opened table in
      ha_partition::info(). Fixed by ensuring that we are using an opened table.
      93892521
    • Aleksey Midenkov's avatar
      MDEV-19740 Debug build of 10.3.15 FTBFS · 6dd3f240
      Aleksey Midenkov authored
      * Replace LINT_INIT for non-struct types with ctor initializers;
      * Check BUILD_DEPS list is not empty so REMOVE_DUPLICATES won't throw
        error.
      6dd3f240
  3. 18 Aug, 2019 1 commit
  4. 16 Aug, 2019 6 commits
  5. 15 Aug, 2019 8 commits
  6. 14 Aug, 2019 5 commits
    • Sujatha's avatar
      MDEV-20348: DROP TABLE IF EXISTS killed on master but was replicated · 29e560cd
      Sujatha authored
      Problem:
      =======
      DROP TABLE IF EXISTS was killed. The table still exists on
      the master but the DDL was still logged.
      
      Analysis:
      =========
      During the execution of DROP TABLE command "ha_delete_table" call is invoked
      to delete the table. If the query is killed at this point, the kill command
      is not handled within the code. This results in two issues.
      1) The table which is not dropped also gets written into the binary log.
      2) The code continues further upon receiving 'KILL QUERY'.
      
      Fix:
      ===
      Upon receiving the KILL command the query should stop its current execution.
      Tables which were successfully dropped prior to KILL command should be
      included in the binary log.
      29e560cd
    • Aleksey Midenkov's avatar
      Merge 10.2 into 10.3 · c23a5e0e
      Aleksey Midenkov authored
      c23a5e0e
    • Aleksey Midenkov's avatar
      MDEV-20301 InnoDB's MVCC has O(N^2) behaviors · 2347ffd8
      Aleksey Midenkov authored
      If there're multiple row versions in InnoDB, reading one row from PK
      may have O(N) complexity and reading from secondary keys may have
      O(N^2) complexity.
      
      The problem occurs when there are many pending versions of the same
      row, meaning that the primary key is the same, but a secondary key is
      different.  The slowdown occurs when the secondary index is
      traversed. This patch creates a helper class for the function
      row_sel_get_clust_rec_for_mysql() which can remember and re-use
      cached_clust_rec & cached_old_vers so that rec_get_offsets() does not
      need to be called over and over for the clustered record.
      
      Corrections by Kevin Lewis <kevin.lewis@oracle.com>
      
      MDEV-20341 Unstable innodb.innodb_bug14704286
      
      Removed test that tested the ability of interrupting long query which
      is not long anymore.
      2347ffd8
    • Aleksey Midenkov's avatar
      MDEV-20336 Assertion bitmap_is_set(read_partitions) upon SELECT FOR UPDATE from versioned table · a20f6f98
      Aleksey Midenkov authored
      Exclude SELECT and INSERT SELECT from vers_set_hist_part(). We cannot
      likewise exclude REPLACE SELECT because it may REPLACE into itself
      (and REPLACE generates history).
      
      INSERT also does not generate history, but we have history
      modification setting which might be interfered.
      a20f6f98
    • Aleksey Midenkov's avatar
      39db1165
  7. 13 Aug, 2019 13 commits
  8. 12 Aug, 2019 1 commit
    • Marko Mäkelä's avatar
      MDEV-17614: After-merge fix · 609ea2f3
      Marko Mäkelä authored
      MDEV-17614 flags INSERT…ON DUPLICATE KEY UPDATE unsafe for statement-based
      replication when there are multiple unique indexes. This correctly fixes
      something whose attempted fix in MySQL 5.7
      in mysql/mysql-server@c93b0d9a972cb6f98fd445f2b69d924350f9128a
      caused lock conflicts. That change was reverted in MySQL 5.7.26
      in mysql/mysql-server@066b6fdd433aa6673622341f1a2f0a3a20018043
      (with a substantial amount of other changes).
      
      In MDEV-17073 we already disabled the unfortunate MySQL change when
      statement-based replication was not being used. Now, thanks to MDEV-17614,
      we can actually remove the change altogether.
      
      This reverts commit 8a346f31 (MDEV-17073)
      and mysql/mysql-server@c93b0d9a972cb6f98fd445f2b69d924350f9128a while
      keeping the test cases.
      609ea2f3