1. 22 Dec, 2011 5 commits
  2. 21 Dec, 2011 3 commits
  3. 16 Dec, 2011 5 commits
  4. 15 Dec, 2011 2 commits
    • Chaithra Gopalareddy's avatar
      Bug#13344643:Format function in view looses locale information · 7615cb08
      Chaithra Gopalareddy authored
      Problem description:
      When a view is created using function FORMAT and if FORMAT function uses locale
      option,definition of view saved into server doesn't contain that locale information,
      Ex:
      create  table test2 (bb decimal (10,2));
      insert into test2 values (10.32),(10009.2),(12345678.21);
      create view test3 as select format(bb,1,'sk_SK') as cc from test2;
      select * from test3;
      +--------------+
      | cc           |
      +--------------+
      | 10.3         |
      | 10,009.2     |
      | 12,345,678.2 |
      +--------------+
      3 rows in set (0.02 sec)
      
      show create view test3
                      View: test3
               Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`
      SQL SECURITY DEFINER VIEW `test3` AS select format(`test2`.`bb`,1) AS `cc`
      from `test2`
      character_set_client: latin1
      collation_connection: latin1_swedish_ci
      1 row in set (0.02 sec)
      
      Problem Analysis:
      The function Item_func_format::print() which prints the query string to create
      the view does not print the third argument (i.e the locale information). Hence
       view is created without locale information. 
      
      Problem Solution:
      If argument count is more than 2 we now print the third argument onto the query string.
      
      Files changed:
      sql/item_strfunc.cc
      Function call changes: Item_func_format::print()
      mysql-test/t/select.test
      Added test case to test the bug
      mysql-test/r/select.result
      Result of the test case appended here
      
      
      7615cb08
    • Tor Didriksen's avatar
      Bug#13463417 63487: ANNOYING TRACE MESSAGE IN CMAKE CODE · b507df61
      Tor Didriksen authored
      Remove it.
      b507df61
  5. 14 Dec, 2011 3 commits
    • Andrei Elkin's avatar
      · be7fc143
      Andrei Elkin authored
      bug#13437900
      post-push changes to please solaris compiler.
      be7fc143
    • Andrei Elkin's avatar
      Bug#13437900 - VALGRIND REPORTS A LEAK FOR REPL_IGNORE_SERVER_IDS · ed3e19ac
      Andrei Elkin authored
      There was memory leak when running some tests on PB2.
      The reason of the failure is an early return from change_master()
      that was supposed to deallocate a dyn-array.
      
      Actually the same bug58915 was fixed in trunk with relocating the dyn-array
      destruction into THD::cleanup_after_query() which can't be bypassed.
      The current patch backports magne.mahre@oracle.com-20110203101306-q8auashb3d7icxho
      and adds two optimizations: were done: the static buffer for the dyn-array to base on,
      and the array initialization is called precisely when it's necessary rather than
      per each CHANGE-MASTER as before.
      
      
      mysql-test/suite/rpl/t/rpl_empty_master_host.test:
        the test is binlog-format insensitive so it will be run with MIXED mode only.
      mysql-test/suite/rpl/t/rpl_server_id_ignore.test:
        the test is binlog-format insensitive so it will be run with MIXED mode only.
      sql/sql_class.cc:
        relocating the dyn-array
        destruction into THD::cleanup_after_query().
      sql/sql_lex.cc:
        LEX.mi zero initialization is done in LEX().
      sql/sql_lex.h:
        Optimization for repl_ignore_server_ids to base on a static buffer
        which size is chosen to fit to most common use cases.
      sql/sql_repl.cc:
        dyn-array destruction is relocated to THD::cleanup_after_query().
      sql/sql_yacc.yy:
        Refining logics of Lex->mi.repl_ignore_server_ids initialization.
        The array is initialized once a corresponding option in CHANGE MASTER token sequence
        is found.
      ed3e19ac
    • Georgi Kodinov's avatar
      Addendum to the fix for bug #11754011: fixed a testcase result to include · 2b05ef11
      Georgi Kodinov authored
      the new --slow-start-timeout option's help output
      2b05ef11
  6. 13 Dec, 2011 3 commits
    • Georgi Kodinov's avatar
      Bug#11754011: 45546: START WINDOWS SERVICE, THEN EXECUTE WHAT IS NEEDED. · a64a25ba
      Georgi Kodinov authored
      Added a global read-only option slow-start-timeout to control the
      Windows service control manager's service start timeout, that was
      currently hard-coded to be 15 seconds.
      The default of the new option is 15 seconds.
      The timeout can also be set to 0 (to mean no timeout applicable).
      a64a25ba
    • Annamalai Gurusami's avatar
      76383243
    • Annamalai Gurusami's avatar
      Bug #13117023: Innodb increments handler_read_key when it should not · ad84fb5c
      Annamalai Gurusami authored
      The counter handler_read_key (SSV::ha_read_key_count) is incremented 
      incorrectly.
      
      The mysql server maintains a per thread system_status_var (SSV)
      object.  This object contains among other things the counter
      SSV::ha_read_key_count. The purpose of this counter is to measure the
      number of requests to read a row based on a key (or the number of
      index lookups).
      
      This counter was wrongly incremented in the
      ha_innobase::innobase_get_index(). The fix removes
      this increment statement (for both innodb and innodb_plugin).
      
      The various callers of the innobase_get_index() was checked to
      determine if anybody must increment this counter (if they first call
      innobase_get_index() and then perform an index lookup).  It was found
      that no caller of innobase_get_index() needs to worry about the
      SSV::ha_read_key_count counter.
      ad84fb5c
  7. 12 Dec, 2011 2 commits
  8. 08 Dec, 2011 2 commits
    • unknown's avatar
      Bug #13116225 LIVE DOWNGRADE CRASHES WITH INNODB_PAGE_SIZE=4K · 7532976d
      unknown authored
      This bug ensures that a live downgrade from an InnoDB 5.6 with WL5756 and
      a database created with innodb-page-size=8k or 4k will make a version 5.5
      installation politely refuse to start. Instead of crashing or giving some
      indication about a corrupted database, it will indicate the page size
      difference. 
      
      This patch takes only that part of the Wl5756 patch that is needed to
      protect against opening a tablespace that is stamped with a different
      page size.
      
      It also contains the change in dict_index_find_on_id_low() just in case
      a database with another page size is created by recompiling a pre-WL5756
      InnoDB.
      7532976d
    • Jimmy Yang's avatar
      Fix Bug #13083023 - 60229: BROKEN COMPATIBILITY: ERROR WHILE CREATE TABLE · 8bb893f5
      Jimmy Yang authored
      WITH FOREIGN KEY CONSTRAI
      
      rb://844 approved by marko
      8bb893f5
  9. 07 Dec, 2011 1 commit
    • Inaam Rana's avatar
      Bug#11759044 - 51325: DROPPING AN EMPTY INNODB TABLE TAKES A LONG TIME · 358a31df
      Inaam Rana authored
      WITH LARGE BUFFER POOL
      
      (Note: this a backport of revno:3472 from mysql-trunk)
      
      rb://845
      approved by: Marko
      
        When dropping a table (with an .ibd file i.e.: with
        innodb_file_per_table set) we scan entire LRU to invalidate pages from
        that table. This can be painful in case of large buffer pools as we hold
        the buf_pool->mutex for the scan. Note that gravity of the problem does
        not depend on the size of the table. Even with an empty table but a
        large and filled up buffer pool we'll end up scanning a very long LRU
        list.
        
        The fix is to scan flush_list and just remove the blocks belonging to
        the table from the flush_list, marking them as non-dirty. The blocks
        are left in the LRU list for eventual eviction due to aging. The
        flush_list is typically much smaller than the LRU list but for cases
        where it is very long we have the solution of releasing the
        buf_pool->mutex after scanning 1K pages.
        
        buf_page_[set|unset]_sticky(): Use new IO-state BUF_IO_PIN to ensure
        that a block stays in the flush_list and LRU list when we release
        buf_pool->mutex. Previously we have been abusing BUF_IO_READ to achieve
        this.
      358a31df
  10. 05 Dec, 2011 1 commit
    • Tor Didriksen's avatar
      Bug#13013970 MORE CRASHES IN FIELD_BLOB::GET_KEY_IMAGE · 0cd92281
      Tor Didriksen authored
      The predicate is re-written from
      ((`test`.`g1`.`a` = geometryfromtext('')) or ...
      to
      ((`test`.`g1`.`a` = <cache>(geometryfromtext(''))) or ...
      
      The range optimizer calls save_in_field_no_warnings, in order to fetch keys.
      save_in_field_no_warnings returns 0 because of the cache wrapper,
      and get_mm_leaf() proceeded to call Field_blob::get_key_image() 
      which accesses un-initialized data.
      
      
      
      
      mysql-test/r/gis.result:
        New test case.
      mysql-test/t/gis.test:
        New test case.
      sql/item.cc:
        If we have cached a null_value, then verify that the Field can accept it.
      0cd92281
  11. 02 Dec, 2011 2 commits
  12. 01 Dec, 2011 4 commits
  13. 30 Nov, 2011 5 commits
  14. 29 Nov, 2011 2 commits
    • Andrei Elkin's avatar
    • Andrei Elkin's avatar
      Bug#13437900 - VALGRIND REPORTS A LEAK FOR REPL_IGNORE_SERVER_IDS · 8d154f7a
      Andrei Elkin authored
      There was memory leak when running some tests on PB2.
      The reason of the failure is an early return from change_master()
      that was supposed to deallocate a dyn-array.
      
      Fixed with relocating the dyn-array's destructor at ~LEX() that is
      the end of the session, per Gleb's patch idea.
      Two optimizations were done: the static buffer for the dyn-array to base on,
      and the array initialization is called precisely when it's necessary rather than
      per each CHANGE-MASTER as before.
       
      
      mysql-test/suite/rpl/t/rpl_empty_master_host.test:
        the test is binlog-format insensitive so it will be run with MIXED mode only.
      sql/sql_lex.cc:
        the new flag is initialized.
      sql/sql_lex.h:
        A new bool flag new member to LEX.mi is added to stay UP since after
        LEX.mi.repl_ignore_server_ids dynarray initialization was called
        for the first time on the session. So it is set once and its life time 
        is session.
        
        The array is destroyed at the end of the session.
      sql/sql_repl.cc:
        dyn-array destruction is relocated to ~LEX.
      sql/sql_yacc.yy:
        Refining logics of Lex->mi.repl_ignore_server_ids initialization.
        The array is initialized once a corresponding option in CHANGE MASTER token sequence
        is found.
        The fact of initialization is memorized into the new flag.
      8d154f7a