------------------------------------------------------------
revno: 3960 [merge]
tags: clone-5.1.69-build
committer: Manish Kumar<manish.4.kumar@oracle.com>
branch nick: mysql-5.1
timestamp: Thu 2013-02-28 09:52:55 +0530
message:
  BUG#12400221 - 60926: BINARY LOG EVENTS LARGER THAN MAX_ALLOWED_PACKET
        
  Post push patch putting the rpl_max_allowed_packet_stress test in 
  mysql-5.1 inside a new i_rpl_largedata test suite just to avoid any 
  confusion.
    ------------------------------------------------------------
    revno: 3812.1.1
    committer: Manish Kumar<manish.4.kumar@oracle.com>
    branch nick: mysql-5.1
    timestamp: Fri 2012-09-14 19:19:21 +0530
    message:
      BUG#12400221 - 60926: BINARY LOG EVENTS LARGER THAN MAX_ALLOWED_PACKET
      
      Post push patch putting the rpl_max_allowed_packet_stress test in 
      mysql-5.1 inside a new i_rpl_largedata test suite just to avoid any 
      confusion.
       
------------------------------------------------------------
revno: 3959
committer: Gleb Shchepa <gleb.shchepa@oracle.com>
branch nick: 5.1-16311231
timestamp: Wed 2013-02-27 23:21:34 +0400
message:
  Bug #16311231: MISSING DATA ON SUBQUERY WITH WHERE + XOR
  IN IN-CLAUSE USING MYISAM OR MEMORY ENGINE
  
  Backport from 5.6. Original message:
  
  The coincidences caused a data loss:
  * The query has IN subqueries nested twice,
  * the WHERE clause of the inner subquery refers to the
    outer field, and the whole WHERE clause returns FALSE,
  * the inner subquery has a LEFT JOIN that joins a single
    row with a row of NULLs; one of that NULL columns
    represents the select list of the subquery.
  
  Normally, that inner subquery should return empty record set.
  However, in our case:
  * the Item_is_not_null_test item goes constant, since
    its underlying field is NULL (because of LEFT JOIN ... ON 
    FALSE of const table row with a row of nulls);
  * we evaluate Item_is_not_null_test::val_int() as a part
    of fake HAVING expression of the transformed subquery;
  * as far as the underlying field is NULL, we optimize
    out the whole fake HAVING expression as FALSE as well
    as a whole subquery with a zero result:
    Impossible HAVING noticed after reading const tables";
  * thus, the optimizer ignores the presence of the WHERE
    clause (the WHERE expression is FALSE in our case, so
    the subquery should return empty set);
  * however, during the evaluation of the 
    Item_is_not_null_test::val_int() in the optimizer,
    it marked its "owner" with the "was_null" flag -- that
    forced the subquery to return UNKNOWN instead of empty
    set.
  That caused a wrong result.
  
  
  The problem is a regression of the small cleanup in
  the fix for the bug11827369 (the Item_is_not_null_test part)
  that conflicts with optimizations in the fix for the bug11752543.
  Before that regression the Item_is_not_null_test items
  never were constants.
  
  The fix is the rollback of Item_is_not_null_test parts
  of the bug11827369 fix.
------------------------------------------------------------
revno: 3958
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.1
timestamp: Wed 2013-02-27 10:00:50 +0200
message:
  Bug#16400920 INNODB TRIES TO PASS EMPTY BUFFER TO ZLIB, GETS Z_BUF_ERROR
  
  page_zip_compress_node_ptrs(): Do not attempt to invoke deflate() with
  c_stream->avail_in, because it will result in Z_BUF_ERROR (and
  page_zip_compress() failure and unnecessary further splits of the node
  pointer page). A node pointer record can have empty payload, provided
  that all key fields are empty.
  
  Approved by Jimmy Yang
------------------------------------------------------------
revno: 3957
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.1
timestamp: Tue 2013-02-26 21:23:06 +0530
message:
  Bug#16372927: STACK OVERFLOW WITH LONG DATABASE NAME IN
                GRANT STATEMENT
  
  Description: A missing length check causes problem while
               copying source to destination when
               lower_case_table_names is set to a value
               other than 0. This patch fixes the issue
               by ensuring that requried bound check is
               performed.
------------------------------------------------------------
revno: 3956
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.1
timestamp: Mon 2013-02-25 15:26:00 +0100
message:
  Updated/added copyright headers.
------------------------------------------------------------
revno: 3955
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.1
timestamp: Sat 2013-02-23 10:38:28 +0100
message:
  Eventum ticket#45161: Adding copyright statement to all *.test and *.inc 
  files under internal/mysql-test directory.
------------------------------------------------------------
revno: 3954
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-22 14:56:17 +0530
message:
  Bug #14211565 CRASH WHEN ATTEMPTING TO SET SYSTEM VARIABLE TO RESULT OF VALUES()
  
  Problem:
  
  When the VALUES() function is inappropriately used in the SET stmt the server
  exits.  
  
  set port = values(v);
  
  This happens because the values(v) will be parsed as an Item_insert_value by
  the parser.  Both Item_field and Item_insert_value return the type as
  FIELD_ITEM.  But for Item_insert_value the field_name member is NULL.  In
  set_var constructor, when the type of the item is FIELD_ITEM we try to access
  the non-existent field_name. 
  
  The class hierarchy is as follows:
  Item -> Item_ident -> Item_field -> Item_insert_value
  
  The Item_ident::field_name is NULL for Item_insert_value.  
  
  Solution:
  
  In the parsing stage, in the set_var constructor if the item type is
  FIELD_ITEM and if the field_name is non-existent, then it is probably
  the Item_insert_value.  So leave it as it is for later evaluation.
  
  rb://2004 approved by Roy and Norvald.
------------------------------------------------------------
revno: 3953
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug11746817_mysql-5.1
timestamp: Tue 2013-02-19 14:31:11 +0530
message:
  Bug#11746817:MYSQL_INSTALL_DB CREATES WILDCARD GRANTS WHEN
  HOST HAS '_' IN THE HOSTNAME
  
  Problem:
  =======
  '_' and '%' are treated as a wildcards by the ACL code and
  this is documented in the manual. The problem with
  mysql_install_db is that it does not take this into account
  when creating the initial GRANT tables:
  
  --- cut ---
  REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y',
  'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
  'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',
  0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost';
  --- cut ---
  
  If @current_hostname contains any wildcard characters, then 
  a wildcard entry will be defined for the 'root' user, 
  which is a flaw.
  
  Analysis:
  ========
  As per the bug description when we have a hostname with a
  wildcard character in it, it allows clients from several other
  hosts with similar name pattern to connect to the server as root.
  For example, if the hostname is like 'host_.com' then the same
  name is logged in mysql.user table. This allows 'root' users
  from other hosts like 'host1.com', 'host2.com' ... to connect
  to the server as root user.
  
  While creating the intial GRANT tables we do not have a check
  for wildcard characters in hostname.
  
  Fix:
  ===
  As part of fix escape character "\" is added before wildcard
  character to make it a plain character, so that the one and
  only host with the exact name will be able to connect to the
  server.
------------------------------------------------------------
revno: 3952
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.1
timestamp: Tue 2013-02-19 12:17:31 +0530
message:
  Bug#16235681: TURN OFF DEFAULT COMPRESSION WHILE USING
                OPENSSL
  
  Description: Specify preference to disable compression
               while using OpenSSL library. OpenSSL uses
               zlib compression by default which may
               lead to some problems.
------------------------------------------------------------
revno: 3951
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.1
timestamp: Tue 2013-02-19 10:55:55 +0530
message:
  Instead of using rm command, use perl code.
------------------------------------------------------------
revno: 3950
committer: Pedro Gomes  <pedro.gomes@oracle.com>
branch nick: mysql-5.1
timestamp: Mon 2013-02-18 17:02:26 +0000
message:
  BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
  
  Post-push fix, broken build:
  sql/rpl_master.cc:1049:70: error: converting ?false? to pointer type ?bool*? [-Werror=conversion-null]
------------------------------------------------------------
revno: 3949
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.1_B15965353
timestamp: Sun 2013-02-17 01:42:28 +0530
message:
  BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2,
                PLATFORM= MACOSX10.6 X86_64 MAX
  
  Problem: The test was failing on pb2's mac machine because
           it was not cleaned up properly. The test checks if
           the command 'start slave until' throws a proper
           error when issued with a wrong number/type of
           parameters. After this,the replication stream was
           stopped using the include file 'rpl_end.inc'.
           The errors thrown earlier left the slave in an
           inconsistent state to be closed by the include
           file which was caught by the mac machine.
  
  Fix: Started slave by invoking start_slave.inc to have a
       working slave before calling rpl_reset.inc
  
  Problem: The test file was not in a good shape. It tested
           start slave until relay log file/pos combination 
           wrongly. A couple of commands were executed at 
           master and replicated at slave. Next, the 
           coordinates in terms of relay log file and pos 
           were noted down followed by reset slave and start
           slave until saved relay log file/pos. Reset slave
           deletes  all relay log files and makes the slave 
           forget its replication position. So, using the 
           saved coordiantes after reset slave is wrong.
  
  Fix: Split the test in two parts:
       a) Test for start slave until master log file/pos and
          checking for correct errors in the failure 
          scenarios.
       b) Test for start slave until relay log file/pos.
  
  Problem: The variables auto_increment_increment and 
           auto_increment_offset were set in the the include
           file rpl_init.inc. This was only configured for 
           some connections that are rarely used by test 
           cases, so likely that it will cause confusion. 
           If replication tests want to setup these variables
           they should do so explicitly.
  
  Fix:
       a) Removed code to set the variables
          auto_increment_increment and auto_increment_offset
          in the include file.
       b) Updated tests files using the same.
------------------------------------------------------------
revno: 3948
committer: Pedro Gomes  <pedro.gomes@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-15 21:57:35 +0000
message:
  BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
  
  In method mysql_binlog_send, right after detecting a EOF in the
  read event loop, and before deciding if we should change to a new
  binlog file there is a execution window where new events can be
  written to the binlog and a rotation can happen. When reaching
  the test, the function will then change to a new binlog file
  ignoring all the events written in this window. This will result
  in events not being replicated.
  
  Only when the binlog is detected as deactivated in the event loop
  of the dump thread, can we really know that no more events
  remain. For this reason, this test is now made under the log lock
  in the beginning of the event loop when reading the events.
------------------------------------------------------------
revno: 3947
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-15 12:35:54 +0530
message:
  Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE
                TLS AND DTLS RECORD PROTOCOLS
  
  Description: In yassl, decryption phase in TLS protocol
               depends on type of padding. This patch
               removes this dependancy and makes error
               generation/decryption process independent
               of padding type.
------------------------------------------------------------
revno: 3946
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.1_b12359942
timestamp: Fri 2013-02-15 00:38:42 +0530
message:
  BUG#12359942- REPLICATION TEST FROM ENGINE SUITE RPL_ROW_UNTIL TIMES OUT
        
  post push fix: 
  rpl_stm_until.test was disabled because of
  this bug. Enabled and fixed it.
  
  Removed a part of the test that was obsolete.
  It tested replication from 4.0 master to 5.0
  slave.
------------------------------------------------------------
revno: 3945
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.1
timestamp: Thu 2013-02-14 16:33:31 +0530
message:
  For the error code ER_TOO_LONG_IDENT, the identifier is expected in the my_error call.  So removing this line from here.  
------------------------------------------------------------
revno: 3944
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.1
timestamp: Tue 2013-02-12 14:52:48 +0530
message:
  Bug #11753153 INNODB GENERATES SYMBOLS THAT ARE TOO LONG, INVALID DDL
  FROM SHOW CREATE
  
  Problem: The length of the internally generated foreign key name 
  is not checked. 
  
  Solution: The length of the internally generated foreign key name is
  checked.  If it is greater than the allowed limit, an error message
  is reported. Also, the constraint name is printed in the same manner
  as the table name, using the system charset information.
  
  rb://1969 approved by Marko.
------------------------------------------------------------
revno: 3943
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-08 16:34:32 +0530
message:
  BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1 
  
  Reverting back the previous changes as they are causing
  issues in PB2.
------------------------------------------------------------
revno: 3942
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-08 15:41:18 +0530
message:
  BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
  
  Problem: Sys_vars suite is disabled in mysql-5.1 branch.
  Fix: To enable sys_vars suite in mysql-5.1, add it in
  mysql-test-run.pl file and also sys_vars suite should be
  added to Makefile.am inorder to get that test directory
------------------------------------------------------------
revno: 3941
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-08 09:23:12 +0200
message:
  Add missing linkage specifiers, so that ha_innodb_plugin.so
  will not export internal symbols.
------------------------------------------------------------
revno: 3940
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.1
timestamp: Fri 2013-02-08 09:22:46 +0200
message:
  Bug#16292043 RACE CONDITION IN SRV_EXPORT_INNODB_STATUS() WHEN ACCESSING PURGE_SYS->VIEW
  
  srv_export_innodb_status(): Read the purge_sys fields while holding
  purge_sys->latch.
  
  Approved by Sunny Bains
------------------------------------------------------------
revno: 3939
committer: Igor Solodovnikov <igor.solodovnikov@oracle.com>
branch nick: mysql-5.1
timestamp: Thu 2013-02-07 19:46:08 +0200
message:
  bug#14163155 COM_CHANGE_USER DOESN'T WORK WITH CHARACTER-SET-SERVER=UCS2 IN
               5.1 SERVER
  
  Problem was caused by the COM_CHANGE_USER parsing code. That code ignored
  character set number passed in COM_CHANGE_USER packet. Instead
  character_set_client values was used. User name was not converted at all.
  
  Fixed by using passed character set number to convert both db and user names.
  If COM_CHANGE_USER does not contain character set number then
  character_set_client is used to convert both names.
------------------------------------------------------------
revno: 3938
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.1
timestamp: Thu 2013-02-07 17:05:07 +0100
message:
  Bug#16192219 CRASH IN TEST_IF_SKIP_SORT_ORDER ON SELECT DISTINCT WITH ORDER BY
  
  This is a backport of the fix for:
  
  Bug#13633549 HANDLE_FATAL_SIGNAL IN TEST_IF_SKIP_SORT_ORDER/CREATE_SORT_INDEX
  Don't invoke the range optimizer for a NULL select.
------------------------------------------------------------
revno: 3937
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.1
timestamp: Thu 2013-02-07 17:23:37 +0530
message:
  Bug#16247322- MTR NOT RUNNING SYS_VARS TEST
  SUITE FOR 5.1
  
  SYS_VARS suite is not enabled in MTR by default
  run. Enabling it with this check-in.
------------------------------------------------------------
revno: 3936
committer: sayantan.dutta@oracle.com
branch nick: mysql-5.1
timestamp: Wed 2013-02-06 13:02:14 +0530
message:
  BUG #13625278 - PB2 SHOULD PROVIDE MORE USEFUL INFORMATION FOR TIMEOUTS 
------------------------------------------------------------
revno: 3935 [merge]
author: hery.ramilison@oracle.com
committer: Hery Ramilison <hery.ramilison@oracle.com>
branch nick: mysql-5.1
timestamp: Tue 2013-02-05 20:47:45 +0100
message:
  Merge from mysql-5.1.68-release
    ------------------------------------------------------------
    revno: 3908.1.1
    tags: mysql-5.1.68
    committer: Hery Ramilison <hery.ramilison@oracle.com>
    branch nick: mysql-5.1.68-release
    timestamp: Tue 2013-01-08 13:29:11 +0100
    message:
      Applying patch for Bug#67177 Bug#15967374 from Kent
