Commit graph

56882 commits

Author SHA1 Message Date
Ramil Kalimullin
6379cc00bb Manual merge. 2009-03-25 23:41:16 +04:00
Ramil Kalimullin
63821b173d Auto-merge 2009-03-25 21:50:42 +04:00
Ramil Kalimullin
cf6c7262d0 Fix for bug#35383: binlog playback and replication breaks
due to name_const substitution

Problem:
"In general, statements executed within a stored procedure
are written to the binary log using the same rules that
would apply were the statements to be executed in standalone
fashion. Some special care is taken when logging procedure
statements because statement execution within procedures
is not quite the same as in non-procedure context".

For example, each reference to a local variable in SP's
statements is replaced by NAME_CONST(var_name, var_value).
Queries like
"CREATE TABLE ... SELECT FUNC(local_var ..."
are logged as
"CREATE TABLE ... SELECT FUNC(NAME_CONST("local_var", var_value) ..."
that leads to differrent field names and
might result in "Incorrect column name" if var_value is long enough.

Fix: in 5.x we'll issue a warning in such a case.
In 6.0 we should get rid of NAME_CONST().

Note: this issue and change should be described in the documentation
("Binary Logging of Stored Programs").
2009-03-25 20:48:10 +04:00
Tatiana A. Nurnberg
bafe7f60c6 Bug#43748: crash when non-super user tries to kill the replication threads
manual merge. also adds test specific to 5.1+
2009-03-25 17:42:34 +01:00
Tatiana A. Nurnberg
de8042d007 Bug#43748: crash when non-super user tries to kill the replication threads
Fine-tuning. Broke out comparison into method by
suggestion of Davi. Clarified comments. Reverting
test-case which I find too brittle; proper test
case in 5.1+.
2009-03-25 17:10:27 +01:00
Georgi Kodinov
08626e800e Bug#43748: crash when non-super user tries to kill the replication threads
(Pushing for Azundris)
      
We allow security-contexts with NULL users (for
system-threads and for unauthenticated users).
If a non-SUPER-user tried to KILL such a thread,
we tried to compare the user-fields to see whether
they owned that thread. Comparing against NULL was
not a good idea.
      
If KILLer does not have SUPER-privilege, we
specifically check whether both KILLer and KILLee
have a non-NULL user before testing for string-
equality. If either is NULL, we reject the KILL.
2009-03-25 15:37:21 +02:00
Andrei Elkin
921e3fe8bf Bug#42977 RBR logs for rows with more than 250 column results in corrupt binlog
The issue happened to be two-fold.
The table map event was recorded into binlog having
an incorrect size when number of columns exceeded 251. 
The Row-based event had incorrect recording and restoring m_width member within
the same as above conditions.

Fixed with correcting m_data_size and m_width.
2009-03-25 12:53:56 +02:00
Leonard Zhou
18d2219889 Merge 2009-03-25 17:37:29 +08:00
Alexey Kopytov
1b01a1ca61 Disabled embedded server in the test case for bug #41486. 2009-03-25 11:47:41 +03:00
Leonard Zhou
e07e1645d0 Empty merge for fixing only in 5.0 2009-03-25 16:34:40 +08:00
Leonard Zhou
cfa6235224 Fix the test case error in PB. 2009-03-25 16:19:09 +08:00
Alexey Kopytov
b4c794d35a Fix for bug #43801: mysql.test takes too long, fails due to
expired timeout on debx86-b in PB

Turned off general log when importing DB dump in the test 
case for bug #41486 due to the bug in CSV engine code that 
makes logging long SQL query too slow.
2009-03-25 10:32:01 +03:00
Leonard Zhou
9095a69eda Fix test case erro in sles10-ia64-a.
Reset master before next test.
2009-03-25 14:19:42 +08:00
Alexey Kopytov
e484d6fa02 Automerge. 2009-03-24 23:53:25 +03:00
Alexey Kopytov
06554a3ba8 Automerge. 2009-03-24 23:52:08 +03:00
Alexey Kopytov
159b18fad1 Automerge. 2009-03-24 23:50:59 +03:00
Alexey Kopytov
b3901af145 Manuel merge. 2009-03-24 23:48:31 +03:00
Alexey Kopytov
b071b660e9 Fix for bug #43801: mysql.test takes too long, fails due to
expired timeout on debx86-b in PB 

Moved the resource-intensive test case for bug #41486 into 
a separate test file to reduce execution time for mysql.test.
2009-03-24 23:44:38 +03:00
Luis Soares
6dff801284 BUG#39701: Mixed binlog format does not switch to row mode on
LOAD_FILE
            
LOAD_FILE is not safe to replicate in STATEMENT mode, because it
depends on a file (which is loaded on master and may not exist in
slave(s)). This leads to scenarios on which the slave replicates the
statement with 'load_file' and it will try to load the file from local
file system. Given that the file may not exist in the slave filesystem
the operation will not succeed (probably returning NULL), causing
master and slave(s) to diverge. However, when using MIXED mode
replication, this can be made to work, if the statement including
LOAD_FILE is marked as unsafe, triggering a switch to ROW mode,
meaning that the contents of the file are written to binlog as row
events. Consequently, the contents from the file in the master will
reach the slave via the binlog.
           
This patch addresses this bug by marking the load_file function as
unsafe. When in mixed mode and when LOAD_FILE is issued, there will be
a switch to row mode. Furthermore, when in statement mode, the
LOAD_FILE will raise a warning that the statement is unsafe in that
mode.
2009-03-24 18:27:33 +00:00
Georgi Kodinov
7b7d5b5b43 Fixed initialization order warining. 2009-03-24 16:52:35 +02:00
Georgi Kodinov
706a0a39ed merged 5.0-bugteam -> 5.1-bugteam 2009-03-24 15:58:52 +02:00
Leonard Zhou
84a63525d5 Merge 2009-03-24 15:29:04 +08:00
Leonard Zhou
8ac45fb09d Merge 2009-03-24 15:19:46 +08:00
Horst Hunger
fcf6712e21 Merge to be able to push. 2009-03-24 11:48:38 +01:00
Sergey Glukhov
40138ba72a compiler warning fix 2009-03-24 13:02:01 +04:00
Leonard Zhou
bcf70ef6a0 Merge 2009-03-24 15:10:40 +08:00
Leonard Zhou
56184684f4 Merge 2009-03-24 14:24:27 +08:00
Leonard Zhou
97c6e3f88b BUG#41719 delayed INSERT into timestamp col needs set time_zone for concurrent binlogging
When do 'insert delayed' operation, the time_zone info doesn't be keeped in the row info.
So when we do insert sometime later, time_zone didn't write into binlog.
This will cause wrong result for timestamp column in slave.

Our solution is that adding time_zone info with the delayed-row and
restoring time_zone from row-info when execute that row in the furture by another thread.
So we can write correct time_zone info into binlog and got correct result in slave.
2009-03-24 08:45:05 +08:00
Matthias Leich
9c515e3d5c Merge of fixes into actual tree 2009-03-23 21:19:41 +01:00
Matthias Leich
55ee0f440f Merge 5.0 -> 5.1 of fix for the bugs 43015 and 43065 2009-03-23 17:08:48 +01:00
Matthias Leich
3e89ac0120 Fix for Bug#43015 and Bug#43065
Details for Bug#43015 main.lock_multi: Weak code (sleeps etc.)
   -------------------------------------------------------------
   - The fix for bug 42003 already removed a lot of the weaknesses mentioned.
   - Tests showed that there are unfortunately no improvements of this tests
     in MySQL 5.1 which could be ported back to 5.0.
   - Remove a superfluous "--sleep 1" around line 195

   Details for Bug#43065 main.lock_multi: This test is too big if the disk is slow
   -------------------------------------------------------------------------------
   - move the subtests for the bugs 38499 and 36691 into separate scripts
   - runtime under excessive parallel I/O load after applying the fix
     lock_multi           [ pass ]          22887
     lock_multi_bug38499  [ pass ]         536926
     lock_multi_bug38691  [ pass ]         258498
2009-03-23 15:22:31 +01:00
Sergey Glukhov
1cff5b9c53 remove compiler warnings 2009-03-23 16:51:39 +04:00
Georgi Kodinov
30f1fc229e Disabled the failing test case until bug #43440 is resolved 2009-03-23 11:38:54 +02:00
Georgi Kodinov
f7cfb8ea0e merged 5.1-main -> 5.1-bugteam 2009-03-23 11:36:39 +02:00
Tatiana A. Nurnberg
8aff42f6a0 auto-merge 2009-03-23 05:21:45 +01:00
Tatiana A. Nurnberg
06cb0ec482 auto-merge 2009-03-23 05:21:02 +01:00
Tatiana A. Nurnberg
deb566d6b3 auto-merge 2009-03-23 05:09:51 +01:00
Tatiana A. Nurnberg
e5a599bd73 Bug#43254: SQL_SELECT_LIMIT=0 crashes command line client
When asking what database is selected, client expected
to *always* get an answer from the server.

We now handle failure more gracefully.

See comments in ticket for a discussion of what happens,
and how things interlock.
2009-03-23 05:08:32 +01:00
Alfranio Correia
b580f3b60b Post-fix BUG#42861. 2009-03-23 01:07:25 +00:00
Alfranio Correia
0a8f0d280c auto-merge 5.1-bugteam (local) --> 5.1-bugteam 2009-03-22 19:46:57 +00:00
Tatiana A. Nurnberg
43c1659946 auto-merge 2009-03-20 19:10:12 +01:00
Tatiana A. Nurnberg
df1a9f6c0b auto-merge 2009-03-20 19:09:00 +01:00
Horst Hunger
004662b194 Reviewed fix for bug#37962 also including the revised result files for failing system variable tests. 2009-03-20 18:11:22 +01:00
Georgi Kodinov
724d3e8a06 Fixed the failing tests. Addendum to the fix for bug #22504. 2009-03-20 16:49:43 +02:00
Georgi Kodinov
ef4ab5cfaa fixed compilation warnings. addendum to the fix for bug 29125 2009-03-20 16:27:53 +02:00
Georgi Kodinov
4a3c0d800a Fixed a prototype to match the actual function signature (addendum to the
fix for 29125).
2009-03-20 13:35:00 +02:00
Georgi Kodinov
b71a73c7e2 reverting a bogus fix into 5.1-bugteam 2009-03-20 13:18:29 +02:00
Narayanan V
b466a93b8a merging with mysql-5.0-bugteam 2009-03-20 11:42:55 +05:30
Davi Arnaut
2417701e46 Bug#43461: invalid comparison with string literal in default.c
Don't compare string literals as it results in unspecified behavior.
2009-03-19 17:20:15 -03:00
Chad MILLER
0c16305409 Merge contributed automake changes, and 5.1 upstream. 2009-03-19 16:18:10 -04:00