1. 19 Aug, 2016 1 commit
  2. 17 Aug, 2016 1 commit
    • Sergey Vojtovich's avatar
      MDEV-10424 - Assertion `ticket == __null' failed in MDL_request::set_type · 723488bb
      Sergey Vojtovich authored
      Reexecution of prepared "ANALYZE TABLE merge_table, table" may miss to
      reinitialize "table" for subsequent execution and trigger assertion failure.
      
      This happens because MERGE engine may adjust table->next_global chain, which
      gets cleared by close_thread_tables()/ha_myisammrg::detach_children() later.
      Since reinitilization iterates next_global chain, it won't see tables following
      merge table.
      
      Fixed by appending saved next_global chain after merge children.
      723488bb
  3. 11 Aug, 2016 1 commit
  4. 10 Aug, 2016 1 commit
  5. 09 Aug, 2016 2 commits
  6. 08 Aug, 2016 5 commits
  7. 07 Aug, 2016 1 commit
  8. 04 Aug, 2016 3 commits
  9. 03 Aug, 2016 13 commits
  10. 02 Aug, 2016 1 commit
  11. 30 Jul, 2016 2 commits
  12. 26 Jul, 2016 1 commit
    • Sergei Petrunia's avatar
      MDEV-10228: Delete missing rows with OR conditions · 15ef38d2
      Sergei Petrunia authored
      Fix get_quick_keys(): When building range tree from a condition
      in form
      
        keypart1=const AND (keypart2 < 0 OR keypart2>=0)
      
      the SEL_ARG for keypart2 represents an interval (-inf, +inf).
      However, the logic that sets UNIQUE_RANGE flag fails to recognize
      this, and sets UNIQUE_RANGE flag if (keypart1, keypart2) covered
      a unique key.
      As a result, range access executor assumes the interval can have
      at most one row and only reads the first row from it.
      15ef38d2
  13. 21 Jul, 2016 1 commit
  14. 15 Jul, 2016 1 commit
  15. 12 Jul, 2016 1 commit
  16. 11 Jul, 2016 1 commit
  17. 07 Jul, 2016 1 commit
  18. 06 Jul, 2016 1 commit
    • Sergei Golubchik's avatar
      MDEV-7973 bigint fail with gcc 5.0 · e81455bb
      Sergei Golubchik authored
      -LONGLONG_MIN is the undefined behavior in C.
      longlong2decimal() used to do this:
      
        int longlong2decimal(longlong from, decimal_t *to) {
          if ((to->sign= from < 0))
            return ull2dec(-from, to);
          return ull2dec(from, to);
      
      and later in ull2dec() (DIG_BASE is 1000000000):
      
        static int ull2dec(ulonglong from, decimal_t *to) {
          for (intg1=1; from >= DIG_BASE; intg1++, from/=DIG_BASE) {}
      
      this breaks in gcc-5 at -O3. Here ull2dec is inlined into
      longlong2decimal. And gcc-5 believes that 'from' in the
      inlined ull2dec is always a positive integer (indeed, if it was
      negative, then -from was used instead). So gcc-5 uses
      *signed* comparison with DIG_BASE.
      
      Fix: make a special case for LONGLONG_MIN, don't negate it
      e81455bb
  19. 30 Jun, 2016 1 commit
  20. 24 Jun, 2016 1 commit