Commit graph

46936 commits

Author SHA1 Message Date
dlenev@mockturtle.local
8e8f4c05cc 5.1 version of fix for:
Bug #23667 "CREATE TABLE LIKE is not isolated from alteration
              by other connections"
  Bug #18950 "CREATE TABLE LIKE does not obtain LOCK_open"
As well as:
  Bug #25578 "CREATE TABLE LIKE does not require any privileges
              on source table".

The first and the second bugs resulted in various errors and wrong
binary log order when one tried to execute concurrently CREATE TABLE LIKE
statement and DDL statements on source table or DML/DDL statements on its
target table.

The problem was caused by incomplete protection/table-locking against
concurrent statements implemented in mysql_create_like_table() routine.
We solve it by simply implementing such protection in proper way.
Most of actual work for 5.1 was already done by fix for bug 20662 and
preliminary patch changing locking in ALTER TABLE.

The third bug allowed user who didn't have any privileges on table create
its copy and therefore circumvent privilege check for SHOW CREATE TABLE.

This patch solves this problem by adding privilege check, which was missing.

Finally it also removes some duplicated code from mysql_create_like_table()
and thus fixes bug #26869 "TABLE_LIST::table_name_length inconsistent with
TABLE_LIST::table_name".
2007-05-23 15:26:16 +04:00
dlenev@mockturtle.local
c07b3670d7 5.0 version of fix for:
Bug #23667 "CREATE TABLE LIKE is not isolated from alteration
             by other connections"
 Bug #18950 "CREATE TABLE LIKE does not obtain LOCK_open"
As well as:
 Bug #25578 "CREATE TABLE LIKE does not require any privileges
             on source table".

The first and the second bugs resulted in various errors and wrong
binary log order when one tried to execute concurrently CREATE TABLE LIKE
statement and DDL statements on source table or DML/DDL statements on its
target table.

The problem was caused by incomplete protection/table-locking against
concurrent statements implemented in mysql_create_like_table() routine.
We solve it by simply implementing such protection in proper way (see
comment for sql_table.cc for details).

The third bug allowed user who didn't have any privileges on table create
its copy and therefore circumvent privilege check for SHOW CREATE TABLE.

This patch solves this problem by adding privilege check, which was missing.

Finally it also removes some duplicated code from mysql_create_like_table().

Note that, altough tests covering concurrency-related aspects of CREATE TABLE
LIKE behaviour will only be introduced in 5.1, they were run manually for
this patch as well.
2007-05-23 15:22:13 +04:00
thek@adventure.(none)
f52c5a2031 - Corrected type misstake in debug statement. 2007-05-23 13:04:49 +02:00
thek@adventure.(none)
0eaa615245 Merge adventure.(none):/home/thek/Development/cpp/bug21074/my51-bug21074
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-05-23 12:55:11 +02:00
thek@adventure.(none)
c454071eab - This patch addesses the performance issues with invalidating the entire
cache by changing the behavior of the query cache resize-method.
- set query_cache_size=<new_size>; is significantly faster than RESET QUERY
  CACHE as it simply destroys and recreates the query cache, whereas
  RESET QUERY CACHE keeps its internal structure aligned with server 
  load profile.
2007-05-23 12:54:15 +02:00
mhansson@dl145s.mysql.com
d503391497 Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my50-bug23856
into  dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my51-bug23856
2007-05-23 12:03:43 +02:00
joerg@trift2.
fb47cb1c82 Merge trift2.:/MySQL/M50/push-5.0
into  trift2.:/MySQL/M51/push-5.1
2007-05-23 12:02:48 +02:00
mhansson@dl145s.mysql.com
7db4df0b3c Bug #23856: GROUP_CONCAT and ORDER BY: junk from previous
rows for query on I_S

This is a patch to get rid of some warnings about comparisons
between singed and unsigned ints, which turn up on sapsrv1 and
sapsrv2.
2007-05-23 12:00:18 +02:00
evgen@moonbone.local
349f1023bf Merge moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/test-5.1-opt-mysql
2007-05-23 13:46:10 +04:00
df@pippilotta.erinye.com
77e1e678d3 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
2007-05-23 10:51:27 +02:00
df@pippilotta.erinye.com
a70903b7f8 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0.42
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-05-23 10:49:26 +02:00
svoj@june.mysql.com
64d34f6e22 Merge mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.1-engines
2007-05-23 12:42:17 +05:00
svoj@june.mysql.com
442969fd16 Merge mysql.com:/home/svoj/devel/bk/mysql-5.1
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.1-engines
2007-05-23 12:41:30 +05:00
svoj@june.mysql.com
43b2dc188f Merge mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-05-23 12:40:12 +05:00
svoj@mysql.com/june.mysql.com
122167bb4b Merge mysql.com:/home/svoj/devel/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-05-23 12:39:33 +05:00
svoj@mysql.com/june.mysql.com
a4ddc22621 Merge mysql.com:/home/svoj/devel/bk/mysql-4.1
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2007-05-23 12:38:34 +05:00
bar@mysql.com/bar.myoffice.izhnet.ru
240a927c54 Bug#28558 UpdateXML called with garbage crashes server
Problem: Memory overrun happened in attempts to generate
error messages (e.g. in case of incorrect XPath syntax).
Reason: set_if_bigger() was used instead of set_if_smaller().
Change: replacing wrong set_if_bigger() to set_if_smaller(),
and making minor additional code clean-ups.
2007-05-23 12:34:47 +05:00
df@pippilotta.erinye.com
f8433465a2 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
2007-05-23 08:40:39 +02:00
malff/marcsql@weblab.(none)
d82bed47a7 build break cleanup 2007-05-22 16:19:36 -06:00
tomas@whalegate.ndb.mysql.com
2ff938d21c Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
2007-05-22 23:28:19 +02:00
tomas@whalegate.ndb.mysql.com
b789452743 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-22 23:21:55 +02:00
tomas@whalegate.ndb.mysql.com
a4934466c0 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
2007-05-22 23:21:32 +02:00
tomas@whalegate.ndb.mysql.com
481b314e9a Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-22 23:20:40 +02:00
tomas@whalegate.ndb.mysql.com
7b2c430f58 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-4.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
2007-05-22 23:19:45 +02:00
malff/marcsql@weblab.(none)
1edeae9125 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-21554-merge
2007-05-22 13:42:30 -06:00
malff/marcsql@weblab.(none)
782096dbcc Bug#21554 (sp_cache.cc: violates C++ aliasing rules)
The problem reported is a compile bug,
reported by the development GCC team with GCC 4.2.

The original issue can no longer be reproduced in MySQL 5.1,
since the configure script no longer define HAVE_ATOMIC_ADD,
which caused the Linux atomic functions to be used (and cause a problem
with an invalid cast).

This patch implements some code cleanup for 5.1 only, which was identified
during the investigation of this issue.

With this patch, statistics maintained in THD::status_var are by definition
owned by the running thread, and do not need to be protected against race
conditions. These statistics are maintained by the status_var_* helpers,
which do not require any lock.
2007-05-22 13:41:40 -06:00
joerg@trift2.
b8e3fb1333 Merge trift2.:/MySQL/M50/bug26609-5.0
into  trift2.:/MySQL/M50/push-5.0
2007-05-22 20:02:23 +02:00
mhansson@dl145s.mysql.com
debb054d4a Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/users/mhansson/mysql/autopush/mysql-5.0o-pushee
2007-05-22 18:30:23 +02:00
andrey@whirlpool.mysql.com
ed4144e528 Test case for bug#28075 2007-05-22 18:18:39 +02:00
tomas@whalegate.ndb.mysql.com
2c715f1ad4 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
2007-05-22 17:57:48 +02:00
tomas@whalegate.ndb.mysql.com
b46c826aee Bug #28593 cluster backup scans in acc index order, bad for disk data
- change to scan in tup and disk order (if applicable)
2007-05-22 17:53:07 +02:00
joerg@trift2.
49dc9c5971 Merge trift2.:/MySQL/M50/bug26609-5.0
into  trift2.:/MySQL/M51/bug26609-5.1
2007-05-22 17:51:51 +02:00
joerg@trift2.
1185004419 Add the "row_lock" test suite to the (to be) release build test run. 2007-05-22 17:21:22 +02:00
joerg@trift2.
b0677f1ddc scripts/make_binary_distribution.sh :
Include all the additional test suites in the binary packages ("tar.gz").
This is the tar.gz part of the fixes for bug#26609; for RPMs it is already done.
2007-05-22 17:06:47 +02:00
gkodinov/kgeorge@magare.gmz
8ae4ebbaa4 Merge magare.gmz:/home/kgeorge/mysql/work/B28476-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B28476-5.1-opt

Zero merge all except the new test
2007-05-22 17:57:14 +03:00
cbell/Chuck@mysql_cab.
0ce86cdc51 BUG#17654 : --read-from-remote-server causes core
This patch corrects a problem encountered when reading the binlog from a remote
host. The application was crashing because the buffer variable (temp_buf) in 
log_event was not pointing to the incoming data. For a normal file read, this 
buffer is allocated by a previous call of read_log_event. However, when reading
from a remote host, the first call to read_log_event is not executed therefore
no buffer is allocated. Furthermore, there is no need to allocate a new buffer 
because the incoming stream is what needs to be read. 

This patch adds the call to initialize the temp_buf variable if reading from a 
remote host. It also adds a check at destroy time to ensure the temp_buf is not
freed if reading from a remote host.
2007-05-22 10:50:32 -04:00
gkodinov/kgeorge@magare.gmz
6d1fab661b Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28476-5.0-opt
2007-05-22 17:05:33 +03:00
gkodinov/kgeorge@magare.gmz
604ef46327 Bug #28476: force index on a disabled myisam index gives error 124
When processing the USE/FORCE index hints
the optimizer was not checking if the indexes 
specified are enabled (see ALTER TABLE).
Fixed by:
 Backporting the fix for bug 20604 to 5.0
2007-05-22 15:58:30 +03:00
mhansson@dl145s.mysql.com
d6cf093408 Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my50-bug23856
into  dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/mysql-5.0o-pushee
2007-05-22 14:48:49 +02:00
mhansson@dl145s.mysql.com
6870631ed4 Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my51-bug23856
into  dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/mysql-5.1o-pushee
2007-05-22 09:54:04 +02:00
igor@olga.mysql.com
b50d17a9b5 Added initializations to avoid compiler warnings. 2007-05-21 16:44:36 -07:00
evgen@moonbone.local
90aa02715d Bug#27507: Wrong DATETIME value was allowed by ALTER TABLE in the NO_ZERO_DATE
mode.

When a new DATE/DATETIME field without default value is being added by the
ALTER TABLE the '0000-00-00' value is used as the default one. But it wasn't
checked whether such value was allowed by the set sql mode. Due to this
'0000-00-00' values was allowed for DATE/DATETIME fields even in the
NO_ZERO_DATE mode.

Now the mysql_alter_table() function checks whether the '0000-00-00' value
is allowed for DATE/DATETIME fields by the set sql mode.
The new error_if_not_empty flag is used in the mysql_alter_table() function
to indicate that it should abort if the table being altered isn't empty.
The new new_datetime_field field is used in the mysql_alter_table() function
for error throwing purposes. 
The new error_if_not_empty parameter is added to the copy_data_between_tables()
function to indicate the it should return error if the source table isn't empty.
2007-05-22 00:22:53 +04:00
tsmith@quadxeon.mysql.com
6ddf4785bb Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
2007-05-21 21:03:03 +02:00
tsmith@quadxeon.mysql.com
b3a84ddd89 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
2007-05-21 20:55:10 +02:00
tsmith@quadxeon.mysql.com
f8ac268e58 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
2007-05-21 20:53:15 +02:00
tsmith@quadxeon.mysql.com
672237f5b5 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/51
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
2007-05-21 20:51:31 +02:00
tsmith@quadxeon.mysql.com
99488b31b9 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
2007-05-21 20:50:08 +02:00
tsmith@quadxeon.mysql.com
2c3bebc570 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
2007-05-21 20:49:24 +02:00
joerg@trift2.
8a0f37d559 Merge trift2.:/MySQL/M51/mysql-5.1
into  trift2.:/MySQL/M51/push-5.1
2007-05-21 20:34:42 +02:00
joerg@trift2.
bbae855c72 Prevent the failing "jp" suite from causing havoc in release builds (28563). 2007-05-21 20:24:34 +02:00