1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-27 05:56:07 +03:00
Commit Graph

28672 Commits

Author SHA1 Message Date
Jon Olav Hauglid
6bbfe7c62a Bug #58933 Assertion `thd- >is_error()' fails on shutdown with ongoing
OPTIMIZE TABLE

OPTIMIZE TABLE for InnoDB tables is handled as recreate + analyze.
The triggered assert checked that an error had been reported if either
recreate or analyze failed. However the assert failed to take into
account that they could have failed because OPTIMIZE TABLE had been
victim of KILL QUERY, KILL CONNECTION or server shutdown.

This patch adjusts the assert to take this possibility into account.
The problem was only noticeable on debug versions of the server.

Test case added to innodb_mysql_sync.test.
2011-01-10 14:12:23 +01:00
Georgi Kodinov
1ecfdbf2bc merge 2011-01-10 15:09:57 +02:00
Georgi Kodinov
83b4e920e2 merge 2011-01-10 15:08:33 +02:00
Magne Mahre
90650edf69 Bug#58970 Problem Subquery (without referencing a table)
and Order By
      
When having a UNION statement in a subquery, with no
referenced tables (or only a reference to the virtual
table 'dual'), the UNION did not allow an ORDER BY clause.
      
      i.e:
          SELECT(SELECT 1 AS a UNION 
                 SELECT 0 AS a 
                 ORDER BY a) AS b  or
          SELECT(SELECT 1 AS a FROM dual UNION 
                 SELECT 0 as a 
                 ORDER BY a) AS b
      
      
In addition, an ORDER BY / LIMIT clause was not accepted
in subqueries even for single SELECT statements with no 
referenced tables (or with 'dual' as table reference)
      
   i.e: 
      SELECT(SELECT 1 AS a ORDER BY a) AS b  or
      SELECT(SELECT 1 AS a FROM dual ORDER BY a) AS b
      
The fix was to allow an optional ORDER BY/LIMIT clause to
the grammar for these cases.
      
See also: Bug#57986
2011-01-10 13:43:12 +01:00
Magne Mahre
1b64516756 Bug#57986 ORDER BY clause is not used after a UNION,
if embedded in a SELECT
            
An ORDER BY clause was bound to the incorrect
(sub-)statement when used in a UNION context.
            
In a query like:
SELECT * FROM a UNION SELECT * FROM b ORDER BY c
the result of SELECT * FROM b is sorted, and then
combined with a.  The correct behaviour is that
the ORDER BY clause should be applied on the
final set.   Similar behaviour was seen on LIMIT
clauses as well.
            
In a UNION statement, there will be a select_lex
object for each of the two selects, and a 
select_lex_unit object that describes the UNION
itself.  Similarly, the same behaviour was also
seen on derived tables.
            
The bug was caused by using a grammar rule for
ORDER BY and LIMIT that bound these elements
to thd->lex->current_select, which points to the
last of the two selects, instead of to the 
fake_select_lex member of the master select_lex_unit
object.


sql/sql_yacc.yy:
  Need to use (opt_)union_order_or_limit to
  bind to the correct select_lex object.
2011-01-10 13:16:50 +01:00
Mattias Jonsson
2f47416678 merge 2011-01-10 12:56:27 +01:00
Georgi Kodinov
b0306dc506 Bug #59148 - made tests experimental 2011-01-10 11:54:05 +02:00
Vasil Dimov
42982791dc Merge mysql-5.5-innodb -> mysql-5.5 2011-01-08 17:00:48 +02:00
Matthias Leich
b342d3e763 Fix for Bug#58414 Race condition in show_check.test
Basically take care that disconnects are finished.
2011-01-07 14:37:46 +01:00
Georgi Kodinov
0c0ef4dd68 automerge 2011-01-07 15:30:54 +02:00
Georgi Kodinov
1ec2fccd6d automerge 2011-01-07 15:30:42 +02:00
Georgi Kodinov
b831c6dbbb automerge 2011-01-07 15:28:36 +02:00
Matthias Leich
bc37d5c211 Fix for Bug#47745 innodb.innodb-timeout fails sporadically
- Second scenario checked:
  Ensure via wait routines that the commit comes after the
  processing of the statement which should get finally
  the ER_LOCK_WAIT_TIMEOUT
  --> This should prevent the current bug.
- First scenario checked:
  Ensure via wait routines that the statement is already waiting
  for getting the lock before the commit is given.
  --> No effect on the current bug, but ensure that the right
      scenario is reached.
- Take care that disconnects are finished before the test ends.
  --> Reduce the potential to harm succeeding tests.
- "Mangle" the printout of the current default innodb_lock_wait_timeout value
  --> No need to adjust the test in case the default gets changed in future.
2011-01-07 14:16:28 +01:00
Matthias Leich
530a83a16d 1. Fix for Bug#58600 main.not_embedded_server test does not cleanup properly
- remove the superfluous file
   - add an preemptive removal of the outfile before the
     SELECT ... INTO OUTFILE ...
2. Remove an already disabled subtest
   It's functionality is covered by tests in the suite funcs_1.
3. Adjust the formatting within some sub testcase to the formatting used
   in all other sub testcases
2011-01-07 13:08:05 +01:00
Vasil Dimov
a44cf8a6dd Merge mysql-5.5 -> mysql-5.5-innodb 2011-01-07 13:49:06 +02:00
Vasil Dimov
3d27658dae Merge mysql-5.1 -> mysql-5.1-innodb 2011-01-07 13:46:21 +02:00
Saikumar V
da9cb6e1e2 Adding more mtr commands to runs engine suites. 2011-01-06 16:47:22 +05:30
Saikumar V
d2b0c83646 Adding more mtr commands to runs engine suites. 2011-01-06 16:09:45 +05:30
Georgi Kodinov
1d9113eae4 merge 2011-01-05 15:02:48 +02:00
Georgi Kodinov
cfc1e33758 Bug #59178: disable the test case 2011-01-05 14:58:05 +02:00
Nirbhay Choubey
a3dc7d4db8 Updating the local repository. 2011-01-05 12:43:30 +05:30
Marc Alff
bd42a05460 Local merge 2011-01-05 08:02:14 +01:00
Nirbhay Choubey
7a8d3e00e9 Modifications in mysql-5.5 engines test suite. 2011-01-05 12:23:05 +05:30
Nirbhay Choubey
c6ffb4b798 Modifications in mysql-5.1 engines test suite. 2011-01-05 12:16:07 +05:30
Mikael Ronstrom
6e7752d557 merge 2011-01-04 18:46:01 +01:00
Jon Olav Hauglid
db2234b95b Merge from mysql-5.1 to mysql-5.5.
No conflicts.
2011-01-04 15:28:03 +01:00
Jon Olav Hauglid
405ac384f5 Bug #50619 assert in handler::update_auto_increment
This assert could be triggered if -1 was inserted into
an auto increment column by a statement writing more than
one row.

Unless explicitly given, an interval of auto increment values
is generated when a statement first needs an auto increment
value. The triggered assert checks that the auto increment
counter is equal to or higher than the lower bound of this
interval.

Generally, the auto increment counter starts at 1 and is
incremented by 1 each time it is used. However, inserting an
explicit value into the auto increment column, sets the auto
increment counter to this value + 1 if this value is higher
than the current value of the auto increment counter.

This bug was triggered if the explicit value was -1. Since the
value was converted to unsigned before any comparisons were made,
it was found to be higher than the current vale of the auto
increment counter and the counter was set to -1 + 1. This value
was below the reserved interval and caused the assert to be
triggered the next time the statement tried to write a row.

With the patch for Bug#39828, this bug is no longer repeatable.
Now, -1 + 1 is detected as an "overflow" which causes the auto
increment counter to be set to ULONGLONG_MAX. This avoids hitting
the assert for the next insert and causes a new interval of
auto increment values to be generated. This resolves the issue.

This patch therefore only contains a regression test and no code
changes. Test case added to auto_increment.test.
2011-01-04 14:36:37 +01:00
Mattias Jonsson
544451bbd8 merge 2011-01-04 14:13:20 +01:00
Alexander Barkov
498a5bbc82 Merging from 5.1. 2011-01-17 15:26:13 +03:00
Alexander Barkov
579df0dfc6 Merging from mysql-5.1 2011-01-17 12:39:59 +03:00
Marc Alff
630483d497 Bug#59091 perfschema.binlog_mix and perfschema.binlog_row tests fail with openssl
Fixed the test case to be independent of build options used.
Removed the lowercase-table-names constraint, since performance schema tables are now in lowercase.
2011-01-04 10:04:02 +01:00
Guilhem Bichot
b5cedcaa18 merge from 5.1; now this test is not experimental anymore 2010-12-31 12:14:48 +01:00
Guilhem Bichot
3997d4c694 Test which runs slowly on some machines, is marked as big
so will be run only weekly; this closes BUG#50595.
2010-12-31 12:07:34 +01:00
Dmitry Shulga
17de491d53 Test main.log_tables was unmarked as experimental. 2010-12-30 14:17:16 +06:00
unknown
7f6ce96df7 Bug #50914 mysqlbinlog not handling drop of current default database
mysqlbinlog only prints "use $database" statements to its output stream
when the active default database changes between events. This will cause
"No Database Selected" error when dropping and recreating that database.
      
To fix the problem, we clear print_event_info->db when printing an event
of CREATE/DROP/ALTER database statements, so that the Query_log_event
after such statements will be printed with the use 'db' anyway except
transaction keywords.


mysql-test/r/mysqlbinlog.result:
  Test result for Bug#50914.
mysql-test/t/mysqlbinlog.test:
  Added test to verify if the approach of the mysqlbinlog prints
  "use $database" statements to its output stream will cause
  "No Database Selected" error when dropping and recreating
  that database.
sql/log_event.cc:
  Updated code to clear print_event_info->db when printing an event
  of CREATE/DROP/ALTER database statements, so that the Query_log_event
  after such statements will be printed with the use 'db' anyway except
  transaction keywords.
2010-12-29 13:22:52 +08:00
unknown
22639a066c Bug #50914 mysqlbinlog not handling drop of current default database
mysqlbinlog only prints "use $database" statements to its output stream
when the active default database changes between events. This will cause
"No Database Selected" error when dropping and recreating that database.

To fix the problem, we clear print_event_info->db when printing an event
of CREATE/DROP/ALTER database statements, so that the Query_log_event
after such statements will be printed with the use 'db' anyway except
transaction keywords.

mysql-test/r/mysqlbinlog.result:
  Test result for Bug#50914.
mysql-test/t/mysqlbinlog.test:
  Added test to verify if the approach of the mysqlbinlog prints
  "use $database" statements to its output stream will cause
  "No Database Selected" error when dropping and recreating
  that database.
sql/log_event.cc:
  Updated code to clear print_event_info->db when printing an event
  of CREATE/DROP/ALTER database statements, so that the Query_log_event
  after such statements will be printed with the use 'db' anyway except
  transaction keywords.
2010-12-29 11:52:57 +08:00
Kent Boortz
be6c3fd8aa Merge 2010-12-29 01:26:31 +01:00
Kent Boortz
4acfdb9df1 Merge 2010-12-29 00:47:05 +01:00
Kent Boortz
85323eda8a - Added/updated copyright headers
- Removed files specific to compiling on OS/2
- Removed files specific to SCO Unix packaging
- Removed "libmysqld/copyright", text is included in documentation
- Removed LaTeX headers for NDB Doxygen documentation
- Removed obsolete NDB files
- Removed "mkisofs" binaries
- Removed the "cvs2cl.pl" script
- Changed a few GPL texts to use "program" instead of "library"
2010-12-28 19:57:23 +01:00
Vasil Dimov
57c910ff6c Merge mysql-5.5-bugteam -> mysql-5.5-innodb 2010-12-27 19:24:05 +02:00
Vasil Dimov
1d9d7e2526 Merge mysql-5.1-bugteam -> mysql-5.1-innodb 2010-12-27 19:21:21 +02:00
Sergey Glukhov
0a1433d7b0 5.1-bugteam->5.5-bugteam merge 2010-12-24 14:21:44 +03:00
Sergey Glukhov
bc56dcea9d Bug#57810 case/when/then : Assertion failed: length || !scale
ASSERT happens due to improper calculation of the max_length
in Item_func_div object, if dividend has max_length == 0 then
Item_func_div::max_length is set to 0 under some circumstances.
The fix:
If decimals == NOT_FIXED_DEC then set
Item_func_div::max_length to max possible
DOUBLE length value.


mysql-test/r/func_math.result:
  test case
mysql-test/t/func_math.test:
  test case
sql/item_func.cc:
  The fix:
  If decimals == NOT_FIXED_DEC then set
  Item_func_div::max_length to max possible
  DOUBLE length value.
2010-12-24 14:05:04 +03:00
Georgi Kodinov
bb996a29cc merge 2010-12-23 13:39:58 +02:00
Georgi Kodinov
c1fce59c3d fixed the binlog problem 2010-12-23 13:35:42 +02:00
Georgi Kodinov
28a06e5660 merge 2010-12-23 12:49:08 +02:00
Georgi Kodinov
219fba4778 merge 2010-12-23 12:40:40 +02:00
Mattias Jonsson
1615419d72 Bug#54483: valgrind errors when making warnings for multiline inserts into partition
Bug#57071: EXTRACT(WEEK from date_col) cannot be allowed as partitioning function

There were functions allowed as partitioning functions
that implicit allowed cast. That could result in unacceptable
behaviour.

Solution was to check that the arguments of date and time functions
have allowed types (field and date/datetime/time depending on function).

mysql-test/r/partition.result:
  Updated result
mysql-test/r/partition_error.result:
  Updated result
mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc:
  disabled test with not allowed arguments.
mysql-test/suite/parts/r/part_supported_sql_func_innodb.result:
  Updated result
mysql-test/suite/parts/r/part_supported_sql_func_myisam.result:
  Updated result
mysql-test/t/partition.test:
  Fixed typo in bug number and removed non allowed function (bad argument)
mysql-test/t/partition_error.test:
  Added tests to verify correct type of argument.
sql/item.h:
  Renamed processor since it is no longer only for timezone
sql/item_func.h:
  Added help functions for checking date/time/datetime arguments.
sql/item_timefunc.h:
  Added processors for argument correctness
sql/sql_partition.cc:
  renamed the processor for checking arguments.
2010-12-22 10:50:36 +01:00
Anitha Gopi
283630356c BUG #59055: RQG was broken after the checkin that removed rpl and rpl_ndb suites. RQG uses MTR V1 and that still has these in the default suite. Removing these from V1. Also removing references to ndb tests in some more disabled.def files 2010-12-21 23:14:48 +05:30
Sergey Glukhov
8bb9639486 automerge 2010-12-21 15:35:54 +03:00