Commit graph

67706 commits

Author SHA1 Message Date
Georgi Kodinov
ccc6e9a8c0 merge 2010-10-29 15:35:28 +03:00
Georgi Kodinov
82ca4276a0 fix tree name 2010-10-29 15:27:40 +03:00
Georgi Kodinov
97a06e4d9a merge 2010-10-29 15:25:18 +03:00
Georgi Kodinov
9cd913930d merge 2010-10-29 14:04:13 +03:00
Georgi Kodinov
860c9d9c35 merge to 5.1-security 2010-10-29 14:02:49 +03:00
Georgi Kodinov
5ddd6c079e merge to 5.1-security 2010-10-29 13:06:21 +03:00
Georgi Kodinov
db25644116 merge to 5.0-security 2010-10-29 13:05:24 +03:00
Jon Olav Hauglid
37efd0e1ef Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
2010-10-29 11:46:18 +02:00
Tor Didriksen
ea61d74328 Bug #52131: SET and ENUM stored endian-dependent in binary log
Post-Push fix, DBUG build broken on freebsd7

sql/field.cc:8456: warning: control reaches end of non-void function
2010-10-29 11:35:07 +02:00
Sergey Glukhov
88e82a892b 5.1-security->5.5-security merge 2010-10-29 12:31:28 +04:00
Sergey Glukhov
e3917c3d43 Bug#57688 Assertion `!table || (!table->write_set || bitmap_is_set(table->write_set, field
Lines below which were added in the patch for Bug#56814 cause this crash:

+      if (table->table)
+        table->table->maybe_null= FALSE;

Consider following test case:
--
CREATE TABLE t1(f1 INT NOT NULL);
INSERT INTO t1 VALUES (16777214),(0);

SELECT COUNT(*) FROM t1 LEFT JOIN t1 t2
ON 1 WHERE t2.f1 > 1 GROUP BY t2.f1;

DROP TABLE t1;
--

We set TABLE::maybe_null to FALSE for t2 table
and in create_tmp_field() we create appropriate tmp table field
using create_tmp_field_from_item() function instead of
create_tmp_field_from_field. As a result we have
LONGLONG field. As we have GROUP BY clause we calculate
group buffer length, see calc_group_buffer().
Item from group list which is used for calculation
refer to the field from real tables and have LONG type.
So group buffer length become insufficient for storing of
LONGLONG value. It leads to overwriting of wrong memory
area in do_field_int() function which is called from
end_update().
After some investigation I found out that
create_tmp_field_from_item() is used only for OLAP
grouping and can not be used for common grouping
as it could be an incompatibility between tmp
table fields and group buffer length.
We can not remove create_tmp_field_from_item() call from
create_tmp_field as OLAP needs it and we can not use this
function for common grouping. So we should remove setting
TABLE::maybe_null to FALSE from simplify_joins().
In this case we'll get wrong behaviour of
list_contains_unique_index() back. To fix it we
could use Field::real_maybe_null() check instead of
Field::maybe_null() and add addition check of
TABLE_LIST::outer_join.
2010-10-29 12:23:06 +04:00
Sergey Glukhov
bfa29d10e0 5.1-security->5.5-security 2010-10-29 11:59:36 +04:00
Vasil Dimov
9cff440d60 Merge mysql-5.1-innodb -> mysql-5.1-bugteam 2010-10-29 10:45:11 +03:00
Sergey Glukhov
3a61843a1f Bug#57194 group_concat cause crash and/or invalid memory reads with type errors
The problem is caused by bug49487 fix and became visible
after after bug56679 fix.
Items are cleaned up and set to unfixed state after filling derived table.
So we can not rely on item::fixed state in Item_func_group_concat::print
and we can not use 'args' array as items there may be cleaned up.
The fix is always to use orig_args array of items as it
always should contain the correct data.
2010-10-29 11:44:32 +04:00
Jimmy Yang
718f09e0ab Merge fix for bug#57616 from mysql-5.5-security to mysql-5.5-innodb. 2010-10-28 21:55:43 -07:00
Vasil Dimov
2aee9fb97d Fix a compilation warning:
/export/home/pb2/build/sb_0-2459340-1288264809.63/mysql-5.5.8-ga/storage/innobase/os/os0sync.c: In function 'os_cond_wait_timed':
/export/home/pb2/build/sb_0-2459340-1288264809.63/mysql-5.5.8-ga/storage/innobase/os/os0sync.c:184: warning: format '%lu' expects type 'long unsigned int', but argument 4 has type 'time_t'
gmake[2]: *** [storage/innobase/CMakeFiles/innobase.dir/os/os0sync.c.o] Error 1
2010-10-28 20:12:23 +03:00
Calvin Sun
eb3f0d2efe Null merge mysql-5.1-innodb --> mysql-5.5-innodb 2010-10-28 00:54:25 -05:00
Calvin Sun
c441f79acf Bug#52062: Compiler warning in os0file.c on windows 64-bit
On Windows, the parameter for number of bytes passed into WriteFile()
and ReadFile() is DWORD. Casting is needed to silence the warning on
64-bit Windows.

Also, adding several asserts to ensure the variable for number of bytes
is no more than 32 bits, even on 64-bit Windows.

rb://415
Approved by: Inaam
2010-10-28 00:34:53 -05:00
Calvin Sun
bc921dd74f Bug#52062: Compiler warning in os0file.c on windows 64-bit
On Windows, the parameter for number of bytes passed into WriteFile()
and ReadFile() is DWORD. Casting is needed to silence the warning on
64-bit Windows.

Also, adding several asserts to ensure the variable for number of bytes
is no more than 32 bits, even on 64-bit Windows.

This is for InnoDB Plugin.

rb://415
Approved by: Inaam
2010-10-28 00:10:28 -05:00
Calvin Sun
6cc24b9a3e Bug#52062: Compiler warning in os0file.c on windows 64-bit
On Windows, the parameter for number of bytes passed into WriteFile()
and ReadFile() is DWORD. Casting is needed to silence the warning on
64-bit Windows.

Also, adding several asserts to ensure the variable for number of bytes
is no more than 32 bits, even on 64-bit Windows.

This is for built-in InnoDB.

rb://415
Approved by: Inaam
2010-10-27 23:18:59 -05:00
Calvin Sun
b5819779f8 Fixed a C89 violation when atomic builtins are not defined, causing
a compile error with MSVC. The problem was introduced in Revision: 3150
revid:marko.makela@oracle.com-20100809085837-s1nfx6gjf7l6ttab
2010-10-27 17:06:20 -05:00
Konstantin Osipov
09b07bfae1 Remove a dead declaration. 2010-10-27 22:57:44 +04:00
Marko Mäkelä
493b45e85f Fix a bogus debug assertion in the fix of Bug #57707.
buf_pool_init(): Replace ut_ad(n_instances < MAX_BUFFER_POOLS)
with ut_ad(n_instances <= MAX_BUFFER_POOLS).
(Spotted by Michael Izioumtchenko.)
Add ut_ad(n_instances > 0).
2010-10-27 21:50:45 +03:00
Georgi Kodinov
0d56490ced Bug #57774: Typos/ambiguities in the WL1054 comments
Fixed few typos and added better wording as suggested.
2010-10-27 18:12:17 +03:00
Vasil Dimov
67105858ab Merge mysql-5.1-bugteam -> mysql-5.5-bugteam (empty) 2010-10-29 10:47:51 +03:00
Vasil Dimov
dde8538fa3 Merge mysql-5.5-innodb -> mysql-5.5-bugteam 2010-10-29 10:46:21 +03:00
Mattias Jonsson
02f1a6cbaa post merge fix 2010-10-28 12:08:09 +02:00
Mats Kindahl
9368f11b69 Merging patch for BUG#52131 with mysql-5.5-bugteam. 2010-10-27 23:12:45 +02:00
Sergey Glukhov
dff3f05bf0 5.1-secutity->5.5-security merge(test case only) 2010-10-27 18:20:25 +04:00
Sergey Glukhov
5bf148fccd Bug#57477 SIGFPE when dividing a huge number a negative number
The problem is dividing by const value when
the result is out of supported range.
The fix:
-return LONGLONG_MIN if the result is out of supported range for DIV operator.
-return 0 if divisor is -1 for MOD operator.
2010-10-27 18:12:10 +04:00
Vasil Dimov
f933761a4a Merge mysql-5.1-innodb -> mysql-5.5-innodb (empty diff) 2010-10-27 16:43:29 +03:00
Vasil Dimov
afe6ec6649 Merge mysql-5.5-bugteam -> mysql-5.5-innodb 2010-10-27 16:41:26 +03:00
Vasil Dimov
497613c057 Merge mysql-5.1-bugteam -> mysql-5.1-innodb 2010-10-27 16:39:22 +03:00
Alexander Nozdrin
0329adaef9 Follow-up for Bug#55850: update funcs_1 result files. 2010-10-27 11:16:52 +04:00
Marko Mäkelä
9c168f3225 Bug #57707 InnoDB buf_page_t size has doubled on 32-bit systems
buf_page_t: Remove the buf_pool pointer. Add buf_pool_index:6 next to
buf_fix_count:19 (it was buf_fix_count:25). This will limit the number
of concurrent transactions to somewhere around 524,288.

buf_pool_index(buf_pool): A new function to determine the index of a
buffer pool in buf_pool_ptr[].

buf_pool_ptr: Make this a dynamically allocated array instead of an
array of pointers. Allocate the array in buf_pool_init() and free in
buf_pool_free().

buf_pool_free_instance(): No longer free the buf_pool object, as it is
allocated from a big array.

buf_pool_from_bpage(), buf_pool_from_block(): Move the definitions to
the beginning of the files, because some compilers have (had) problems
with forward definitions of inline functions. Calculate the buffer
pool from buf_pool_index.

buf_pool_from_array(): Add debug assertions for input validation.
2010-10-27 09:56:56 +03:00
Marko Mäkelä
548289eea0 Bug #57730 Clean up references to InnoDB Plugin
CMakeLists.txt: Remove the checks for mysql_storage_engine.cmake
and MYSQL_VERSION_ID.

ha_innodb.cc, ha_innodb.h: Remove the checks for MYSQL_VERSION_ID.
2010-10-27 09:54:20 +03:00
Anitha Gopi
0e5cd31368 Up merge revision 3547 from 5.1. Enable sp_sync test since Bug 48157 is fixed 2010-10-27 11:04:48 +05:30
Anitha Gopi
0f00988327 Fixed bug numbers in disabled.def files 2010-10-27 09:54:04 +05:30
Inaam Rana
b87f59b2b2 Fix compiler warning introduced by previous commit. 2010-10-26 21:45:58 -04:00
Inaam Rana
b91f6c72dd Bug #57611 ibdata file and continuous growing undo logs
rb://498
  
  Fix handling of update_undo_logs at trx commit. Previously, when
  rseg->update_undo_list grows beyond 500 the update_undo_logs were
  marked with state TRX_UNDO_TO_FREE which should have been
  TRX_UNDO_TO_PURGE.
  In 5.5 we don't need the heuristic as we support multiple rollback
  segments.
  
  Approved by: Sunny Bains
2010-10-26 17:06:24 -04:00
Inaam Rana
a91cb6a3bc Null merge mysql-5.1-innodb to mysql-5.5-innodb 2010-10-26 17:03:28 -04:00
Inaam Rana
cb64e66003 Bug #57611 ibdata file and continuous growing undo logs
rb://498

Fix handling of update_undo_logs at trx commit. Previously, when
rseg->update_undo_list grows beyond 500 the update_undo_logs were
marked with state TRX_UNDO_TO_FREE which should have been
TRX_UNDO_TO_PURGE.

Approved by: Sunny Bains
2010-10-26 16:54:18 -04:00
kevin.lewis@oracle.com
2dad3c94f7 Bug#57720 - Windows Vista and possibly Windows 7 can return ERROR_TIMEOUT instead of WAIT_TIMEOUT from calls to SleepConditionVariableCS() which is used in os0sync.c; os_cond_wait_timeout() where it is mapped to sleep_condition_variable().
Consider ERROR_TIMEOUT to be a timeout just like WAIT_TIMEOUT.  

In addition, test for EINTR as a possible return value from pthread_cond_timeout() in the posix section of os_cond_wait_timeout(), even though it is not supposed to be returned, but just to be safe.
2010-10-26 14:18:31 -05:00
Marc Alff
defa3281f6 Fixed test result 2010-10-26 19:35:02 +02:00
Alexander Nozdrin
1ed6c86396 Patch for Bug#55850 (Trigger warnings not cleared).
The problem was that the warnings risen by a trigger were not cleared upon
successful completion. The warnings should be cleared if the trigger completes
successfully.

The fix is to skip merging warnings into caller's Warning Info for triggers.
2010-10-26 15:48:08 +04:00
Marc Alff
2a4f50a5df local merge 2010-10-26 11:02:32 +02:00
Bjorn Munch
105fb30e1c null upmerge 2010-10-26 08:31:22 +02:00
Bjorn Munch
8eb6992231 merge from 5.5-mtr 2010-10-26 08:30:02 +02:00
Kristofer Pettersson
23d19d3d98 automerge 2010-10-25 18:21:28 +02:00
Georgi Kodinov
777ad2dd98 Bug #57689: mysql_change_user() breaks user connection on older clients
COM_CHANGE_USER was always handled like an implicit request to change the
client plugin, so that the client can re-use the same code path for both normal 
login and COM_CHANGE_USER. However this doesn't really work well with old 
clients because they don't understand the request to change a client plugin.

Fixed by implementing a special state in the code (and old client issuing 
COM_CHANGE_USER). In this state the server parses the COM_CHANGE_USER 
package and pushes back the password hash, the user name and the database 
to the input stream in the same order that the native password server side plugin 
expects. As a result it replies with an OK/FAIL just like the old server does thus
making the new server compatible with older clients.

No test case added, since it would requre an old client binary. Tested using 
accounts with and without passwords. Tested with a correct and incorrect 
password.
2010-10-25 18:11:58 +03:00