1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-08 15:01:49 +03:00

15128 Commits

Author SHA1 Message Date
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
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
Satya B
f11de02ea8 merge to 5.0-bugteam 2009-03-25 15:02:57 +05:30
Satya B
7b1d72a096 Fix for BUG#41541 - Valgrind warnings on packed MyISAM table
After the table is compressed by the myisampack utility,
opening the table by the server produces valgrind warnings.
      
This happens because when we try to read a record into the buffer
we alway assume that the remaining buffer to read is always equal 
to word size(4 or 8 or 2 bytes) we read. Sometimes we have 
remaining buffer size less than word size and trying to read the 
entire word size will end up in valgrind errors.
            
Fixed by reading byte by byte when we detect the remaining buffer 
size is less than the word size.
2009-03-25 14:45:53 +05:30
Leonard Zhou
cfa6235224 Fix the test case error in PB. 2009-03-25 16:19:09 +08:00
Alexey Kopytov
159b18fad1 Automerge. 2009-03-24 23:50:59 +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
Leonard Zhou
84a63525d5 Merge 2009-03-24 15:29:04 +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
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
Bernt M. Johnsen
39ceb7f6ef Bug#43329 merge from 5.0 GCA-branch 2009-03-19 14:52:35 +01:00
Alexey Kopytov
5e7238e76e Automerge. 2009-03-19 13:07:30 +03:00
Alexey Kopytov
a82402dd6f Fixed test failures in 5.1/6.0 introduced by the patch
for bug #41486. Session max_allowed_packet is read-only
as of MySQL 5.1.31. In addition, the global variable
now has no effect on the current session.
2009-03-19 13:02:23 +03:00
Sergey Glukhov
a910db2b91 automerge 2009-03-19 12:42:26 +04:00
Satya B
6ca68ad189 merge to 5.0-bugteam 2009-03-19 13:53:24 +05:30
Sergey Glukhov
5ff4e44bf8 Bug#41627 Illegal mix of collations in LEAST / GREATEST / CASE
Don't throw an error after checking the first and the second arguments.
Continue with checking the third and higher arguments and if some of
them is stronger according to coercibility rules,
then this argument's collation is set as result collation.
2009-03-19 12:20:28 +04:00
Satya B
4f333c876a Fix for BUG#21360 - mysqldump error on federated tables
When loading dump created by mysqldump tool an error is
thrown saying storage engine for the table doesn't have 
an option.
                        
mysqldump tries to re-insert the data into the federated
table which causes the error. Since the data is already
available on the remote server, mysqldump shouldn't try
to dump the data again for FEDERATED tables.
                        
As stated in the bug page, it can be considered similar
to the MERGE ENGINE with "view only" nature.
                        
Fixed by adding the "FEDERATED ENGINE" to the exception
list to ignore the data.
2009-03-19 11:36:37 +05:30
Bernt M. Johnsen
b011395bfa Bug#43329 prepared for commit on 5.0 2009-03-18 15:07:13 +01:00
Alexey Kopytov
5315ffa7fa Automerge. 2009-03-18 11:35:52 +03:00
Alexey Kopytov
a3e5737abd Fix for bug#41486: extra character appears in BLOB for every
~40Mb after mysqldump/import 
        
When the input string exceeds the maximum allowed size for the 
internal buffer, batch_readline() returns a truncated string. 
Since there was no way for a caller to determine whether the 
string was truncated or not, the command line client assumed 
batch_readline() to always return the whole input string and 
appended a newline character. This resulted in garbled data 
when importing dumps containing strings longer than the 
maximum input buffer size. 
  
Fixed by adding a flag to the batch_readline() interface to 
signal a truncated string to the caller. 
  
Other minor problems fixed during patch implementation: 
 
- The maximum allowed buffer size for batch_readline() was set 
up depending on the client's max_allowed_packet value. It does 
not actully make any sense, as those variables are not 
related. The input buffer size limit is now always set to 1 
MB. 
  
- fill_buffer() did not always set the EOF flag. 
 
- The input buffer could actually grow twice as the specified 
limit due to insufficient checks in intern_read_line().
2009-03-18 11:18:24 +03:00
Patrick Crews
e54bad485d Bug#41307: Tests using include/ndb_backup.inc won't work on Windows due to 'grep' call.
Revised patch incorporating cleaner test code brought up during review.
Removed the use of grep and accomplished same actions via SQL / use of the server.

Runs as before on *nix systems and now runs on Windows without Cygwin as well.
2009-03-15 12:25:14 -04:00
Chad MILLER
8725bcd944 Merge bug fix and upstream. 2009-03-12 13:32:13 -04:00
Timothy Smith
b756503262 Bug #32625: Make test type_bit_innodb more robust
Since there is more than one duplicate value in the table, when adding the
unique index it is not deterministic which value will be reported as causing a
problem.  Replace the reported value with '' so that it doesn't affect the
results.
2009-03-11 14:54:57 -06:00
Chad MILLER
6b72857803 Merge from bugfix tree. 2009-03-10 12:53:43 -04:00
Chad MILLER
0d9589a433 Bug#42635: mysqldump includes views that were excluded using the \
--ignore-table option

mysqldump would correctly omit temporary tables for views, but would
incorrectly still emit all CREATE VIEW statements.

Backport a fix from 5.1, where we capture the names we want to emit
views for in one pass (the placeholder tables) and in the pass where
we actually emit the views, we don't emit a view if it wasn't in that
list.
2009-03-09 16:58:47 -04:00
Georgi Kodinov
e546077ee8 Bug #43354: Use key hint can crash server in explain extended query
The copy of the original arguments of a aggregate function was not
initialized until after fix_fields().
Sometimes (e.g. when there's an error processing the statement)
the print() can be called with no corresponding fix_fields() call.
      
Fixed by adding a check if the Item is fixed before using the arguments
copy.
2009-03-11 14:10:44 +02:00
Matthias Leich
62adf8953a Merge of fix into actual tree 2009-03-10 18:21:35 +01:00
Patrick Crews
1c39d5ff8f Fix of failing funcs_1 tests.
Changes are due to changes in precision.
Re-record of .result files to account for new server precision.
2009-03-09 11:32:07 -04:00
Matthias Leich
7c4e55cb8a Merge of fix for Bug#42003 and Bug#43114 into more actual GCA tree
modifications according to the reviews are included
2009-03-05 14:35:03 +01:00
He Zhenxing
52a07e9b74 BUG#37051 Replication rules not evaluated correctly
Backporting patch to 5.0.
2009-03-05 18:10:44 +08:00
Matthias Leich
b771483b85 Last slice of fix for Bug#42003 tests missing the disconnect of connections <> default
+ Fix for Bug#43114 wait_until_count_sessions too restrictive, random PB failures
+ Removal of a lot of other weaknesses found
+ modifications according to review
2009-03-03 21:34:18 +01:00
Bernt M. Johnsen
6ed0ee25be Merged from gca branch (bug 42711) 2009-03-02 14:26:57 +01:00
Bernt M. Johnsen
2944bb3618 Prepared BUG#42711 for push 2009-03-02 11:03:13 +01:00
Staale Smedseng
be853aeced Commit after merge from 5.0-bugteam 2009-02-27 18:07:58 +02:00
Staale Smedseng
c0fb3df0d0 Recommit for merging and pushing 2009-02-27 16:11:15 +02:00
Georgi Kodinov
4d2f047e95 Bug #41610: key_infix_len can be overwritten causing some group by queries to
return no rows

The algorithm of determining the best key for loose index scan is doing a loop
over the available indexes and selects the one that has the best cost.
It retrieves the parameters of the current index into a set of variables.
If the cost of using the current index is lower than the best cost so far it 
copies these variables into another set of variables that contain the 
information for the best index so far.
After having checked all the indexes it uses these variables (outside of the 
index loop) to create the table read plan object instance.
The was a single omission : the key_infix/key_infix_len variables were used 
outside of the loop without being preserved in the loop for the best index 
so far.
This causes these variables to get overwritten by the next index(es) checked.
Fixed by adding variables to hold the data for the current index, passing 
the new variables to the function that assigns values to them and copying 
the new variables into the existing ones when selecting a new current best 
index.
To avoid further such problems moved the declarations of the variables used 
to keep information about the current index inside the loop's compound 
statement.
2009-02-27 15:25:06 +02:00
Patrick Crews
fb78405625 Bug#41893: Removal of trailing space noise causing Pushbuild failure. 2009-02-27 15:00:49 +02:00
Patrick Crews
88b906ac21 merge. 2009-02-27 10:45:19 +02:00
Georgi Kodinov
494a764174 addendum to the fix for bug #41354: fixed the error returned by SELECT * 2009-02-27 09:41:39 +02:00
Georgi Kodinov
b337ac28d0 Bug #41354: Access control is bypassed when all columns
of a view are selected by * wildcard

Backported a part of the fix for 36086 to 5.0
2009-02-26 19:00:44 +02:00
Patrick Crews
bc4df2f65d Bug#41893 - main.variables mysql-test fails if new variable like '%alloc%' is added.
Fixed a typo in the bug fix patch.
2009-02-26 18:00:47 +02:00
Patrick Crews
1062119af5 Bug#41893: main.variables mysql-test fails if new variable like '%alloc%' is added.
Started fix in 5.0 as the same issue is here.
Revising queries used given what appears to be the scope of this test to only select the manipulated variables.
Added tests for values that are / are not multiples of 1024 to test rounding / constraints.
This behavior is not currently documented (docs bug has been opened)
2009-02-26 10:57:33 +02:00
Bernt M. Johnsen
f38e402d79 Merged from gca-branch (bug 43111) 2009-02-25 14:52:33 +01:00
Sergey Glukhov
8587e4f989 Bug#40345 MySQLDump prefixes view name with database name when view references other db
print compact view name if the view belongs to the current database
2009-02-25 15:44:50 +04:00
Bernt M. Johnsen
99585ae5e8 Prepare for push of BUG#43111 2009-02-25 11:37:30 +01:00
Sergey Glukhov
412f1d3791 Bug#30305 Create routine in wrong context in SHOW PRIVILEGES
Changed context of Create routine to Databases.
2009-02-25 14:20:20 +04:00
Ramil Kalimullin
71943e3628 Fix for bug#42009: SELECT into variable gives different results to direct SELECT
Problem: storing "SELECT ... INTO @var ..." results in variables we used val_xxx()
methods which returned results of the current row. 
So, in some cases (e.g. SELECT DISTINCT, GROUP BY or HAVING) we got data
from the first row of a new group (where we evaluate a clause) instead of
data from the last row of the previous group.

Fix: use val_xxx_result() counterparts to get proper results.
2009-02-24 18:47:12 +04:00