1. 21 Jul, 2015 1 commit
    • Jan Lindström's avatar
      MDEV-8474: InnoDB sets per-connection data unsafely · 7a967021
      Jan Lindström authored
      Analysis: At check_trx_exists function InnoDB allocates
      a new trx if no trx is found from thd but this newly
      allocated trx is not registered to thd. This is unsafe,
      because nothing prevents InnoDB plugin from being uninstalled
      while there's active transaction. This can cause crashes, hang
      and any other odd behavior. It may also corrupt stack, as
      functions pointers are not available after dlclose.
      
      Fix: The fix is to use thd_set_ha_data() when
      manipulating per-connection handler data. It does appropriate
      plugin locking.
      7a967021
  2. 16 Jul, 2015 3 commits
    • Monty's avatar
      a63d8738
    • Monty's avatar
      MDEV-8432 Slave cannot replicate signed integer-type values with high bit set to 1 · 00d3b20f
      Monty authored
      The fix is that if the slave has a different integer size than
      the master, then they will assume the master has the same signed/unsigned modifier
      as the slave.
      
      This means that one can safely change a coon the slave an int to a bigint
      or an unsigned int to an unsigned int.  Changing an unsigned int to an
      signed bigint will cause replication failures when the high bit of the
      unsigned int is set.
      
      We can't give an error if the signess is different on the master and slave
      as the binary log doesn't contain the signess of the column on the master.
      00d3b20f
    • Monty's avatar
      MDEV-8432 Slave cannot replicate signed integer-type values with high bit set to 1 · 44de090a
      Monty authored
      The fix is that if the slave has a different integer size than
      the master, then they will assume the master has the same signed/unsigned modifier
      as the slave.
      
      This means that one can safely change a coon the slave an int to a bigint
      or an unsigned int to an unsigned int.  Changing an unsigned int to an
      signed bigint will cause replication failures when the high bit of the
      unsigned int is set.
      
      We can't give an error if the signess is different on the master and slave
      as the binary log doesn't contain the signess of the column on the master.
      44de090a
  3. 26 Jun, 2015 1 commit
  4. 25 Jun, 2015 3 commits
    • Monty's avatar
      Simple cleanups · 67c56ab1
      Monty authored
      - Removing use of calls to current_thd
      - More DBUG_PRINT
      - Code style changes
      - Made some local functions static
      Ensure that calls to print_keyuse are locked with mutex to get all lines in same debug packet
      67c56ab1
    • Monty's avatar
      Problem was that for cases like: · 8c815751
      Monty authored
      SELECT ... WHERE XX IN (SELECT YY)
      this was transformed to something like:
      SELECT ... WHERE IF_EXISTS(SELECT ... HAVING XX=YY)
      
      The bug was that for normal execution XX was fixed in the original outer SELECT context while in PS it was fixed in the sub query context and this confused the optimizer.
      
      Fixed by ensuring that XX is always fixed in the outer context.
      8c815751
    • Monty's avatar
      Fixed crashing bug when using ONLY_FULL_GROUP_BY in a stored procedure/trigger... · 2e941fe9
      Monty authored
      Fixed crashing bug when using ONLY_FULL_GROUP_BY in a stored procedure/trigger that is repeatedly executed.
      This is MDEV-7601, including it's sub tasks MDEV-7594, MDEV-7555, MDEV-7590, MDEV-7581, MDEV-7589
      
      The problem was that select_lex->non_agg_fields was not properly reset for re-execution and this caused an overwrite of a random memory position.
      The fix was move non_agg_fields from select_lext to JOIN, which is properly reset.
      2e941fe9
  5. 11 Jun, 2015 3 commits
  6. 09 Jun, 2015 12 commits
  7. 08 Jun, 2015 8 commits
  8. 07 Jun, 2015 1 commit
  9. 06 Jun, 2015 2 commits
  10. 05 Jun, 2015 6 commits