Commit graph

69108 commits

Author SHA1 Message Date
Nirbhay Choubey
bbd0d604aa Adjusting test result for bug#11765157. 2011-04-08 12:34:54 +05:30
Nirbhay Choubey
01f0090c6a Merging patch for bug#11765157 from mysql-5.1. 2011-04-08 12:25:59 +05:30
Nirbhay Choubey
cb0e49c000 Bug#11765157 - 58090: mysqlslap drops schema specified in
create_schema if auto-generate-sql also set.

mysqlslap uses a schema to run its tests on and later
drops it if auto-generate-sql is used. This can be a
problem, if the schema is an already existing one.

If create-schema is used with auto-generate-sql option,
mysqlslap while performing the cleanup, drops the specified
database.

Fixed by introducing an option --no-drop, which, if used,
will prevent the dropping of schema at the end of the test.


client/client_priv.h:
  Bug#11765157 - 58090: mysqlslap drops schema specified in
                 create_schema if auto-generate-sql also set.
  
  Added an option.
client/mysqlslap.c:
  Bug#11765157 - 58090: mysqlslap drops schema specified in
                 create_schema if auto-generate-sql also set.
  
  Introduced an option 'no-drop' to forbid the removal of schema
  even if 'create' or 'auto-generate-sql' options are used.
mysql-test/r/mysqlslap.result:
  Added a testcase for Bug#11765157.
mysql-test/t/mysqlslap.test:
  Added a testcase for Bug#11765157.
2011-04-08 12:22:44 +05:30
Marko Mäkelä
0ff2a182b6 Bug #11766513 - 59641: Prepared XA transaction in system after hard crash
causes future shutdown hang

InnoDB would hang on shutdown if any XA transactions exist in the
system in the PREPARED state. This has been masked by the fact that
MySQL would roll back any PREPARED transaction on shutdown, in the
spirit of Bug #12161 Xa recovery and client disconnection.

[mysql-test-run] do_shutdown_server: Interpret --shutdown_server 0 as
a request to kill the server immediately without initiating a
shutdown procedure.

xid_cache_insert(): Initialize XID_STATE::rm_error in order to avoid a
bogus error message on XA ROLLBACK of a recovered PREPARED transaction.

innobase_commit_by_xid(), innobase_rollback_by_xid(): Free the InnoDB
transaction object after rolling back a PREPARED transaction.

trx_get_trx_by_xid(): Only consider transactions whose
trx->is_prepared flag is set. The MySQL layer seems to prevent
attempts to roll back connected transactions that are in the PREPARED
state from another connection, but it is better to play it safe. The
is_prepared flag was introduced in the InnoDB Plugin.

trx_n_prepared: A new counter, counting the number of InnoDB
transactions in the PREPARED state.

logs_empty_and_mark_files_at_shutdown(): On shutdown, allow
trx_n_prepared transactions to exist in the system.

trx_undo_free_prepared(), trx_free_prepared(): New functions, to free
the memory objects of PREPARED transactions on shutdown. This is not
needed in the built-in InnoDB, because it would collect all allocated
memory on shutdown. The InnoDB Plugin needs this because of
innodb_use_sys_malloc.

trx_sys_close(): Invoke trx_free_prepared() on all remaining
transactions.
2011-04-07 21:12:54 +03:00
Guilhem Bichot
dc65d9217c Fix for Bug#11765141 - "58072: LOAD DATA INFILE: LEAKS IO CACHE MEMORY WHEN ERROR OCCURS"
mysql-test/t/loaddata.test:
  test for bug; without fix, running the test with --valgrind would show the leak
  and make the test fail.
sql/sql_load.cc:
  * In READ_INFO class, 'need_end_io_cache' is true as long as init_io_cache() was called,
  so if it's true, we need to call end_io_cache(), to free memory allocated
  by init_io_cache(). No matter the value of 'error'. In the bug's scenario,
  'error' was set to true in read_sep_field() because
  '1' (read from file) isn't suitable to load into a geometric column. Because of
  'error', end_io_cache() was not called.
  Note: end_io_cache() calls my_b_flush_io_cache(), which will do nothing wrong given
  that the file is opened for reads only; see the init_io_cache() call which uses
  only those read-only types:
  (get_it_from_net) ? READ_NET : (is_fifo ? READ_FIFO : READ_CACHE).
  IF the cache were rather used to write to the file, my_b_flush_io_cache() may
  write to it, and it may be questionable to write to the file
  if 'error' is true. But here there's no problem.
  * Now that 'need_end_io_cache' is checked even if 'error' is true, it needs
  to be initialized in all cases.
  * Bonus: move some variables to the initialization list.
2011-04-07 15:09:19 +02:00
Bjorn Munch
1d07af2543 null upmerge 2011-04-07 13:43:03 +02:00
Bjorn Munch
f9007d9d0f merge from 5.5-mtr 2011-04-07 13:42:00 +02:00
Bjorn Munch
9e255716f0 merge from 5.1-mtr 2011-04-07 13:15:24 +02:00
Bjorn Munch
78b5a6324a merge from 5.5 main 2011-04-07 12:36:01 +02:00
Jon Olav Hauglid
cc6c1e382c BUG#11815600 - [ERROR] INNODB COULD NOT FIND INDEX
PRIMARY KEY NO 0 FOR TABLE IN ERROR LOG 

Post merge fix, update the .result file.
2011-04-07 11:41:20 +02:00
Bjorn Munch
c0bdb20979 Bug #12316050 MTR: --REPORT-TIMES GIVES TOO HIGH NUMBER FOR INITIALIZATION
Forgot that the main thread would be idle while waiting for tests
Added sub mark_time_idle() so ignore time spent waiting
Also added a new time category 'admin' to take some of 'init'
2011-04-07 10:12:52 +02:00
Bjorn Munch
cda1dc52c2 Bug #11760361 52764: EXTEND MYSQL-TEST-RUN SUPPORT FOR SUN STUDIO DBX BY ADDING --DBX DEBUGGER
Added necessary options and variables
Added dbx_arguments() similar to gdb_arguments()
Unlike gdb, cannot use init file but must provide commands and args as
  command line argument to dbx
Also simplified debugger behavior to always start with a breakpoint in main()
2011-04-07 10:10:57 +02:00
Sunanda Menon
50a1629f64 Merge from mysql-5.5.11-release 2011-04-07 08:59:07 +02:00
Georgi Kodinov
c04a6bcbde merge mysql-5.1->mysql-5.5 2011-04-06 18:11:43 +03:00
Georgi Kodinov
af6c8b59ea Bug #12325444 : 60746: CLIENT_PLUGIN.H IS BROKEN
Removed the STDCALL macro and the function from the .def file,
since it's not used by the connectors atm.
2011-04-06 17:31:26 +03:00
Vasil Dimov
179710160a Null merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-04-06 14:40:57 +03:00
Vasil Dimov
acedd7a4a5 Load the innodb plugin instead of builtin in innodb_plugin.innodb_bug59410
Spotted by:	Marko
2011-04-06 14:38:24 +03:00
Marko Mäkelä
484b016fd1 Non-functional change: move a printout
from innobase_shutdown_for_mysql() to
logs_empty_and_mark_files_at_shutdown()
where the rest of the logic is located.
2011-04-06 10:34:49 +03:00
Marko Mäkelä
2b8312e50c Enable __attribute__((cold)) only for GCC 4.3 and later.
This attribute was introduced in bzr revision-id
marko.makela@oracle.com-20110405073758-b8y733yvkqum940i
and caused older GCC versions to emit warnings.
2011-04-06 09:22:36 +03:00
Bjorn Munch
96a7bbb36e null upmerge 2011-04-05 15:26:17 +02:00
Bjorn Munch
89eb32c5c3 merge from 5.5 main 2011-04-05 15:04:05 +02:00
Bjorn Munch
f6b6ab987d merge from 5.1 main 2011-04-05 15:02:01 +02:00
Georgi Kodinov
a89a468fbe Fixed a wrong name in a comment 2011-04-05 15:25:19 +03:00
Marko Mäkelä
2d4d5f2506 Merge from mysql-5.5-innodb to local tree. 2011-04-05 14:18:54 +03:00
Marko Mäkelä
0edf090a9e Remove unused functions.
os_thread_get_curr(), os_thread_get_priority(), os_thread_set_priority(),
os_thread_get_last_error(): Remove.
2011-04-05 13:58:37 +03:00
Vasil Dimov
abbdd3b643 Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-04-05 11:30:38 +03:00
Vasil Dimov
7930eb2b8b Null merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-04-05 11:23:26 +03:00
Vasil Dimov
b93cc42623 Add the testcase for Bug#59410 to 5.1/InnoDB Plugin
Bug#59410 read uncommitted: unlock row could not find a 3 mode lock
on the record

This bug is present only in 5.6 but I am adding the test case to earlier
versions to ensure it never appears in earlier versions too.
2011-04-05 11:20:20 +03:00
Vasil Dimov
402217544e Add the testcase for Bug#59410 to 5.1/builtin
Bug#59410 read uncommitted: unlock row could not find a 3 mode lock
on the record

This bug is present only in 5.6 but I am adding the test case to earlier
versions to ensure it never appears in earlier versions too.
2011-04-05 11:08:36 +03:00
Marko Mäkelä
67496884ae Bug 12323643 - CLEAN UP THE INNODB THREAD SHUTDOWN AND ASSERTIONS (WL#5136)
On shutdown, do not exit threads in os_event_wait(). This method of
exiting was only used by the I/O handler threads. Exit them on a
higher level.

os_event_wait_low(), os_event_wait_time_low(): Do not exit on shutdown.

os_thread_exit(), ut_dbg_assertion_failed(), ut_print_timestamp(): Add
attribute cold, so that GCC knows that these functions are rarely
invoked and can be optimized for size.

os_aio_linux_collect(): Return on shutdown.

os_aio_linux_handle(), os_aio_simulated_handle(), os_aio_windows_handle():
Set *message1 = *message2 = NULL and return TRUE on shutdown.

fil_aio_wait(): Return on shutdown.

logs_empty_and_mark_files_at_shutdown(): Even in very fast shutdown
(innodb_fast_shutdown=2), allow the background threads to exit, but
skip the flushing and log checkpointing.

innobase_shutdown_for_mysql(): Always wait for all the threads to exit.

rb:633 approved by Sunny Bains
2011-04-05 10:37:58 +03:00
Marko Mäkelä
6fe99e2dda Bug 12323643 - CLEAN UP THE INNODB THREAD SHUTDOWN AND ASSERTIONS (WL#5136)
Remove most references to thread id in InnoDB. Three references
remain: the current holder of a mutex, and the current x-lock holder
of a rw-lock, and some references in UNIV_SYNC_DEBUG checks. This
allows MySQL to change the thread associated to a client connection.

Tighten the UNIV_SYNC_DEBUG checks, trying to ensure that no InnoDB
mutex or x-lock is being held when returning control to MySQL. The
only semaphore that may be held is the btr_search_latch in shared mode.

sync_thread_levels_empty_except_dict(): A wrapper for
sync_thread_levels_empty_gen(TRUE).

sync_thread_levels_nonempty_trx(): Check that the current thread is
not holding any InnoDB semaphores, except btr_search_latch if
trx->has_search_latch.

sync_thread_levels_empty(): Unused function; remove.

trx_t: Remove mysql_thread_id and mysql_process_no.

srv_slot_t: Remove id and handle.

row_search_for_mysql(), srv_conc_enter_innodb(),
srv_conc_force_enter_innodb(), srv_conc_force_exit_innodb(),
srv_conc_exit_innodb(), srv_suspend_mysql_thread: Assert
!sync_thread_levels_nonempty_trx().

rb:634 approved by Sunny Bains
2011-04-05 10:18:43 +03:00
Georgi Kodinov
5321b3a57a Bug #11758687: 50924: object names not resolved correctly
on lctn2 systems

There was a local variable in get_all_tables() to store the 
"original" value of the database name as it can get lowercased
depending on the lower_case_table_name value.
get_all_tables() iterates over database names and for each 
database iterates over the tables in it.
The "original" db name was assigned in the table names loop.
Thus the first table is ok, but the second and subsequent tables
get the lowercased name from processing the first table.
Fixed by moving the assignment of the original database name
from the inner (table name) to the outer (database name) loop.
Test suite added.
2011-04-04 16:04:15 +03:00
Vasil Dimov
d8ddf751cd Merge mysql-5.1-innodb -> mysql-5.5-innodb (empty) 2011-04-04 09:28:38 +03:00
Vasil Dimov
4f95587668 Merge mysql-5.5 -> mysql-5.5-innodb 2011-04-04 09:26:38 +03:00
Vasil Dimov
26af7f5737 Merge mysql-5.1 -> mysql-5.1-innodb 2011-04-04 09:24:55 +03:00
Vasil Dimov
0373147610 Merge mysql-5.1 -> mysql-5.5 (empty) 2011-04-04 09:13:46 +03:00
Vasil Dimov
7dcb8a0106 Merge mysql-5.5-innodb -> mysql-5.5 2011-04-04 09:12:11 +03:00
Vasil Dimov
d2d7aa4800 Merge mysql-5.1-innodb -> mysql-5.1 2011-04-04 09:06:08 +03:00
Gleb Shchepa
7ba944c465 auto-merge 5.1-->5.5 (bug 11766094) 2011-04-02 23:41:10 +04:00
Gleb Shchepa
7aa81e2a02 Bug #11766094 - 59132: MIN() AND MAX() REMOVE UNSIGNEDNESS
In the string context the MIN() and MAX() functions don't take
into account the unsignedness of the UNSIGNED BIGINT argument
column.

I.e.:
        CREATE TABLE t1 (a BIGINT UNSIGNED);
        INSERT INTO t1 VALUES (18446668621106209655);
        SELECT CONCAT(MAX(a)) FROM t1;

returns -75452603341961.


mysql-test/r/func_group.result:
  Test case for bug #11766094.
mysql-test/t/func_group.test:
  Test case for bug #11766094.
sql/item.cc:
  Bug #11766094 - 59132: MIN() AND MAX() REMOVE UNSIGNEDNESS
  
  The Item_cache_int::val_str() method has been modified to
  take into account the unsigned_flag value when converting
  data to string.
2011-03-31 22:59:11 +04:00
Bjorn Munch
21872568f7 null-merge 2011-03-31 15:50:29 +02:00
Bjorn Munch
fc7a12c05d One more test suppression for rpl_extra_col_master tests 2011-03-31 15:48:05 +02:00
Georgi Kodinov
6d849b93f2 Merged the fix for bug #11936829 to 5.5.11 release
Bug #11936829: DIFF. BETWEEN MYSQL.USER (AUTHENTICATION_STRING) IN 
  FRESH AND UPGRADED 5.5.11
             
There was no modification for pre 5.5.11 builds that had 
authentication_string.  Thus the column was not upgraded 
by mysql_upgrade.
                         
Fixed by adding an ALTER TABLE MODIFY to update an existing 
column to the latest type version.
                                     
Test suite added.
2011-03-31 16:08:31 +03:00
Mattias Jonsson
8e2b0dc60c merge 2011-03-31 14:41:44 +02:00
Mattias Jonsson
92c6bc5e14 Backport of bug#11891417 from mysql-trunk to mysql-5.5 2011-03-31 14:38:54 +02:00
Bjorn Munch
9313de8f73 null upmerge 2011-03-31 12:10:40 +02:00
Bjorn Munch
772b7e89a7 merge from 5.5 main 2011-03-31 12:09:03 +02:00
Bjorn Munch
237d4f8fc7 merge from 5.1 main 2011-03-31 11:22:54 +02:00
Bjorn Munch
a93d530645 Small followup fix after MTR warning cleanup 2011-03-31 10:37:15 +02:00
Bjorn Munch
997eb49e49 Small followup fix after MTR warning cleanup 2011-03-31 10:33:07 +02:00