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
Marko Mäkelä
0852357c94 Merge mysql-5.1 to mysql-5.5. 2012-02-15 16:37:06 +02:00
Marko Mäkelä
8b0f2c4d7d Remove a race condition in innodb_bug53756.test.
Before killing the server, tell mysql-test-run that it is to be expected.

Discussed with Bjorn Munch on IM.
2012-02-15 16:28:00 +02:00
Marko Mäkelä
3d430ac5cb Merge mysql-5.1 to mysql-5.5. 2012-02-15 15:55:31 +02:00
Marko Mäkelä
406bc4d1ea store_create_info(): Fix a compiler warning about unused variable. 2012-02-15 15:53:29 +02:00
Tor Didriksen
8e5d9991d1 Bug#13633383 63183: SMALL SORT_BUFFER_SIZE CRASH IN MERGE_BUFFERS
This patch is a backport of some of the cleanups/refactorings that were done
as part of WL#1393 Optimizing filesort with small limit.
2012-02-14 08:11:28 +01:00
Georgi Kodinov
5cfe937f24 merge mysql-5.1-security->mysql-5.5-security 2012-02-13 14:44:54 +02:00
Georgi Kodinov
0966b866b1 merge from 5.0-security 2012-02-13 13:40:12 +02:00
Rohit Kalhans
0a53dd8eae fixing test failure on pb2. 2012-02-13 15:37:50 +05:30
Rohit Kalhans
b836b02fc9 BUG#11758263: Modification of indentation in the added code.
Fixed a typo in the comment.
              Fixing test cases which were previouslyno throwing  due
              disable warnings macro.
2012-02-13 14:12:13 +05:30
Georgi Kodinov
724af49cf0 Bug #13706828: UPGRADE YASSL FROM 1.7.2 TO 2.1.4
$SUBJ$
1. Took a diff between the previous base version and the
mysql sources.
2. Added the new 2.1.4 base version.
3. Reviewed and re-applied the diff from step #1.
2012-02-10 16:33:27 +02:00
Georgi Kodinov
89b6cb72c9 merge 2012-02-10 11:51:33 +02:00
Georgi Kodinov
f2e96ba17b merge 2012-02-10 11:49:48 +02:00
Georgi Kodinov
786b36045d merge 2012-02-10 11:45:46 +02:00
Georgi Kodinov
4f6629f597 empty merge mysql-5.1-security->mysql-5.5-secruity 2012-02-10 11:41:54 +02:00
Georgi Kodinov
6dd7baf7b0 empty merge of mysql-5.0-security->mysql-5.1-security 2012-02-10 11:39:51 +02:00
Georgi Kodinov
0aca1f58fa Bug#13706621 : UNIFY THE YASSL VERSIONS THAT WE USE BY BACKPORTING 5.1
AND 5.5 YASSL FIXES.

Took the 5.5 yassl directory and moved it to the 5.1 tree, while
preserving the makefiles.
2012-02-10 11:35:36 +02:00
Georgi Kodinov
a25adb1cc8 Bug#13706621 : UNIFY THE YASSL VERSIONS THAT WE USE BY BACKPORTING 5.1
AND 5.5 YASSL FIXES.

Took the 5.5 yassl code and applied it to the 5.0 codebase, keeping the
compilation files.
2012-02-10 11:10:07 +02:00
Sunny Bains
53e5e4255a Merge from mysql-5.1. 2012-02-10 14:11:49 +11:00
Sunny Bains
4af4546348 BUG#12739098 - 62401: ASSERTION TRX->ERROR_STATE == DB_SUCCESS, QUE0QUE.C LINE 1264 ON TRUNCATE
During FIC error handling the trx->error_state was not being set to DB_SUCCESS
after failure, before attempting the next DDL SQL operation. This reset to
DB_SUCCESS is somewhat of a requirement though not explicitly stated anywhere.
The fix is to reset it to DB_SUCCESS in row0merge.cc if row_merge_rename_indexes
or row_merge_drop_index functions fail, also reset to DB_SUCCESS at trx commit.
				          
rb://935 Approved by Jimmy Yang.
2012-02-10 14:09:12 +11:00
Sunny Bains
f36fb62bad Merge from mysql-5.1-innodb. 2012-02-10 13:04:10 +11:00
Sunny Bains
c54be492e5 BUG#12739098 - 62401: ASSERTION TRX->ERROR_STATE == DB_SUCCESS, QUE0QUE.C LINE 1264 ON TRUNCATE
During FIC error handling the trx->error_state was not being set to DB_SUCCESS
after failure, before attempting the next DDL SQL operation. This reset to
DB_SUCCESS is somewhat of a requirement though not explicitly stated anywhere.
The fix is to reset it to DB_SUCCESS in row0merge.cc if row_merge_rename_indexes
or row_merge_drop_index functions fail, also reset to DB_SUCCESS at trx commit.

rb://935 Approved by Jimmy Yang.
2012-02-10 12:47:42 +11:00
Rohit Kalhans
17eea52954 Followup patch for bug#11758263. 2012-02-10 01:43:47 +05:30
Rohit Kalhans
4f7e4c9d1b BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFE
Problem: Statements that write to tables with auto_increment columns
         based on the selection from another table, may lead to master
         and slave going out of sync, as the order in which the rows
         are retrieved from the table may differ on master and slave.
            
Solution: We mark writing to a table with auto_increment table
          based on the rows selected from another table as unsafe. This
          will cause the execution of such statements to throw a warning
          and forces the statement to be logged in ROW if the logging
          format is mixed. 
            
Changes:
       1. All the statements that writes to a table with auto_increment 
          column(s) based on the rows fetched from another table, will now
          be unsafe.
       2. CREATE TABLE with SELECT will now be unsafe.
2012-02-09 23:28:33 +05:30
Rohit Kalhans
9153fddf58 Backout the patch for bug#11758263. 2012-02-08 12:10:55 +05:30
Rohit Kalhans
6df5a61d2e BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFE
Problem: Statements that write to tables with auto_increment columns
      based on the selection from another table, may lead to master
      and slave going out of sync, as the order in which the rows
      are retrived from the table may differ on master and slave.
      
      Solution: We mark writing to a table with auto_increment table
      as unsafe. This will cause the execution of such statements to
      throw a warning and forces the statement to be logged in ROW if
      the logging format is mixed. 
      
      Changes: 
      1. All the statements that writes to a table with auto_increment 
      column(s) based on the rows fetched from another table, will now
      be unsafe.
      2. CREATE TABLE with SELECT will now be unsafe.
2012-02-08 00:33:08 +05:30
Martin Hansson
73bd3713af Merge of fix for Bug#11765810. 2012-02-07 17:32:04 +01:00
Martin Hansson
34cd261aae Bug #11765810 58813: SERVER THREAD HANGS WHEN JOIN + WHERE + GROUP BY
IS EXECUTED TWICE FROM P

This bug is a duplicate of bug 12567331, which was pushed to the
optimizer backporting tree on 2011-06-11. This is just a back-port of
the fix. Both test cases are included as they differ somewhat.
2012-02-07 14:16:09 +01:00
Georgi Kodinov
19220d0c7b empty weave merge mysql-5.1-security->mysql-5.5-security 2012-02-06 18:37:02 +02:00
Georgi Kodinov
350e916881 empty weave merge mysql-5.0-security->mysql-5.1-security 2012-02-06 18:26:48 +02:00
Georgi Kodinov
1bd0fe7bb8 merge mysql-5.5->mysql-5.5-security 2012-02-06 18:26:36 +02:00
Georgi Kodinov
145043fd69 merged mysql-5.1->mysql-5.1-security 2012-02-06 18:24:51 +02:00
Georgi Kodinov
12376c17b3 merged mysql-5.0->mysql-5.0-security 2012-02-06 18:23:41 +02:00
Vasil Dimov
c8d8a92300 Merge mysql-5.1 -> mysql-5.5
The actual Bug#11754376 does not exist in MySQL 5.5 because at startup
we drop entries for temporary tables from InnoDB dictionary cache (only
if ROW_FORMAT is not REDUNDANT). But nevertheless the bug in
normalize_table_name_low() is present so we fix it.
2012-02-06 13:00:41 +02:00
Vasil Dimov
17afdb9051 Fix Bug#11754376 45976: INNODB LOST FILES FOR TEMPORARY TABLES ON
GRACEFUL SHUTDOWN

During startup mysql picks up .frm files from the tmpdir directory and
tries to drop those tables in the storage engine.

The problem is that when tmpdir ends in / then ha_innobase::delete_table()
is passed a string like "/var/tmp//#sql123", then it wrongly normalizes it
to "/#sql123" and calls row_drop_table_for_mysql() which of course fails
to delete the table entry from the InnoDB dictionary cache.
ha_innobase::delete_table() returns an error but nevertheless mysql wipes
away the .frm file and the entry in the InnoDB dictionary cache remains
orphaned with no easy way to remove it.

The "no easy" way to remove it is to create a similar temporary table again,
copy its .frm file to tmpdir under "#sql123.frm" and restart mysqld with
tmpdir=/var/tmp (no trailing slash) - this way mysql will pick the .frm file
after restart and will try to issue drop table for "/var/tmp/#sql123"
(notice do double slash), ha_innobase::delete_table() will normalize it to
"tmp/#sql123" and row_drop_table_for_mysql() will successfully remove the
table entry from the dictionary cache.

The solution is to fix normalize_table_name_low() to normalize things like
"/var/tmp//table" correctly to "tmp/table".

This patch also adds a test function which invokes
normalize_table_name_low() with various inputs to make sure it works
correctly and a mtr test that calls this test function.

Reviewed by:	Marko (http://bur03.no.oracle.com/rb/r/929/)
2012-02-06 12:44:59 +02:00
Ashish Agarwal
64c2891056 BUG#11754145: Failing test cases. Patch to correct the test case. 2012-02-05 14:10:50 +05:30
Nuno Carvalho
d27f590798 BUG#12403008 RPL_HEARTBEAT_BASIC FAILS SPORADICALLY ON PUSHBUILD
rpl_heartbeat_basic test fails sporadically on pushbuild because did
not received all heartbeats from slave in circular replication.

Removed from experimental collection.
2012-02-03 14:23:33 +00:00
Ashish Agarwal
974c2ab56e BUG#11748748: Merge from mysql-5.1 to mysql-5.5 2012-02-03 19:41:03 +05:30
Ashish Agarwal
8862a5b5e9 BUG#11748748 - 37280: CHECK AND REPAIR TABLE REPORT TABLE
CORRUPTED WHEN RUN CONCURRENTLY WITH

ISSUE: Table corruption due to concurrent queries.
       Different threads running check, repair query
       along with insert. Locks not properly acquired
       in repair query. Rows are inserted inbetween
       repair query.

SOLUTION: Mutex lock is acquired before the
          repair call. Concurrent queries wont
          effect the call to repair.
2012-02-03 19:37:00 +05:30
Ashish Agarwal
9e3eabf54d BUG#11754145: One of the test was failing. Patch to fix the test 2012-02-03 19:19:32 +05:30
Ashish Agarwal
c2fb2fb074 BUG#11754145 - 45702: IMPOSSIBE TO SPECIFY MYISAM_SORT_BUFFER > 4GB
ON 64 BIT MACHINES

PROBLEM: When sorting index during repair of
         myisam tables, due to improper casting
         of buffer size variables value of myisam_
         sort_buffer_size is not set greater than
         4GB.

SOLUTION: Proper casting of buffer size variable.
          myisam_buffer_size changed to unsigned
          long long to handle size > 4GB on
          linux as well as windows.
2012-02-02 18:17:14 +05:30
Alexander Barkov
f4f9e7c48e Merging from 5.1 2012-02-02 16:25:48 +04:00
Alexander Barkov
680fd893f0 Postfix for Bug#11752408.
Recording correct test results.

modified:
  mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result
  mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
2012-02-02 16:22:13 +04:00
Marko Mäkelä
dc9149648a ha_innobase::records_in_range(): Remove a debug assertion
that prohibits an open range (full table).
This assertion catches unnecessary calls to this method, but such calls
are not harming correctness.
2012-02-02 13:54:27 +02:00
Marko Mäkelä
8e6bba3ec6 Merge mysql-5.1 to mysql-5.5. 2012-02-02 13:50:54 +02:00
Mattias Jonsson
98d3ef960d Bug#13593865 - 64037: CRASH IN HA_PARTITION::CREATE_HANDLERS ON
ALTER TABLE AFTER DROP PARTITION
Bug#13608188 - 64038: CRASH IN HANDLER::HA_THD ON ALTER TABLE AFTER
                      REPAIR NON-EXISTING PARTITION

Backport of bug#13357766 from -trunk to -5.5.

The state of some partitions was not reset on failure, leading
to invalid states of partitions in consequent statements.

Fixed by reverting back to original state for all partitions
if not all partition names was resolved.

Also adding extra security by forcing tables to be reopened
in case of error in mysql_alter_table.

(There is also removal of \r at the end of some lines.)
2012-02-02 12:47:17 +01:00
Marko Mäkelä
a96c87206b Bug#13654923 BOGUS DEBUG ASSERTION IN INDEX CREATION FOR ZERO-LENGTH RECORD
row_merge_buf_write(): Relax the bogus assertion.
2012-02-02 13:38:32 +02:00
Marko Mäkelä
d87a29bea9 Bug #13651627 Move ut_ad(0) from the beginning to the end of buf_page_print(),
print page dump

buf_page_print(): Remove the ut_ad(0) from the beginning. Add two flags
(enum buf_page_print_flags) that can be bitwise-ORed together:

BUF_PAGE_PRINT_NO_CRASH:
  Do not crash debug builds at the end of buf_page_print().
BUF_PAGE_PRINT_NO_FULL:
  Do not print the full page dump. This can be useful when adding
  diagnostic printout to flushing or to the doublewrite buffer.

trx_sys_doublewrite_init_or_restore_page(): Replace exit(1) with ut_error,
so that we can get a core dump if this extraordinary condition happens.

rb:924 approved by Sunny Bains
2012-02-02 12:31:57 +02:00
Marko Mäkelä
49738655bb Merge mysql-5.1 to mysql-5.5. 2012-02-02 12:13:35 +02:00
Marko Mäkelä
647abc1312 Suppress messages about long semaphore waits in innodb_bug34300.test. 2012-02-02 12:07:06 +02:00
Ashish Agarwal
5068aec9c1 BUG#11756869: Merge from mysql-5.1 to mysql-5.5 2012-02-02 14:25:43 +05:30