Commit graph

57441 commits

Author SHA1 Message Date
Sergey Glukhov
9379a4e0c0 5.0-bugteam->5.1-bugteam merge 2009-06-04 10:54:23 +05:00
Sergey Glukhov
1a1ffe7312 Bug#44798 MySQL engine crashes when creating stored procedures with execute_priv=N
The crash happens because of uninitialized
lex->ssl_cipher, lex->x509_subject, lex->x509_issuer variables.
The fix is to add initialization of these variables for
stored procedures&functions.
2009-06-04 10:28:45 +05:00
Alexander Nozdrin
0f742616ce Fix compilation failures: get rid of C++ specifics in C-code. 2009-06-03 15:18:12 +04:00
Satya B
908db2649f merge to 5.1-bugteam branch 2009-06-02 18:11:40 +05:30
Satya B
e0beb7a935 Followup Fix for BUG#10206 - InnoDB: Transaction requiring Max_BinLog_Cache_size > 4GB
always rollsback.

There is failure on pushbuild machines which are using old compilers complaining about
ULLONG_MAX declaration. Changing this to ULONGLONG_MAX to solve the problem.
2009-06-02 18:07:47 +05:30
Mattias Jonsson
fc4a287a1c merge into mysql-5.1-bugteam 2009-06-02 13:18:30 +02:00
Mattias Jonsson
9d23012269 Bug#32430:'show innodb status' causes errors Invalid (old?) table
or database name in logs

Problem was that InnoDB used filenam_to_tablename,
which do not handle partitions (due to the '#' in
the filename).

Solution is to add a new function for explaining
what the filename means: explain_filename.
It expands the database, table, partition and subpartition
parts and uses errmsg.txt for localization.
It also converts from my_charset_filename to system_charset_info
(i.e. human readable form for non ascii characters).
  http://lists.mysql.com/commits/70370

2773 Mattias Jonsson	2009-03-25

It has three different output styles.

NOTE: This is the server side ONLY part (introducing the explain_filename
function). There will be a patch for InnoDB using this function to solve
the bug.
2009-06-02 11:07:17 +02:00
Satya B
2fb243ea84 merge to 5.1-bugteam 2009-06-02 14:10:21 +05:30
Satya B
6999f40d75 merge to 5.1-bugteam tree 2009-06-02 13:44:41 +05:30
Sergey Glukhov
9800aa29e3 5.0-bugteam->5.1-bugteam merge 2009-06-02 12:00:37 +05:00
Sergey Glukhov
83ec6e0592 Bug#45152 crash with round() function on longtext column in a derived table
The crash happens due to wrong max_length value which is set on
Item_func_round::fix_length_and_dec() stage. The value is set to
args[0]->max_length which is too big in case of LONGTEXT(LONGBLOB) fields.
The fix is to set max_length using float_length() function.
2009-06-02 11:38:13 +05:00
Alexey Kopytov
13f7a81b37 Automerge. 2009-06-01 16:44:48 +04:00
Alexey Kopytov
00c5696391 Automerge. 2009-06-01 16:43:16 +04:00
Alexey Kopytov
8787989473 Automerge. 2009-06-01 16:42:24 +04:00
Alexey Kopytov
bdcce95f13 Manual merge. 2009-06-01 16:00:38 +04:00
Narayanan V
8880590158 Bug#45197 cp1250 character set with IBMDB2I generates 2027 error
Running a SELECT query over an IBMDB2I table with a cp1250 character set
was producing an error 2027 (ibmdb2i error 2027: Error converting single-byte
sort sequence to UCS-2).

The QMY_DESCRIBE_RANGE API was returning error 2027 to the storage engine
because the CCSID used for a cp1250 column (870) does not match the CCSID
used by the DB2 sort sequences associated with cp1250_* collations (1153).
This was because the storage engine relies on a set of system APIs to
determine which CCSID value most closely matches a particular MySQL
character set. However, in the case of cp1250, the system is returning
CCSID 870, which does not have a codepoint for the euro symbol, making it
an incorrect match.

This patch overrides the selection of a compatible CCSID to always return
1153 for cp1250.
2009-06-01 12:52:10 +05:30
He Zhenxing
4a9a103d62 Merge 5.0-bt to 5.1-bt 2009-05-31 20:16:15 +08:00
He Zhenxing
83bc6db361 post fix of test result 2009-05-31 20:10:59 +08:00
He Zhenxing
d97e568831 Auto merge 2009-05-31 17:16:12 +08:00
He Zhenxing
e1fc2784ad Merge BUG#41948 2009-05-31 17:15:35 +08:00
He Zhenxing
6f84951044 Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
He Zhenxing
c0fde0eda7 BUG#43263 BEGIN skipped in some replicate-do-db cases
BEGIN/COMMIT/ROLLBACK was subject to replication db rules, and
caused the boundary of a transaction not recognized correctly 
when these queries were ignored by the rules.

Fixed the problem by skipping replication db rules for these
statements.
2009-05-31 11:26:58 +08:00
Davi Arnaut
0c3439c507 MySQL 5.0 backport of Chad Miller's patch for Bug#34309:
Bug#34309: '_PC' macro redefinition

For reasons that are now a mystery, we had defined a CPP symbol to
help ancient compilers work better (in some way that's lost to history).
This interferes with at least one modern compiler.

Now, don't define the _PC symbol.  Those other underscore-leading
symbols are suspect also, but at least the names aren't inscrutable.
Let's leave them for now.
2009-05-30 12:38:36 -03:00
He Zhenxing
0793eec018 BUG#41948 Query_log_event constructor needlessly contorted
Make the caller of Query_log_event, Execute_load_log_event
constructors and THD::binlog_query to provide the error code
instead of having the constructors to figure out the error code.
2009-05-30 21:32:28 +08:00
Tatiana A. Nurnberg
81eb33838b auto-merge 2009-05-29 18:49:35 +02:00
Tatiana A. Nurnberg
d5b22e1692 auto-merge 2009-05-29 17:58:45 +02:00
Tatiana A. Nurnberg
41abbf9bd2 auto-merge 2009-05-29 17:24:30 +02:00
Kristofer Pettersson
049f998f33 Automerge 2009-05-29 17:13:08 +02:00
Kristofer Pettersson
dc4feaa4cb Automerge 2009-05-29 16:25:22 +02:00
Tatiana A. Nurnberg
7b4c697953 Bug#39200: optimize table does not recognize ROW_FORMAT=COMPRESSED
When doing ALTER TABLE, we forgot to point out that we actually have
ROW_FORMAT information (from the original table), so we dropped to
"sensible defaults". This affects both ALTER TABLE and OPTIMIZE TABLE
which may fall back on ALTER TABLE for InnoDB.

We now flag that we do indeed know the row-type, thereby preserving
compression-type etc.

No .test in 5.1 since we'd need a reasonable new plugin from InnoDB to
show this properly; in higher versions, maria can demonstrate this.
2009-05-29 16:22:24 +02:00
Alexey Kopytov
f1fb5aa2d2 Automerge 2009-05-29 18:08:16 +04:00
Kristofer Pettersson
a645555432 Bug#44658 Create procedure makes server crash when user does not have ALL privilege
MySQL crashes if a user without proper privileges attempts to create a procedure.

The crash happens because more than one error state is pushed onto the Diagnostic
area. In this particular case the user is denied to implicitly create a new user
account with the implicitly granted privileges ALTER- and EXECUTE ROUTINE.

The new account is needed if the original user account contained a host mask.
A user account with a host mask is a distinct user account in this context.
An alternative would be to first get the most permissive user account which
include the current user connection and then assign privileges to that
account. This behavior change is considered out of scope for this bug patch.

The implicit assignment of privileges when a user creates a stored routine is a
considered to be a feature for user convenience and as such it is not
a critical operation. Any failure to complete this operation is thus considered
non-fatal (an error becomes a warning).

The patch back ports a stack implementation of the internal error handler interface.
This enables the use of multiple error handlers so that it is possible to intercept
and cancel errors thrown by lower layers. This is needed as a error handler already
is used in the call stack emitting the errors which needs to be converted.
2009-05-29 15:37:54 +02:00
Narayanan V
90939fc50d merging with mysql-5.1-bugteam tree 2009-05-29 18:36:58 +05:30
Narayanan V
5a64492333 Bug#44811 Tests with utf8 charset fail with ibmdb2i on 64bit MySQL
wmemset was being used to fill the row buffers.
wmemset was intended  to  fill the buffer with
16-bit UCS2 pad values.  However,  the  64-bit
version of wmemset uses 32-bit wide characters
and thus filled the buffer incorrectly. In some
cases, the null  byte  map would be overwritten,
causing ctype_utf8.test and ibmdb2i_rir.test to
fail, giving the error message CPF5035.

This patch eliminates the use of wmemset to fill
the row buffer. wmemset has  been  replaced with
memset16, which always  fills  memory with 16-bit
values.
2009-05-29 15:01:00 +05:30
Sergey Glukhov
9e86abfe2b 5.0-bugteam->5.1-bugteam merge 2009-05-28 16:21:41 +05:00
Sergey Glukhov
14eb98dd8a test case fix 2009-05-28 16:19:49 +05:00
Sergey Glukhov
871ea8a735 5.0-bugteam->5.1-bugteam merge 2009-05-28 13:40:09 +05:00
Sergey Glukhov
394f6ba478 Bug#37268 'binary' character set makes CLI-internal commands case sensitive
The fix is to use case insensitive collation
for mysql client command search.
2009-05-28 13:34:30 +05:00
Alexey Kopytov
b0eb222a66 Automerge. 2009-05-28 09:19:26 +04:00
Georgi Kodinov
beb0e1a314 merged 5.1-bugteam to working tree 2009-05-27 18:22:57 +03:00
Georgi Kodinov
9f74930de6 merged 5.0-bugteam to 5.1-bugteam 2009-05-27 18:19:44 +03:00
Georgi Kodinov
7b05c2350a merged 5.0-bugteam 2009-05-27 18:14:09 +03:00
Georgi Kodinov
73cf0d815c automerge 2009-05-27 17:09:09 +03:00
Tatiana A. Nurnberg
7eeff66cba Bug#34861: mysqldump with --tab gives weird output for triggers.
mysqldump --tab still dumped triggers to stdout rather than to
individual tables.

We now append triggers to the .sql file for the corresponding
table.

--events and --routines correspond to a database rather than a
table and will still go to stdout with --tab unless redirected
with --result-file (-r).
2009-05-27 15:16:21 +02:00
Georgi Kodinov
bbe29a00d3 Bug #38159: Function parsing problem generates misleading error message
Added a more detailed error message on calling an ambiguous missing function.
2009-05-27 16:05:29 +03:00
Sergey Glukhov
a6ccad60b4 5.0-bugteam->5.1-bugteam merge 2009-05-27 15:42:19 +05:00
Sergey Glukhov
cb07978da9 Bug#41212 crash after race condition between merge table and table_cache evictions
On 64-bit Windows: querying MERGE table with keys may cause
server crash.The problem is generic and may affect any statement
accessing MERGE table cardinality values.
When MERGE engine was copying cardinality statistics, it was
using incorrect size of element in cardinality statistics array
(sizeof(ptr)==8 instead of sizeof(ulong)==4), causing access
of memory beyond of the allocated bounds.
2009-05-27 15:34:21 +05:00
Alexey Kopytov
2df531fdc4 Bug #44767: invalid memory reads in password() and
old_password() functions   
The PASSWORD() and OLD_PASSWORD() functions could lead to   
memory reads outside of an internal buffer when used with BLOB   
arguments.   
  
String::c_ptr() assumes there is at least one extra byte  
in the internally allocated buffer when adding the trailing  
'\0'.  This, however, may not be the case when a String object  
was initialized with externally allocated buffer.  
  
The bug was fixed by adding an additional "length" argument to  
make_scrambled_password_323() and make_scrambled_password() in  
order to avoid String::c_ptr() calls for  
PASSWORD()/OLD_PASSWORD().  
  
However, since the make_scrambled_password[_323] functions are  
a part of the client library ABI, the functions with the new  
interfaces were implemented with the 'my_' prefix in their  
names, with the old functions changed to be wrappers around  
the new ones to maintain interface compatibility.
2009-05-27 14:20:57 +04:00
Alexey Kopytov
23c0cf38bf Bug #44638: mysql_upgrade, mysqlcheck output instance unclear
Dump all connection-related arguments when running mysqlcheck
from mysql_upgrade.

No test case, since the output depends on the test suite
configuration and platform.
2009-05-27 12:24:25 +04:00
Sergey Glukhov
7dc42f175f Bug#43940 64-bit windows myisamchk doesn't support key_buffer_size > 4G
The fix is to allow myisamchk to use >4G key_buffer_size on win64
2009-05-27 13:11:28 +05:00