Commit graph

60193 commits

Author SHA1 Message Date
Alexander Nozdrin
a13f2adddc Auto-merge from mysql-trunk-bugfixing. 2009-12-21 13:23:41 +03:00
Alexander Nozdrin
c736665e43 Disable plugin_load.test due to Bug#42144. 2009-12-21 13:20:43 +03:00
Vladislav Vaintroub
22c6534698 Fix inconsistently defined THR_LOCK_myisam_mmap
It was pthread_mutex_t in mi_static.c and 
mysql_mutex_t in my_thr_init.c

Solaris linker complains about different size of the 
symbol.

Fix : use mysql_mutex_t everywhere.
2009-12-20 21:20:11 +00:00
Alexander Nozdrin
2c145a94ff Auto-merge from mysql-next-mr. 2009-12-20 12:48:09 +03:00
Alexander Nozdrin
a5a2835c06 Auto-merge (empty) from mysql-trunk-bugfixing. 2009-12-20 12:43:07 +03:00
Mikael Ronstrom
d4f23f0cf6 Yet one more fix for Solaris atomics in builds 2009-12-19 18:24:52 +01:00
Mikael Ronstrom
d60b5fa260 Fixed Solaris build issues 2009-12-19 17:44:45 +01:00
Mikael Ronstrom
6bcd9edc8a Post-merge fix: wait for statement result before disconnecting. Otherwise the statement might affect unrelated tests. mysql-test/t/lock_multi.test, Reap statement status 2009-12-19 13:26:00 +01:00
Mikael Ronstrom
2126212df1 Merged in latest mysql-next-mr 2009-12-19 12:50:48 +01:00
Mikael Ronstrom
a99300e264 Fixed solaris builds 2009-12-19 12:48:39 +01:00
Alexander Nozdrin
3360882025 Auto-merge (empty) from mysql-trunk-bugfixing. 2009-12-19 11:38:14 +03:00
Alexander Nozdrin
a5cdaab3eb Auto-merge from mysql-next-mr. 2009-12-19 11:35:19 +03:00
Alexander Nozdrin
6ee1776ccf Auto-merge from mysql-trunk. 2009-12-19 11:33:33 +03:00
Alexander Nozdrin
02b76970c5 Auto-merge from mysql-next-mr. 2009-12-19 11:27:22 +03:00
Alexander Nozdrin
dc70b216cd Manual merge from mysql-trunk-merge (configure.in). 2009-12-19 11:22:13 +03:00
Alexander Nozdrin
8933c6f5f4 Auto-merge from mysql-trunk. 2009-12-19 11:20:21 +03:00
Mikael Ronstrom
3b103b4897 Increase probability of correct atomics implementation by choosing stable implementations first 2009-12-19 08:54:05 +01:00
Mikael Ronstrom
eddd1a94a7 Make choices of atomic implementation based on highest stability 2009-12-19 08:46:37 +01:00
Mikael Ronstrom
efc20b24fc Post-merge fix: wait for statement result before disconnecting. Otherwise the statement might affect unrelated tests. mysql-test/t/lock_multi.test, Reap statement status 2009-12-19 08:37:08 +01:00
Vladislav Vaintroub
8cffae12a6 merge 2009-12-18 22:13:56 +01:00
Vladislav Vaintroub
fef794a800 Bug #49811: inconsistent usage of SAFEMALLOC in debug compilation on windows
Remove per-project SAFEMALLOCs definitions, as they result in malloc/free mismatches.
2009-12-18 21:39:24 +01:00
Alfranio Correia
394b073154 Post-merge fix after BUG##45292
Updated suppressed warning messages.
2009-12-18 11:15:46 +00:00
Mikael Ronstrom
45e62fba06 Fixed Solaris Atomics build issues 2009-12-18 11:15:21 +01:00
Mikael Ronstrom
3ad70924c9 Added extra checks of 64-bit atomic support on GCC and Solaris, also added 64-bit support in solaris.h which was missing 2009-12-18 09:29:18 +01:00
Alexander Nozdrin
6e5c7b80bd Manual merge from mysql-next-mr.
Conflicts:
  - mysys/charset.c
  - mysys/my_thr_init.c
2009-12-17 23:02:52 +03:00
Alexander Nozdrin
0e3a80e0a8 Manual merge from mysql-trunk-merge.
Conflicts:
  - storage/myisam/mi_packrec.c
2009-12-17 22:16:54 +03:00
Mikael Ronstrom
7548f142c3 BUG#49591, Fixed version string in SHOW CREATE TABLE to accomodate for column list partitioning and new function to_seconds 2009-12-17 18:39:10 +01:00
Alexey Kopytov
53da51de9d Manual merge from mysql-5.1-bugteam. Re-enabled binlog.binlog_index. 2009-12-17 20:10:18 +03:00
Alfranio Correia
b1090b13fc merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam 2009-12-17 15:47:22 +00:00
Jon Olav Hauglid
a5beaf5cbf Partial backport of:
------------------------------------------------------------
revno: 2617.14.26
committer: Vladislav Vaintroub <vvaintroub@mysql.com>
branch nick: mysql-6.0-wtf
timestamp: Wed 2008-11-05 11:19:19 +0100
message:
   CMakeLists.txt files cleanup.
  
  - remove SAFEMALLOC and SAFE_MUTEX definitions that were
  present in *each* CMakeLists.txt. Instead, put them into top level
  MakeLists.txt, but disable on Windows, because
  
  a) SAFEMALLOC does not add any functionality that is not already
  present in Debug C runtime ( and 2 safe malloc one on top of the other
  only unnecessarily slows down the server)
  
  b)SAFE_MUTEX does not work on Windows  and have been
  explicitely  disabled on Windows with #undef previously.  Fortunately,
  ntdll does  pretty good  job identifying l problems with  CRITICAL_SECTIONs.
  (DebugBreak()s on using uninited critical section, unlocking unowned
  critical section)
  
  -Remove occationally used -D_DEBUG (added by compiler
  anyway)
  
  -Remove MAP file generation, it became  obsolete .
  There are many ways to get callstack  of a crash now, with stacktrace in 
  error log , minidump etc
2009-12-17 16:40:02 +01:00
Alexey Kopytov
5069a66670 Automerge from mysql-5.1-bugteam to mysql-trunk-merge. 2009-12-17 18:09:04 +03:00
Andrei Elkin
709f49cbf7 merge from 5.0 with bug@49740 fixes 2009-12-17 16:50:45 +02:00
Andrei Elkin
522c084631 Bug #49740 rpl.rpl_temporary fails in PB2 in mysql-trunk-merge
The test allowed random coincidence of connection ids for two concurrent
sessions performing CREATE/DROP temp tables.

Fixed with correcting the test. The sessions connection ids are not changed
from their defaults anymore.
2009-12-17 16:34:11 +02:00
Jon Olav Hauglid
4315dc033e Bug #48724 Deadlock between INSERT DELAYED and FLUSH TABLES
If the handler (or delayed insert) thread failed to lock a table due
to being killed, the "dead" flag was used to notify the connection thread
of this failure. However, with the changes introduced by Bug#45949, 
the handler thread will no longer try to lock the table if it was killed.
This meant that the "dead" flag would not be set, and the connection
thread would not notice that the handler thread had failed.

This could happen with concurrent INSERT DELAYED and FLUSH TABLES.
FLUSH TABLES would kill any active INSERT DELAYED that had opened any
table(s) to be flushed. This could cause the INSERT DELAYED connection
thread to be stuck waiting for the handler thread to lock its table,
while the handler thread would be looping, trying to get the connection
thread to notice the error.

The root of the problem was that the handler thread had both the "dead"
flag and "thd->killed" to indicate that it had been killed. Most places
both were set, but some only set "thd->killed". And 
Delayed_insert::get_local_table() only checked "dead" while waiting for
the table to be locked.

This patch removes the "dead" variable and replaces its usage with
"thd->killed", thereby resolving the issue.
2009-12-17 13:43:07 +01:00
Martin Hansson
66c4b4ae5d Backport of fix for bug#35020 2009-12-17 13:38:27 +01:00
Satya B
5db5e19ad6 merge to mysql-5.1-bugteam 2009-12-17 17:47:34 +05:30
Satya B
bbf079cf2c merge mysql-5.0-bugteam to mysql-5.1-bugteam 2009-12-17 17:15:13 +05:30
Satya B
cf9966f86f Fix for Bug#37408 - Compressed MyISAM files should not require/use mmap()
When compressed myisam files are opened, they are always memory mapped
sometimes causing memory swapping problems.

When we mmap the myisam compressed tables of size greater than the memory 
available, the kswapd0 process utilization is very high consuming 30-40% of 
the cpu. This happens only with linux kernels older than 2.6.9

With newer linux kernels, we don't have this problem of high cpu consumption
and this option may not be required.
 
The option 'myisam_mmap_size' is added to limit the amount of memory used for
memory mapping of myisam files. This option is not dynamic.

The default value on 32 bit system is 4294967295 bytes and on 64 bit system it
is 18446744073709547520 bytes.

Note: Testcase only tests the option variable. The actual bug has be to 
tested manually.

include/my_global.h:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  define SIZE_T_MAX
include/myisam.h:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
  THR_LOCK_myisam_mmap
myisam/mi_packrec.c:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  add 'myisam_mmap_size' option which limits the memory available to mmap of 
  myisam files
myisam/mi_static.c:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
  THR_LOCK_myisam_mmap
myisam/myisamdef.h:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  move MEMMAP_EXTRA_MARGIN to myisam.h so that it can be used in mysqld.cc
mysql-test/r/variables.result:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  Testcase for BUG#37408 to test the myisam_mmap_size option
mysql-test/t/variables.test:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  Testcase for BUG#37408 to test the myisam_mmap_size option
mysys/my_thr_init.c:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  intialize the lock THR_LOCK_myisam_mmap
sql/mysqld.cc:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  add the 'myisam_mmap_size' option
sql/set_var.cc:
  Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
  
  add the 'myisam_mmap_size' to the SHOW VARIABLES list
2009-12-17 16:55:50 +05:30
Martin Hansson
6863f7dc2d Bug#47650: using group by with rollup without indexes
returns incorrect results with where

An outer join of a const table (outer) and a normal table
(inner) with GROUP BY on a field from the outer table would
optimize away GROUP BY, and thus trigger the optimization to
do away with a temporary table if grouping was performed on
columns from the const table, hence executing the query with
filesort without temporary table. But this should not be
done if there is a non-indexed access to the inner table,
since filesort does not handle joins. It expects either ref
access, range ditto or table scan. The join condition will
thus not be applied.

Fixed by always forcing execution with temporary table in
the case of ROLLUP with a query involving an outer join. This
is a slightly broader class of queries than need fixing, but
it is hard to ascertain the position of a ROLLUP field wrt
outer join with current query representation.

mysql-test/r/join_outer.result:
  Bug#47650: Test result
mysql-test/t/join_outer.test:
  Bug#47650: Test case
sql/sql_select.cc:
  Bug#47650: Fix
2009-12-17 10:55:18 +01:00
Marc Alff
4e8d1c6bf3 Merge mysql-next-mr (revno 2939) --> mysql-next-mr-marc 2009-12-17 02:12:02 -07:00
Ramil Kalimullin
4621d480fc Auto-merge. 2009-12-17 10:52:43 +04:00
Ramil Kalimullin
06be03f77c Fix for bug#49465: valgrind warnings and incorrect live checksum...
Problem: inserting a record we don't set unused null bits in the
record buffer if no default field values used.
That may lead to wrong live checksum calculation.

Fix: set unused null bits in the record buffer in such cases.


mysql-test/r/myisam.result:
  Fix for bug#49465: valgrind warnings and incorrect live checksum...
    - test result.
mysql-test/t/myisam.test:
  Fix for bug#49465: valgrind warnings and incorrect live checksum...
    - test case.
sql/sql_insert.cc:
  Fix for bug#49465: valgrind warnings and incorrect live checksum...
    - set unused null bits to 1 in the record buffer in case we
  don't call restore_record() before a fill_record() call
  (when no default values used).
2009-12-17 09:55:03 +04:00
Marc Alff
0d99234dba Merge mysql-next-mr (revno 2942) --> mysql-next-mr-marc 2009-12-16 15:48:55 -07:00
Magne Mahre
4338e06f51 Bug#47017 rpl_timezone fails on PB-2 with mismatch error
The bug is caused by a race condition between the 
INSERT DELAYED thread and the client thread's FLUSH TABLE.  The 
FLUSH TABLE does not guarantee (as is (wrongly) suggested in the 
test case) that the INSERT DELAYED is ever executed.  The 
execution of the test case will thus not be deterministic.

The fix has been to do a deterministic verification that both
threads are complete by checking the content of the table.
2009-12-16 20:53:56 +01:00
Alfranio Correia
ad4bbb281f BUG#49638 binlog_index fails in mysql-trunk-merge
Calling push_warning/push_warning_printf with a level of
WARN_LEVEL_ERROR *is* a bug. We should either use my_error(),
or WARN_LEVEL_WARN.
2009-12-16 19:52:56 +00:00
Alexander Nozdrin
cc85fe239d Auto-merge from mysql-next-mr-summit0.3. 2009-12-16 21:50:45 +03:00
Alexander Nozdrin
9e3caef632 Auto-merge from mysql-trunk-merge. 2009-12-16 21:37:10 +03:00
Alexander Nozdrin
7e15d855f1 Manual merge from mysql-5.1.
Conflicts:
  - mysql-test/r/select.result
  - mysql-test/t/select.test
  - sql/item_cmpfunc.h
  - sql/sql_show.cc
2009-12-16 21:35:25 +03:00
Alexander Nozdrin
5f0c09dd72 Manual merge from mysql-trunk-merge.
Conflicts:
  - include/my_no_pthread.h
  - mysql-test/r/sp-ucs2.result
  - sql/log.cc
  - sql/sql_acl.cc
  - sql/sql_yacc.yy
2009-12-16 21:02:21 +03:00
Joerg Bruehe
9018db2c7a Automerge the changes of version 5.5.0-m2. 2009-12-16 16:20:08 +01:00