1. 30 Apr, 2010 1 commit
    • Alexey Kopytov's avatar
      Bug #48419: another explain crash.. · 96366e11
      Alexey Kopytov authored
      WHERE predicates containing references to empty tables in a
      subquery were handled incorrectly by the optimizer when
      executing EXPLAIN. As a result, the optimizer could try to
      evaluate such predicates rather than just stop with
      "Impossible WHERE noticed after reading const tables" as 
      it would do in a non-subquery case. This led to valgrind 
      errors and crashes.
      
      Fixed the code checking the above condition so that subqueries
      are not excluded and hence are handled in the same way as top
      level SELECTs.
      96366e11
  2. 29 Mar, 2010 1 commit
  3. 30 Mar, 2010 2 commits
  4. 26 Mar, 2010 1 commit
  5. 24 Mar, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#48483 crash in get_best_combination() · 658cf9e4
      Sergey Glukhov authored
      The crash happens because greedy_serach
      can not determine best plan due to
      wrong inner table dependences. These
      dependences affects join table sorting
      which performs before greedy_search starting.
      In our case table which has real 'no dependences'
      should be put on top of the list but it does not
      happen as inner tables have no dependences as well.
      The fix is to exclude RAND_TABLE_BIT mask from
      condition which checks if table dependences
      should be updated.
      658cf9e4
  6. 23 Mar, 2010 1 commit
  7. 26 Mar, 2010 1 commit
  8. 29 Mar, 2010 1 commit
  9. 28 Mar, 2010 2 commits
    • 's avatar
      Bug #50407 mysqlbinlog --database=X produces bad output for SAVEPOINTs · 2049d1af
      authored
      When mysqlbinlog was given the --database=X flag, it always printed
      'ROLLBACK TO', but the corresponding 'SAVEPOINT' statement was not
      printed. The replicated filter(replicated-do/ignore-db) and binlog
      filter (binlog-do/ignore-db) has the same problem. They are solved
      in this patch together.
      
      After this patch, We always check whether the query is 'SAVEPOINT'
      statement or not. Because this is a literal check, 'SAVEPOINT' and
      'ROLLBACK TO' statements are also binlogged in uppercase with no
      any comments.
      
      The binlog before this patch can be handled correctly except one case
      that any comments are in front of the keywords. for example:
       /* bla bla */ SAVEPOINT a;
       /* bla bla */ ROLLBACK TO a;
      2049d1af
    • 's avatar
      Bug #50095 Multi statement including CREATE EVENT causes rotten binlog entry · 8d22c5f3
      authored
      The log event of 'CREATE EVENT' was being binlogged with garbage
      at the end of the query if 'CREATE EVENT' is followed by another SQL statement
      and they were executed as one command.
      for example:
          DELIMITER |;
          CREATE EVENT e1 ON EVERY DAY DO SELECT 1; SELECT 'a';
          DELIMITER ;|
      When binlogging 'CREATE EVENT', we always create a new statement with definer
      and write it into the log event. The new statement is made from cpp_buf(preprocessed buffer).
      which is not a c string(end with '\0'), but it is copied as a c string.
      
      In this patch, cpp_buf is copied with its length.
      8d22c5f3
  10. 26 Mar, 2010 4 commits
  11. 25 Mar, 2010 11 commits
  12. 24 Mar, 2010 7 commits
    • Sergey Vojtovich's avatar
      a1590d2e
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 75aba21f
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6822 | vasil | 2010-03-15 10:17:31 +0200 (Mon, 15 Mar 2010) | 12 lines
      branches/5.1:
      
      Typecast to silence a compiler warning:
      
      row/row0sel.c: 4548
              C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
      row/row0sel.c: 4553
              C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
      
      Reported by:	Jonas Oreland <Jonas.Oreland@Sun.COM>
      Discussed with:	Sunny Bains <sunny.bains@oracle.com>
      75aba21f
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · a10d3338
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
      branches/5.1:
      
      Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
      enforced the presence of those recently and the test started failing like:
      
        main.innodb_bug38231                     [ fail ]
                Test ended at 2010-03-10 08:48:32
        
        CURRENT_TEST: main.innodb_bug38231
        mysqltest: At line 49: Cannot run query on connection between send and reap
      
      r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
      branches/5.1:
      
      In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
      with a more robust condition which waits for the TRUNCATE and LOCK commands
      to appear in information_schema.processlist. This could also break if there
      are other sessions executing the same SQL commands, but there are none during
      the execution of the mysql test.
      a10d3338
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot, fixes BUG#47621. · 0c8a6f6c
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
      branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
      will become out of sync when renaming columns". MySQL does not
      provide new column name information to storage engine to
      update the system table. To avoid column name mismatch, we shall
      just request a table copy for now.
      
      rb://246 approved by Marko.
      0c8a6f6c
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 46b421ed
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
      branches/5.1:
      
      Whitespace fixup.
      46b421ed
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot, fixes BUG#51653 · d1ec522f
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
      branches/5.1: fix bug#51653: outdated reference to set-variable
      Non functional change.
      d1ec522f
    • Alexey Botchkov's avatar
      merging. · 9e76d759
      Alexey Botchkov authored
      9e76d759
  13. 25 Mar, 2010 1 commit
  14. 24 Mar, 2010 3 commits
  15. 23 Mar, 2010 2 commits
    • Georgi Kodinov's avatar
      Bug #51850: crash/memory overlap when using load data infile and set · d9175c21
      Georgi Kodinov authored
        col equal to itself!
      
      There's no need to copy the value of a field into itself.
      While generally harmless (except for some performance penalties)
      it may be dangerous when the copy code doesn't expect this.
      Fixed by checking if the source field is the same as the destination
      field before copying the data.
      Note that we must preserve the order of assignment of the null 
      flags (hence the null_value assignment addition).
      d9175c21
    • Andrei Elkin's avatar
      Bug #52304 valgrind does not like to print un-inited string in Protocol_text::store() · 307fb75e
      Andrei Elkin authored
      The reason of the failure was apparent flaw in that a pointer to an uninitialized buffer was
      passed to DBUG_PRINT of Protocol_text::store().
      
      Fixed with splitting the print-out into two branches: 
      one with length zero of the problematic arg and the rest.
      307fb75e
  16. 22 Mar, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#51868 - crash with myisam_use_mmap and partitioned · 356d0754
      Sergey Vojtovich authored
                  myisam tables
      
      Queries following TRUNCATE of partitioned MyISAM table
      may crash server if myisam_use_mmap is true.
      
      Internally this is MyISAM bug, but limited to partitioned
      tables, because MyISAM doesn't use ::delete_all_rows()
      method for TRUNCATE, but goes via table recreate instead.
      
      MyISAM didn't properly fall back to non-mmaped I/O after
      mmap() failure. Was not repeatable on linux before, likely
      because (quote from man mmap):
        SUSv3  specifies  that  mmap() should fail if length is 0.
        However, in kernels before 2.6.12, mmap() succeeded in
        this case: no mapping was created and the call returned
        addr. Since kernel 2.6.12, mmap() fails with the error
        EINVAL for this case.
      356d0754