1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-21 11:01:08 +03:00
Commit Graph

71796 Commits

Author SHA1 Message Date
Andrei Elkin
ce9e2b6b96 null-merge from 5.1. 2012-07-10 13:56:06 +03:00
Andrei Elkin
6e8c7c2f24 merge from 5.5 repo. 2012-07-10 13:53:19 +03:00
Andrei Elkin
3c50bfce48 merge from 5.1 repo. 2012-07-10 13:51:50 +03:00
Bjorn Munch
68728c6976 null upmerge 2012-07-10 12:01:09 +02:00
Andrei Elkin
04a244138e merge from 5.1 repo. 2012-07-10 13:00:03 +03:00
Bjorn Munch
bc4a83d5b4 mysql_client_fw.c was not included in make dist 2012-07-10 11:57:24 +02:00
Bjorn Munch
8e6062cc89 null upmerge 2012-07-10 11:51:18 +02:00
Bjorn Munch
bd079618a2 mysql_client_fw.c was not included in make dist 2012-07-10 11:48:43 +02:00
Andrei Elkin
f62bca39cb merge from 5.1 repo. 2012-07-10 12:48:23 +03:00
Sujatha Sivakumar
94d68d30bf merge from 5.1 to 5.5 2012-07-10 14:37:35 +05:30
Sujatha Sivakumar
cf858b71ce BUG#11762670:MY_B_WRITE RETURN VALUE IGNORED
Problem:
=======
The return value from my_b_write is ignored by: `my_b_write_quoted',
`my_b_write_bit',`Query_log_event::print_query_header'

Most callers of `my_b_printf' ignore the return value. `log_event.cc' 
has many calls to it. 

Analysis:
========
`my_b_write' is used to write data into a file. If the write fails it
sets appropriate error number and error message through my_error()
function call and sets the IO_CACHE::error == -1.
`my_b_printf' function is also used to write data into a file, it
internally invokes my_b_write to do the write operation. Upon
success it returns number of characters written to file and on error
it returns -1 and sets the error through my_error() and also sets
IO_CACHE::error == -1.  Most of the event specific print functions
for example `Create_file_log_event::print', `Execute_load_log_event::print'
etc are the ones which make several calls to the above two functions and
they do not check for the return value after the 'print' call. All the above 
mentioned abuse cases deal with the client side.

Fix:
===
As part of bug fix a check for IO_CACHE::error == -1 has been added at 
a very high level after the call to the 'print' function.  There are 
few more places where the return value of "my_b_write" is ignored
those are mentioned below.

+++ mysys/mf_iocache2.c    2012-06-04 07:03:15 +0000
@@ -430,7 +430,8 @@
           memset(buffz, '0', minimum_width - length2);
         else
           memset(buffz, ' ', minimum_width - length2);
-        my_b_write(info, buffz, minimum_width - length2);

+++ sql/log.cc	2012-06-08 09:04:46 +0000
@@ -2388,7 +2388,12 @@
     {
       end= strxmov(buff, "# administrator command: ", NullS);
       buff_len= (ulong) (end - buff);
-      my_b_write(&log_file, (uchar*) buff, buff_len);

At these places appropriate return value handlers have been added.
2012-07-10 14:23:17 +05:30
Bjorn Munch
556a508f4a mysql_client_test did not build within limbysqld/examples 2012-07-10 10:07:46 +02:00
Bjorn Munch
fcc53fa77c mysql_client_test did not build within limbysqld/examples 2012-07-10 10:04:57 +02:00
Bjorn Munch
7017d5720b Fixed compile error in mysql_client_test using gcc 2012-07-09 16:39:29 +02:00
Bjorn Munch
db33b4994d Fixed compile error in mysql_client_test using gcc 2012-07-09 16:36:50 +02:00
Bjorn Munch
1c24089278 Refactor mysql_client_test.c into a framework part and a test part 2012-07-09 15:14:05 +02:00
Bjorn Munch
83e3a4c9ef Refactor mysql_client_test.c into a framework part and a test part 2012-07-09 15:10:07 +02:00
mysql-builder@oracle.com
c2b8dceaae 2012-07-06 18:53:13 +03:00
mysql-builder@oracle.com
2541041a45 2012-07-06 15:30:53 +03:00
Andrei Elkin
8080b0ef22 merge from 5.5 repo. 2012-07-06 14:06:04 +03:00
Sunanda Menon
42de9951fb Merge from mysql-5.5.25a-release 2012-07-06 11:35:46 +02:00
Andrei Elkin
298202f2fd merge bug14275000 fixes to 5.5: sql/log_event.h. 2012-07-05 23:53:07 +03:00
Andrei Elkin
5b6d95e1f0 merge bug14275000 fixes to 5.5 2012-07-05 16:14:47 +03:00
Andrei Elkin
dbd63d008f Bug#14275000
Fixes for BUG11761686 left a flaw that managed to slip away from testing.
Only effective filtering branch was actually tested with a regression test
added to rpl_filter_tables_not_exist.
The reason of the failure is destuction of too early mem-root-allocated memory 
at the end of the deferred User-var's do_apply_event().

Fixed with bypassing free_root() in the deferred execution branch.
Deallocation of created in do_apply_event() items is done by the base code
through THD::cleanup_after_query() -> free_items() that the parent Query
can't miss.
2012-07-05 14:37:48 +03:00
Georgi Kodinov
42644a0746 Bug #13889741: HANDLE_FATAL_SIGNAL IN _DB_ENTER_ |
HANDLE_FATAL_SIGNAL IN STRNLEN

Fixed the following bounds checking problems :
1. in check_if_legal_filename() make sure the null terminated
string is long enough before accessing the bytes in it.
Prevents pottential read-past-buffer-end
2. in my_wc_mb_filename() of the filename charset check
for the end of the destination buffer before sending single
byte characters into it.
Prevents write-past-end-of-buffer (and garbaling stack in
the cases reported here) errors.

Added test cases.
2012-07-05 13:41:16 +03:00
Georgi Kodinov
58e78da60f fixed a missing break 2012-07-05 10:18:18 +03:00
Georgi Kodinov
31a9208bd0 Bug #12998841: libmysql divulges plaintext password upon request in 5.5
1. Clear text password client plugin disabled by default.
2. Added an environment variable LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN, that
when set to something starting with '1', 'Y' or 'y' will enable the clear
text
plugin for all connections.
3. Added a new mysql_options() option : MYSQL_ENABLE_CLEARTEXT_PLUGIN
that takes an my_bool argument. When the value of the argument is non-zero
the clear text plugin is enabled for this connection only.
4. Added an enable-cleartext-plugin config file option that takes a numeric

argument. If the numeric value of the numeric argument is non-zero the
clear
text plugin is enabled for the connection
5. Added a boolean command line option "--enable_cleartext_plugin" to
mysql, mysqlslap and mysqladmin. When specified it will call mysql_options
with the effect of #3
6. Added a new CLEARTEXT option to the connect command in mysqltest.
When specified it will enable the cleartext plugin for usage.
7. Added test cases and updated existing ones that need the clear text
plugin.
2012-07-05 09:55:20 +03:00
Georgi Kodinov
e6f0b97b50 Bug #11753490: 44939: sql dumps containing broad views fail when
executing

The problem is that mysql lacks information about the objects a view
depends on so it can't dump views and tables in the proper order.
Thus it needs to create "stand-in" myisam tables for each view while 
dumping the tables that it later drops and replaces with the actual view
view definition.
But since views can have much more columns than an actual table creating
these stand-in tables may be problematic.

There's no way to portably find out how many columns an mysiam table
can have. It's a complicated formula depending on internal server constants.
Thus we can't have a reliable error check without repeating the logic and 
the formula inside mysqldump.

1. Changed the type of the columns of the stand-in tables mysqldump
makes to satisfy view dependencies from the original type to smallint 
to save on row space.

2. Added a warning on the mysqldump's standard error for a possible 
problems replaying the dump file if the columns of a view exceed 1000.

3. Added a test case.
2012-07-04 17:48:58 +03:00
Rohit Kalhans
623f930a5d upmerge from mysql-5.1 to mysql-5.5 2012-07-03 18:08:31 +05:30
Rohit Kalhans
176d6b1dca BUG#11762667:MYSQLBINLOG IGNORES ERRORS WHILE WRITING OUTPUT
This is a followup patch for the bug enabling the test
i_binlog.binlog_mysqlbinlog_file_write.test
this was disabled in mysql trunk and mysql 5.5 as in the release
build mysqlbinlog was not debug compiled whereas the mysqld was.
Since have_debug.inc script checks only for mysqld to be debug
compiled, the test was not being skipped on release builds.

We resolve this problem by creating a new inc file 
mysqlbinlog_have_debug.inc which checks exclusively for mysqlbinlog
to be debug compiled. if not it skips the test.
2012-07-03 18:00:21 +05:30
Mayank Prasad
9f4f06996b Bug#13417440 : 63340: ARCHIVE FILE IO NOT INSTRUMENTED
Details:
 - Modified test case to make sure its run for all and not only
   for archive Storage Engine.
2012-07-03 09:55:51 +05:30
Joerg Bruehe
3941355dcc Added some extra optional path to test suites. 2012-07-02 13:09:33 +02:00
Ashish Agarwal
f710be75ac BUG#13555854: CHECK AND REPAIR TABLE SHOULD BE MORE ROBUST [1]
ISSUE: Incorrect key file. Key file is corrupted,
       Reading incorrect key information (keyseg)
       from index file. Key definition in .MYI
       and .FRM file differs. Starting pointer
       to read the keyseg information is changed
       to a value greater than the pack_reclength.
       Memcpy tries to read keyseg information from
       unallocated memory which causes the crash.

SOLUTION: One more check added to compare the
          the key definition in .MYI and .FRM
          file. If the definition differ, server
          produces an error.
2012-07-02 15:20:23 +05:30
Gleb Shchepa
196623b839 auto-merge 2012-06-29 18:38:29 +04:00
Gleb Shchepa
0b847cd4de minor update to make MSVS happy 2012-06-29 18:24:43 +04:00
Georgi Kodinov
26f0c1fd4b merge bug#13708485 5.1->5.5 2012-06-29 16:54:55 +03:00
Bjorn Munch
72c642c097 Fix mysql_plugin test to handle version XXa 2012-06-29 14:19:31 +02:00
Jon Olav Hauglid
050048462c Bug#14238406 NEW COMPILATION WARNINGS WITH GCC 4.7 (-WERROR=NARROWING)
Manual merge from mysql-5.1 to mysql-5.5
2012-06-29 13:36:01 +02:00
Jon Olav Hauglid
4358669767 Bug#14238406 NEW COMPILATION WARNINGS WITH GCC 4.7 (-WERROR=NARROWING)
This patch fixes various compilation warnings of the type
"error: narrowing conversion of 'x' from 'datatype1' to
'datatype2'
2012-06-29 13:25:57 +02:00
Georgi Kodinov
ca3e45dce1 Bug #12910665: AUTH-PLUGIN-DATA-LEN NOT TESTED FOR VALIDITY BY THE
CLIENT

Added a check for a negative second part of the scramble length.
2012-06-29 14:04:24 +03:00
Georgi Kodinov
8b75496856 merge 2012-07-05 14:41:04 +03:00
Gleb Shchepa
47c1ce35e2 manual merge (WL6219) 2012-06-29 14:12:21 +04:00
Gleb Shchepa
ba966cff98 Backport of the deprecation warning from WL#6219: "Deprecate and remove YEAR(2) type"
Print the warning(note):

 YEAR(x) is deprecated and will be removed in a future release. Please use YEAR(4) instead

on "CREATE TABLE ... YEAR(x)" or "ALTER TABLE MODIFY ... YEAR(x)", where x != 4
2012-06-29 12:55:45 +04:00
Yasufumi Kinoshita
5a2ae8f4ee Bug#14251529 : FIX FOR BUG 13704145 CREATES POSSIBLE RACE CONDITION
make buf_read_page_low() to treat DB_TABLESPACE_DELETED error correctly
rb#1129 approved by Inaam
2012-06-29 12:04:44 +09:00
Joerg Bruehe
62884afab5 Bug#65745: UPDATE ON INNODB TABLE ENTERS RECURSION
Introduction of cost based decision on filesort vs index for UPDATE
statements changed detection of the fact that the index used to scan the
table is being updated. The new design missed the case of index merge
when there is no single index to check. That was worked until a recent
change in InnoDB after which it went into infinite recursion if update of
the used index wasn't properly detected.

The fix consists of 'used key being updated' detection code from 5.1.

Patch done by Evgeny Potemkin <evgeny.potemkin@oracle.com>
and transferred into the 5.5.25a release build by Joerg Bruehe.

This changeset is the difference between MySQL 5.5.25 and 5.5.25a.
2012-06-28 20:03:53 +02:00
Georgi Kodinov
428ff7f8a0 Bug #13708485: malformed resultset packet crashes client
Several fixes :

* sql-common/client.c
Added a validity check of the fields metadata packet sent 
by the server.
Now libmysql will check if the length of the data sent by
the server matches what's expected by the protocol before
using the data.

* client/mysqltest.cc
Fixed the error handling code in mysqltest to avoid sending
new commands when the reading the result set failed (and 
there are unread data in the pipe).

* sql_common.h + libmysql/libmysql.c + sql-common/client.c
unpack_fields() now generates a proper error when it fails.
Added a new argument to this function to support the error 
generation.

* sql/protocol.cc
Added a debug trigger to cause the server to send a NULL
insted of the packet expected by the client for testing 
purposes.
2012-06-28 18:38:55 +03:00
Evgeny Potemkin
0f7888f7ca Bug#14248833: UPDATE ON INNODB TABLE ENTERS RECURSION
Introduction of cost based decision on filesort vs index for UPDATE
statements changed detection of the fact that the index used to scan the
table is being updated. The new design missed the case of index merge
when there is no single index to check. That was worked until a recent
change in InnoDB after which it went into infinite recursion if update of
the used index wasn't properly detected.

The fix consists of 'used key being updated' detection code from 5.1.
2012-06-28 16:53:45 +04:00
Norvald H. Ryeng
b128b1d424 Null merge 5.1->5.5. 2012-06-28 14:36:26 +02:00
Norvald H. Ryeng
537f770633 Merge. 2012-06-28 14:34:49 +02:00
Norvald H. Ryeng
52626ab181 Merge 2012-06-28 14:07:21 +02:00