1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-15 11:08:40 +03:00
Commit Graph

20681 Commits

Author SHA1 Message Date
Tor Didriksen
e57beba62d Bug#11829785 EXPLAIN EXTENDED CRASH WITH RIGHT OUTER JOIN, SUBQUERIES
This is a backport of
Bug #46860 Crash/segfault using EXPLAIN EXTENDED on query using UNION in subquery.


mysql-test/r/explain.result:
  Remove the extended Note, since explain returns error.
  New test case.
mysql-test/r/func_gconcat.result:
  Remove the extended Note, since explain returns error.
mysql-test/r/subselect3.result:
  Remove the extended Note, since explain returns error.
mysql-test/t/explain.test:
  New test case.
sql/sql_parse.cc:
  Skip the extended description if we have an error.
2011-03-24 11:27:11 +01:00
Georgi Kodinov
54461b0699 Bug #11766306: 59393: have_innodb=yes when mysqld started with --skip-innodb
Initialized correctly the have_innodb variable so that when the plugin is not initialized it
stays "disabled" instead of "yes".
Test suite added.
2011-03-23 19:03:42 +02:00
Bjorn Munch
139844ccef merge from 5.5 main 2011-03-22 15:40:25 +01:00
Bjorn Munch
761ba8349d merge from 5.1 main 2011-03-22 15:38:41 +01:00
Sunanda Menon
24934b254c merge 2011-03-22 14:34:04 +01:00
Alexander Nozdrin
7117e0635c A patch for Bug#11763413 (56115: SELECT doesn't work in
prepared statements with cursor protocol).

The problem was a bug in Materialized-cursor implementation.
Materialized_cursor::open() called send_result_metadata()
with items pointing to already closed table.

The fix is to send metadata when the table is still open.

NOTE: this is a "partial" fix: metadata are different with
and without --cursor-protocol, but that's a different large
problem, one indication of which is reported as Bug 24176.
2011-03-22 14:48:56 +03:00
Mayank Prasad
b855739941 merge from 5.1 to 5.5 for bug#11751148 2011-03-21 21:39:40 +05:30
Mayank Prasad
c8b724b2aa Bug #11751148 : show events shows events in other schema
Issue:
------
Due to prefix match, database like 'k' was matching with 'ka' and events of 'ka' we getting displayed for 'show event' of 'k'.

Resolution:
-----------
Scan for listing of events in a schema is made to be done on exact match of database (schema) name instead of just prefix.

mysql-test/r/events_bugs.result:
  modified expected file with the expected results.
mysql-test/t/events_bugs.test:
  added a test case to reproduce the scenario.
sql/event_db_repository.cc:
  Scan for schema name is made to be done on exact db name match.
2011-03-21 21:32:47 +05:30
Georgi Kodinov
35a1a22401 merge mysql-5.5->mysql-5.5-security 2011-03-21 16:22:13 +02:00
Georgi Kodinov
8cbc26c6f3 merge mysql-5.1->mysql-5.1-security 2011-03-21 16:01:40 +02:00
Ramil Kalimullin
1077c85fe3 Fix for bug#51875/#11759554 backported from mysql-5.1. 2011-03-21 09:21:14 +03:00
Georgi Kodinov
3972755fd9 merge 2011-03-18 17:00:13 +02:00
Georgi Kodinov
dd0823cc03 Bug # 11766011: mysql.user.authentication_string column causes
configuration wizard to fail

Made the fields mysql.user.plugin and mysql.user.authentication_string
nullable to conform with some older clients doing inserts instead of 
using the commands.
2011-03-18 16:16:17 +02:00
Tor Didriksen
8ec4bad148 local merge 2011-03-18 13:38:18 +01:00
Georgi Kodinov
ae8255e7f6 Bug #11766854 addendum :
Fixed test suite failures when the auth plugin is not compiled in.
2011-03-18 10:31:39 +01:00
Georgi Kodinov
4bb5d2dce4 Bug #11766854: 60075: MYSQL_LOAD_CLIENT_PLUGIN DOESN'T CLEAR ERROR
Added the cleanup code.
Extended mysql_client_test to take --plugin-dir and --default_auth.
Added a C test case.
2011-03-17 15:52:49 +02:00
Nirbhay Choubey
d82d0f52c6 BUG#11766184 - 59234 : cmdline clients crash --defaults-extra-file
with no .cnf or .ini extension.

Fix for this bug was pushed as part of Bug#11765482.


mysql-test/r/mysqladmin.result:
  Added test case for Bug#11766184.
mysql-test/t/mysqladmin.test:
  Added test case for Bug#11766184.
2011-03-17 18:01:06 +05:30
Georgi Kodinov
892e6fb0dc Fixed the test cleanup code post-merge 2011-03-17 14:07:18 +02:00
Georgi Kodinov
9c1f2f9d94 merged mysql-5.5->mysql-5.5-security 2011-03-17 13:02:19 +02:00
Nirbhay Choubey
0216713de6 Merge from mysql-5.1 -> mysql-5.5. 2011-03-17 16:31:31 +05:30
Georgi Kodinov
97adc216e8 merge 5.1->5.1-security 2011-03-17 13:00:09 +02:00
Nirbhay Choubey
99bf8c1991 Minor fix in mysqldump test. 2011-03-17 16:28:16 +05:30
unknown
753c406994 Merge from mysql-5.5.10-release 2011-03-16 15:11:20 +01:00
Mattias Jonsson
d53906e387 Bug#11746819:
Bug#28928: UNIX_TIMESTAMP() should be considered unary monotonic by partition pruning

Made UNIX_TIMESTAMP MONOTONIC_INCREASING when it have TIMESTAMP argument (only).
2011-03-16 11:59:01 +01:00
Bjorn Munch
160a26dafe upmerge 11762804 2011-03-15 16:11:17 +01:00
Bjorn Munch
ebba068d26 Bug #11762804 55442: MYSQLD DEBUG CRASHES WHILE RUNNING MYISAM_CRASH_BEFORE_FLUSH_KEYS.TEST
This will cause affected tests to skip if CrashReporter would popup
Found 5 tests that needed modification
2011-03-15 16:06:59 +01:00
Georgi Kodinov
ace88ca2dd auto-merge 2011-03-15 16:56:11 +02:00
Dmitry Shulga
feb6d22328 Manual merge from mysql-5.1 for Bug#11764168 (56976: Severe denial
of service in prepared statements).

sql/sql_prepare.cc:
  At mysql_stmt_get_longdata(): instead of pushing an internal
  error handler (as done in 5.1-tree) we save, set and restore
  the statement's diagnostics area and warning info.
2011-03-15 18:57:36 +06:00
Dmitry Shulga
9320dca994 Fixed Bug#11764168 "56976: SEVERE DENIAL OF SERVICE IN PREPARED STATEMENTS".
The problem was that server didn't check resulting size of prepared
statement argument which was set using mysql_send_long_data() API.
By calling mysql_send_long_data() several times it was possible
to create overly big string and thus force server to allocate
memory for it. There was no way to limit this allocation.

The solution is to add check for size of result string against
value of max_long_data_size start-up parameter. When intermediate
string exceeds max_long_data_size value an appropriate error message
is emitted.

We can't use existing max_allowed_packet parameter for this purpose
since its value is limited by 1GB and therefore using it as a limit
for data set through mysql_send_long_data() API would have been an
incompatible change. Newly introduced max_long_data_size parameter
gets value from max_allowed_packet parameter unless its value is
specified explicitly. This new parameter is marked as deprecated
and will be eventually replaced by max_allowed_packet parameter.
Value of max_long_data_size parameter can be set only at server
startup.


mysql-test/t/variables.test:
  Added checking for new start-up parameter max_long_data_size.
sql/item.cc:
  Added call to my_message() when accumulated string exceeds
  max_long_data_size value. my_message() calls error handler
  that was installed in mysql_stmt_get_longdata before call
  to Item_param::set_longdata.
  
  The error handler then sets state, last_error and last_errno
  fields for current statement to values which correspond to
  error which was caught.
sql/mysql_priv.h:
  Added max_long_data_size variable declaration.
sql/mysqld.cc:
  Added support for start-up parameter 'max_long_data_size'.
  This parameter limits size of data which can be sent from
  client to server using mysql_send_long_data() API.
sql/set_var.cc:
  Added variable 'max_long_data_size' into list of variables
  displayed by command 'show variables'.
sql/sql_prepare.cc:
  Added error handler class Set_longdata_error_handler.
  This handler is used to catch any errors that can be
  generated during execution of Item_param::set_longdata().
  
  Source code snippet that makes checking for statement's state 
  during statement execution is moved from Prepared_statement::execute()
  to Prepared_statement::execute_loop() in order not to call
  set_parameters() when statement has failed during
  set_long_data() execution. If this hadn't been done
  the call to set_parameters() would have failed.
tests/mysql_client_test.c:
  A testcase for the bug #56976 was added.
2011-03-15 17:36:12 +06:00
Georgi Kodinov
7a37a7c0c8 Bug #11765023: 57934: DOS POSSIBLE SINCE BINARY CASTING DOESN'T
ADHERE TO MAX_ALLOWED_PACKET

Added a check for max_packet_length in CONVERT(, BINARY|CHAR).
Added a test case.
2011-03-15 13:19:30 +02:00
Davi Arnaut
ebaf3de8b7 Merge of mysql-5.1 into mysql-5.5. 2011-03-14 15:06:44 -03:00
Davi Arnaut
07106d4ad9 Bug#11765202: Dbug_violation_helper::~Dbug_violation_helper(): Assertion `!_entered' failed.
Add a missing DBUG_RETURN function test_if_number().
2011-03-14 15:03:22 -03:00
Jorgen Loland
4185869e03 BUG#11766234: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW)
FAILS IN SET_FIELD_ITERATOR

(Former 59299)

When a PROCEDURE does a natural join, resolving of which columns are
used in the join is done only once; consecutive CALLs to the procedure
will reuse this information:

CREATE PROCEDURE proc() SELECT * FROM t1 NATURAL JOIN v1;
CALL proc();   <- natural join columns resolved here
CALL proc();   <- reuse resolved NJ columns from first CALL

The second CALL knows that it can reuse the resolved NJ columns because
the first CALL sets st_select_lex::first_natural_join_processing=false.
The problem in this bug was that the table the view v1 depends on 
changed between CREATE PROCEDURE and the first CALL: 

CREATE PROCEDURE...
ALTER TABLE t2 CHANGE COLUMN a b CHAR;
CALL proc();   <- error when resolving natural join columns
CALL proc();   <- tries to reuse from first CALL => crash

The fix for this bug is to set first_natural_join_processing= FALSE iff
the natural join columns resolving was successful.


mysql-test/r/sp.result:
  Add test for bug 11766234
mysql-test/t/sp.test:
  Add test for bug 11766234
sql/sql_base.cc:
  Set first_natural_join_processing= FALSE iff the natural join columns resolving was successful.
2011-03-14 14:30:36 +01:00
Alexander Nozdrin
2f5a462fdd A patch for Bug#11765297 (58251 - archive_plugin and blackhole_plugin
fails when running with ps-protocol).

The problem was that when running in --ps-protocol mode mysqltest.cc
didn't close created prepared statements. So, the plugins could not be
unistalled because there was a prepared statement using them.

A fix is to add a dummy statement that forces mysqltest.cc to close
the last prepared statement (which uses a plugin-defined table).
2011-03-14 14:03:08 +03:00
Joerg Bruehe
5e2c0f82c1 Fight a problem in internal test builds:
When a RPM test build in a non-release branch is done,
the $MYSQL_BINDIR variable ends in "/usr"
(rather than in "/usr/lib" as in a RPM release build),
this made test "file_contents" fail.

A branch for this case is added to the test.
The test result is unchanged.



mysql-test/t/file_contents.test:
  Fight a problem in internal test builds:
  
  When a RPM test build in a non-release branch is done,
  the $MYSQL_BINDIR variable ends in "/usr"
  (rather than in "/usr/lib" as in a RPM release build),
  this made test "file_contents" fail.
  
  Because of this, the old logic did not recognize
  that a RPM build is done (trailing '/' missing!)
  and took the tar.gz branch.
  Just removing the trailing '/' from the "/usr" is
  not enough, as the logic for RPMs used to replace
  "/lib" which is not present at all; rather, a new
  branch was added.
  
  To help in case of future problems, the error messages
  for a failing "open()" now also report "$MYSQL_BINDIR".
2011-03-11 16:00:53 +01:00
Bjorn Munch
7fa456dae8 merge from 5.5-mtr 2011-03-11 12:51:51 +01:00
Mayank Prasad
b879731f1d merge from mysql5.1 for bug#11760210 2011-03-11 17:01:19 +05:30
Mayank Prasad
d2e36e4258 BUG #11760210: 52596: SSL_CIPHER_LIST NOT SET OR RETURNED FOR "SHOW STATUS LIKE 'SSL_CIPHER_LIST'"
Issue:
      SSL_CIPHER set to a specific CIPHER name was not getting picked up by SHOW STATUS Command.

Solution:
      If specific cipher name is specified, avoid overwriting of Cipher List with default Cipher names.


extra/yassl/src/yassl_int.cpp:
  If user specified Cipher name is there, avoid populating default
  cipher names' list.
mysql-test/r/ssl_cipher.result:
  Expected file for ssl_cipher.test test case
mysql-test/t/ssl_cipher-master.opt:
  Server option file for ssl_cipher.test test case.
mysql-test/t/ssl_cipher.test:
  Test case to verify that user specified SSL cipher name is shown in SHOW STATUS Command.
2011-03-11 16:16:34 +05:30
Bjorn Munch
268aa888b4 merge from 5.5 main 2011-03-11 10:12:58 +01:00
Alexander Nozdrin
5653a71d3e Patch for Bug#11765684 (58674: SP-cache does not detect changes in
pre-locking list caused by triggers).

The thing is that CREATE TRIGGER / DROP TRIGGER may actually
change pre-locking list of (some) stored routines.

The SP-cache does not detect such changes. Thus if sp_head-instance
is cached in SP-cache, subsequent executions of the cached
sp_head will use inaccurate pre-locking list.

The patch is to invalidate SP-cache on CREATE TRIGGER / DROP TRIGGER.
2011-03-10 11:07:57 +03:00
Anitha Gopi
b7caa09215 Bug11817185# : Disabled MAIN.ARCHIVE-BIG.TEST 2011-03-10 09:47:49 +05:30
Mattias Jonsson
d3ca484f46 merge 2011-03-09 18:41:16 +01:00
Mattias Jonsson
ba85e3cf54 Merge of Bug#11766232 - bug#59297 2011-03-09 18:12:23 +01:00
Georgi Kodinov
16ae38bd80 Fixed a wrong error code in gis.test 2011-03-09 17:21:22 +02:00
Jon Olav Hauglid
fc6ef378d4 Bug#11815600 [ERROR] INNODB COULD NOT FIND INDEX PRIMARY
KEY NO 0 FOR TABLE IN ERROR LOG 

With the changes made by the patches for Bug#11751388 and
Bug#11784056, concurrent reads are allowed while secondary
indexes are created in InnoDB. This means that the metadata
lock on the affected table is not upgraded to exclusive
until the .FRM is updated at the end of ALTER TABLE processing.

The problem was that if this lock upgrade failed for some
reason (e.g. timeout), the index information in the server
and inside InnoDB would be out of sync. This would happen
since the add index operation already was committed inside 
InnoDB but the table metadata inside the server had not been
updated yet.

This patch fixes the problem by (for now) reverting the
effects of the patches for Bug#11751388 and Bug#11784056.
Concurrent reads will now again be blocked during creation
of secondary indexes in InnoDB.

Test case added to innodb_mysql_lock.test.
2011-03-09 16:06:13 +01:00
Georgi Kodinov
44088f56a1 merge mysql-5.1-security->mysql-5.5-security 2011-03-09 17:04:52 +02:00
Georgi Kodinov
4eab28d893 merge mysql-5.5->mysql-5.5-security 2011-03-09 16:53:31 +02:00
Georgi Kodinov
2f682d3f72 merge 5.1->5.1-security 2011-03-09 16:50:06 +02:00
Georgi Kodinov
01f218e896 merge mysql-5.1->mysql-5.5 2011-03-09 16:04:50 +02:00
Bjorn Munch
347473afb3 merge from 5.5 main 2011-03-08 18:39:25 +01:00