1. 20 Aug, 2010 1 commit
    • Alfranio Correia's avatar
      BUG#53452 Inconsistent behavior of binlog_direct_non_transactional_updates with · c6d4915f
      Alfranio Correia authored
      temp table
                  
      This patch introduces two key changes in the replication's behavior.
                  
      Firstly, it reverts part of BUG#51894 which puts any update to temporary tables
      into the trx-cache. Now, updates to temporary tables are handled according to
      the type of their engines as a regular table.
                  
      Secondly, an unsafe mixed statement, (i.e. a statement that access transactional
      table as well non-transactional or temporary table, and writes to any of them),
      are written into the trx-cache in order to minimize errors in the execution when
      the statement logging format is in use.
                  
      Such changes has a direct impact on which statements are classified as unsafe
      statements and thus part of BUG#53259 is reverted.
      c6d4915f
  2. 19 Aug, 2010 3 commits
    • Alexander Barkov's avatar
      Bug#54916 GROUP_CONCAT + IFNULL truncates output · 6e9298bd
      Alexander Barkov authored
      Problem: a few functions did not calculate their max_length correctly.
      This is an after-fix for WL#2649 Number-to-string conversions".
      
      Fix: changing the buggy functions to calculate max_length
      using fix_char_length() introduced in WL#2649,
      instead of setting max_length directly
      
        mysql-test/include/ctype_numconv.inc
           Adding new tests
      
        mysql-test/r/ctype_binary.result
           Adding new tests
      
        mysql-test/r/ctype_cp1251.result
           Adding new tests
      
        mysql-test/r/ctype_latin1.result
           Adding new tests
      
        mysql-test/r/ctype_ucs.result
           Adding new tests
      
        mysql-test/r/ctype_utf8.result
           Adding new tests
      
        mysql-test/t/ctype_utf8.test
          Including ctype_numconv
      
        sql/item.h
          - Introducing new method fix_char_length_ulonglong(),
          for the cases when length is potentially greater
          than UINT_MAX32. This method removes a few
          instances of duplicate code, e.g. in item_strfunc.cc.
          - Setting collation in Item_copy properly. This change
          fixes wrong metadata on client side in some cases, when
          "binary" instead of the real character set was reported.
      
        sql/item_cmpfunc.cc
          - Using fix_char_length() and max_char_length() methods,
          instead of direct access to max_length, to calculate
          item length properly.
          - Moving count_only_length() in COALESCE after
          agg_arg_charsets_for_string_result(). The old
          order was incorrect and led to wrong length
          calucation in case of multi-byte character sets.
          
        sql/item_func.cc
          Fixing that count_only_length() didn't work
          properly for multi-byte character sets.
          Using fix_char_length() and max_char_length()
          instead of direct access to max_length.
      
        sql/item_strfunc.cc
          - Using fix_char_length(), fix_char_length_ulonglong(),
          max_char_length() instead of direct access to max_length.
          - Removing wierd condition: "if (collation.collation->mbmaxlen > 0)",
          which is never FALSE.
      6e9298bd
    • Bernt M. Johnsen's avatar
    • Alexander Barkov's avatar
      Backporting Bug#32391 Character sets: crash with --character-set-server · 89e6eb0b
      Alexander Barkov authored
      from mysql-trunk-bugfixing (5.6.1-m5) from mysql-5.5-bugfixing (5.5.6-m3).
      89e6eb0b
  3. 18 Aug, 2010 6 commits
  4. 17 Aug, 2010 9 commits
    • Joerg Bruehe's avatar
      Merge the fix for bug#55015. · 49652079
      Joerg Bruehe authored
      49652079
    • Marko Mäkelä's avatar
      A non-functional change: · 332a41ce
      Marko Mäkelä authored
      dict_load_index_low(): Rename the parameter "cached" to "allocated"
      and clarify the comments.
      332a41ce
    • Vasil Dimov's avatar
      Make main.endspace more deterministic · 793dee2d
      Vasil Dimov authored
      Followup to vasil.dimov@oracle.com-20100817063430-inglmzgdtj95t29d
      which didn't fully fix the test because the order of the returned
      rows was different in embedded and non-embedded version. So the only
      way to fix this is to add an ORDER BY clause.
      793dee2d
    • Jimmy Yang's avatar
      Fix bug #53496 Use Lock_time in slow query log output for InnoDB row · da24a208
      Jimmy Yang authored
      lock wait time. Including the InnoDB lock time in the exiting "Lock_time"
      output.
      da24a208
    • Vasil Dimov's avatar
      Adjust endspace.result · 15fd2b4f
      Vasil Dimov authored
      This is a followup to vasil.dimov@oracle.com-20100816142329-yimenbuktd416z1a
      which improved the sampling algorithm. The endspace test is non-deterministic
      because it does not include ORDER BY clause in its queries.
      15fd2b4f
    • Vasil Dimov's avatar
      Adjust type_bit_innodb.result · 260ff5be
      Vasil Dimov authored
      This is a followup to vasil.dimov@oracle.com-20100816142329-yimenbuktd416z1a
      which improved the sampling algorithm.
      260ff5be
    • Vasil Dimov's avatar
      Adjust rowid_order_innodb.result · 0c7b3904
      Vasil Dimov authored
      This is a followup to vasil.dimov@oracle.com-20100816142329-yimenbuktd416z1a
      which improved the sampling algorithm.
      0c7b3904
    • Vasil Dimov's avatar
      Adjust innodb_gis.result · 4a3ba734
      Vasil Dimov authored
        
      This is a followup to vasil.dimov@oracle.com-20100816142329-yimenbuktd416z1a
      which improved the sampling algorithm.
      4a3ba734
    • Vasil Dimov's avatar
      Adjust innodb_mysql.result · f8b58430
      Vasil Dimov authored
      This is a followup to vasil.dimov@oracle.com-20100816142329-yimenbuktd416z1a
      which improved the sampling algorithm. I have manually checked that the new
      values are actually the correct ones, for example:
      -rows	16
      +rows	32
      the number of rows returned by the query is 32.
      f8b58430
  5. 16 Aug, 2010 8 commits
    • Mattias Jonsson's avatar
      merge · 1be8280b
      Mattias Jonsson authored
      1be8280b
    • Mattias Jonsson's avatar
    • Vasil Dimov's avatar
      Fix Bug#53761 RANGE estimation for matched rows may be 200 times different · c292616a
      Vasil Dimov authored
      Improve the range estimation algorithm.
      
      Previously:
      For a given level the algo knows the number of pages in the requested range and the n
      
      With this change:
      Same idea, but peek a few (10) of the intermediate pages to get a better estimate of 
      
      In the bug report one of the examples has a btree with a snippet of the leaf level li
      page1(899 records), page2(1 record), page3(1 record), page4(1 record)
      so when trying to estimate, the previous algo, assumed there are average (899+1)/2=45
      Fix Bug#53761 RANGE estimation for matched rows may be 200 times different
      
      Improve the range estimation algorithm.
      
      Previously:
      For a given level the algo knows the number of pages in the requested range
      and the number of records on the leftmost and the rightmost page. Then it
      assumes all pages in between contain the average between the two border pages
      and multiplies this average number by the number of intermediate pages.
      
      With this change:
      Same idea, but peek a few (10) of the intermediate pages to get a better
      estimate of the average number of records per page. If there are less than 10
      intermediate pages then all of them will be scanned and the result will be
      precise, not an estimation.
      
      In the bug report one of the examples has a btree with a snippet of the leaf
      level like this:
      page1(899 records), page2(1 record), page3(1 record), page4(1 record)
      so when trying to estimate, the previous algo, assumed there are average
      (899+1)/2=450 records per page which went terribly wrong. With this change
      page2 and page3 will be read and the exact number of records will be returned.
      
      Approved by:	Sunny (rb://401)
      c292616a
    • Mattias Jonsson's avatar
      merge · 7641dd7b
      Mattias Jonsson authored
      7641dd7b
    • Mattias Jonsson's avatar
      Bug#49907: ALTER TABLE ... TRUNCATE PARTITION does not wait for · 25ae81f1
      Mattias Jonsson authored
                 locks on the table
      
      Fixing the partitioning specifics after TRUNCATE TABLE in
      bug-42643 was fixed.
      
      Reorganize of code to decrease the size of the giant switch
      in mysql_execute_command, and to prepare for future parser
      reengineering. Moved code into Sql_statement objects.
      
      Updated patch according to davi's review comments.
      25ae81f1
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5. · 9c41a990
      Alexander Nozdrin authored
      9c41a990
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5. · 62b441b4
      Alexander Nozdrin authored
      62b441b4
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-stage. · 2585da55
      Alexander Nozdrin authored
      2585da55
  6. 14 Aug, 2010 1 commit
    • Evgeny Potemkin's avatar
      Bug#49746: Const expression caching led to NDB not using engine condition · 48738f73
      Evgeny Potemkin authored
      pushdown.
            
      NDB supports only a limited set of item nodes for use in engine condition
      pushdown. Because of this adding cache for const expression effectively
      disabled this optimization.
            
      The ndb_serialize_cond function is extended to support Item_cache and treat
      it as a constant values.
      A helper function called ndb_serialize_const is added. It is used to create
      Ndb_cond value node from given const item.
      48738f73
  7. 13 Aug, 2010 5 commits
    • Inaam Rana's avatar
      Change default for innodb_strict_mode to FALSE. · 231a97fd
      Inaam Rana authored
      Note that this was originally pushed by Calvin but the was later
      reverted by mistake.
      
      bug#54702
      231a97fd
    • Inaam Rana's avatar
    • Alexander Nozdrin's avatar
      Disable test cases due to Bug 55966. · 496e1fb4
      Alexander Nozdrin authored
      496e1fb4
    • Mattias Jonsson's avatar
      merge · 87f655d5
      Mattias Jonsson authored
      87f655d5
    • Mattias Jonsson's avatar
      Bug#53676: Unexpected errors and possible table · 9a7a64ac
      Mattias Jonsson authored
                 corruption on ADD PARTITION and LOCK TABLE
      Bug#53770: Server crash at handler.cc:2076 on
                 LOAD DATA after timed out COALESCE PARTITION
      
      5.5 fix for:
      Bug#51042: REORGANIZE PARTITION can leave table in an
                 inconsistent state in case of crash
      Needs to be back-ported to 5.1
      
      5.5 fix for:
      Bug#50418: DROP PARTITION does not interact with
                 transactions
      
      Main problem was non-persistent operations done
      before meta-data lock was taken (53770+53676).
      And 53676 needed to keep the table/partitions opened and locked
      while copying the data to the new partitions.
      
      Also added thorough tests to spot some additional bugs
      in the ddl_log code, which could result in bad state
      between the .frm and partitions.
      
      Collapsed patch, includes all fixes required from the reviewers.
      9a7a64ac
  8. 12 Aug, 2010 5 commits
  9. 11 Aug, 2010 2 commits
    • Joerg Bruehe's avatar
      Fix Bug#55015 · 20f9faea
      Joerg Bruehe authored
        "MySQL server is not restarted properly after RPM upgrade"
      
      The problem is that with the general spec file cleanup and
      alignment we also did a name change, dropping the "-community"
      part from the package file name.
      
      As a result of this, RPM (some versions of it) will report
      file conflicts, because it considers this name difference
      to imply different packages.
      To avoid this, the spec file explicitly "obsoletes" the old
      packages (with "-community" in the file name).
      
      Now, RPM will first install these packages and the remove the
      old ones, and part of that removal is running the "%preun"
      section which stops the server and uninstalls the service
      (removes the symlinks to "/etc/init.d/mysql" from the run
      level directories).
      This stop/uninstall will affect the new server!
      
      The fix is to define a "%triggerpostun" in this spec file
      which will watch for removal of the "-community" server.
      If this is done (as part of this install/upgrade), the
      trigger code will re-install the service and restart the
      server process.
      
      In addition, the "sleep" calls after starting the server
      have been cleaned up: Rather than doing 2* "sleep 2",
      it is now 1 "sleep 5".
      20f9faea
    • Guilhem Bichot's avatar
      fix for Bug #55672 "mysql_upgrade dies with internal error": · 124fc93d
      Guilhem Bichot authored
      it couldn't parse the --ssl option.
      124fc93d