Commit graph

54775 commits

Author SHA1 Message Date
Tatiana A. Nurnberg
7c5d30473b auto-merge 2008-07-10 15:28:37 +02:00
Tatiana A. Nurnberg
0617cf0f78 auto-merge 2008-07-10 15:25:20 +02:00
Tatiana A. Nurnberg
730f53f0d2 Bug#35848: UUID() returns UUIDs with the wrong time
offset for time part in UUIDs was 1/1000 of what it
should be. In other words, offset was off.

Also handle the case where we count into the future
when several UUIDs are generated in one "tick", and
then the next call is late enough for us to unwind
some but not all of those borrowed ticks.

Lastly, handle the case where we keep borrowing and
borrowing until the tick-counter overflows by also
changing into a new "numberspace" by creating a new
random suffix.

mysql-test/r/func_misc.result:
  Show that time-part of UUIDs is correct now.
mysql-test/t/func_misc.test:
  Show that time-part of UUIDs is correct now
  by replicating the C-code's resultin SQL.
  Results also decode to expect date-data on
  command-line (external validation).
  
  No test for unwinding of borrowed ticks as
  this a) is a race and b) depends on what timer
  we get.
sql/item_strfunc.cc:
  correct offset for date/time-part of UUID.
  also make sure that when we counted into
  the future earlier (several UUIDs generated
  in same tick), we only give back as many
  "borrowed" ticks as we can without duplicating
  past timestamps. If our tick-counter overflows
  before we can give back, or if the system-clock
  is set back (by user or Daylight Saving Time),
  we create a new random suffix to avoid
  collisions and clear the tick-counter.
2008-07-10 05:24:46 +02:00
Tatiana A. Nurnberg
0833d66847 Bug#35848: UUID() returns UUIDs with the wrong time
offset for time part in UUIDs was 1/1000 of what it
should be. In other words, offset was off.

Also handle the case where we count into the future
when several UUIDs are generated in one "tick", and
then the next call is late enough for us to unwind
some but not all of those borrowed ticks.

Lastly, handle the case where we keep borrowing and
borrowing until the tick-counter overflows by also
changing into a new "numberspace" by creating a new
random suffix.


mysql-test/r/func_misc.result:
  Show that time-part of UUIDs is correct now.
mysql-test/t/func_misc.test:
  Show that time-part of UUIDs is correct now
  by replicating the C-code's resultin SQL.
  Results also decode to expect date-data on
  command-line (external validation).
  
  No test for unwinding of borrowed ticks as
  this a) is a race and b) depends on what timer
  we get.
sql/item_strfunc.cc:
  correct offset for date/time-part of UUID.
  also make sure that when we counted into
  the future earlier (several UUIDs generated
  in same tick), we only give back as many
  "borrowed" ticks as we can without duplicating
  past timestamps. If our tick-counter overflows
  before we can give back, or if the system-clock
  is set back (by user or Daylight Saving Time),
  we create a new random suffix to avoid
  collisions and clear the tick-counter.
2008-07-10 03:58:30 +02:00
Gleb Shchepa
05dd3abe50 null merge 5.0-bugteam --> 5.1-bugteam 2008-07-10 03:13:42 +05:00
Gleb Shchepa
2334691f87 merge 5.1-main --> 5.1-bugteam 2008-07-10 03:01:41 +05:00
Gleb Shchepa
fa00dfe6b9 merge 5.0-main --> 5.0-bugteam 2008-07-10 00:54:20 +05:00
Matthias Leich
1d9fab7f4d Upmerge 5.0 -> 5.1 2008-07-09 20:55:23 +02:00
Mattias Jonsson
c4b408f96d merge 2008-07-09 15:15:11 +02:00
Mats Kindahl
d034ae598f Ensuring that master and slave both issue a RESET MASTER and RESET SLAVE
when resetting replication tests.  If not, circular replication setups
will leave cruft in the slaves binary log.

mysql-test/include/master-slave-reset.inc:
  Adding RESET MASTER on slave and RESET SLAVE on master. In order to avoid
  having to re-generate all the replication test result files, I disable the
  query log for the added statements.
mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
  Adding code to clean up after test. Disabling query log for the cleanup code.
2008-07-09 14:34:00 +02:00
Ramil Kalimullin
d59b371305 Fix for bug#37669: Server crash by setting "@@session.innodb_table_locks"
Problem: reading/writing data from/to an address without proper
alignment leads to SIGBUS on some platforms.

Fix: use the correct data type when dereferencing variable values.


sql/sql_plugin.cc:
  Fix for bug#37669: Server crash by setting "@@session.innodb_table_locks"
  
  Use *(my_bool *) typecast to avoid misaligned reading/writing and 
  to get/set proper boolean values.
2008-07-09 16:52:26 +05:00
Joerg Bruehe
267917a4e6 Merge main 5.1 into 5.1-build 2008-07-09 13:25:31 +02:00
Matthias Leich
a81572bc42 1. Fix for Bug#37160
"funcs_2: The tests do not check if optional character
               sets exist."
2. Minor cleanup
2008-07-09 13:22:07 +02:00
Mattias Jonsson
d4b0fcc90a Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
The problem is that relying on the output of the 'ls' command is not
portable as its behavior is not the same between systems and it might
even not be available at all in (Windows).

So I added list_files that relies on the portable mysys library instead.
(and also list_files_write_file and list_files_append_file,
since the test was using '--exec ls' in that way.)

client/mysqltest.c:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  To be able to replace the use of '--exec ls' I have added
  list_files, list_files_write_file and list_files_append_file.
  
  list_files <dirname> [<filename incl. wild-cards>]
  is equivalent to 'ls <dirname>/[<filename incl. wild-cards>]'
  
  list_files_write_file creates/overwrites a file with the content
  list_files_append_file creates/appends a file with the content
  list_files* return a sorted output.
mysql-test/r/mysqltest.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  result file change, due to added test of the new list_files command.
mysql-test/suite/parts/inc/partition_check_drop.inc:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Using the new list_files instead of 'ls'.
  
  Changed the use of local variables (ls_file, file_list)
  and server variable (@aux).
mysql-test/suite/parts/inc/partition_layout.inc:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Using the new list_files instead of 'ls'.
mysql-test/suite/parts/inc/partition_layout_check1.inc:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Using the new list_files instead of 'ls'.
mysql-test/suite/parts/inc/partition_layout_check2.inc:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter1_1_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter1_2_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter2_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter3_innodb.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter3_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_basic_innodb.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_basic_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_basic_symlink_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_engine_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_syntax_myisam.result:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Replaces '--exec ls' with list_files.
  Removal of the directory part of file listing.
mysql-test/t/mysqltest.test:
  Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
  
  Adding test for the new mysqltest commands list_files,
  list_files_write_file and list_files_append_file.
2008-07-09 13:19:04 +02:00
Joerg Bruehe
6ef962a62e Merge from main 5.0 to 5.0-build. 2008-07-09 13:17:53 +02:00
Georgi Kodinov
3bcbaf6cbf fixed a compilation warning on windows 64. 2008-07-09 13:03:48 +03:00
Georgi Kodinov
fbfef628bc automatic merge of 5.0-bugteam into the 5.0.66 release clone. 2008-07-09 12:59:28 +03:00
unknown
55ab1ef695 Raise version number after cloning 5.0.66 2008-07-09 08:23:30 +02:00
Marc Alff
5cf61bd344 Fixed remaining test failure 2008-07-08 13:17:28 -06:00
Mats Kindahl
9e2abfacf2 Patch to remove extreneous printout.
mysql-test/include/wait_for_slave_sql_to_stop.inc:
  Removing extreneous printout.
2008-07-08 19:59:50 +02:00
Daniel Fischer
1ee9ca9e46 let's make a real honest attempt at finding the daemons in libexec 2008-07-08 19:17:06 +02:00
Marc Alff
445ac78967 Cleanup merge issues in mysql-test/t/parser.test 2008-07-08 10:33:09 -06:00
Marc Alff
1c9cf4b06c Bug#37525 funcs_1: <engine>_storedproc.test fail
Fixed the test to expect the correct result.
The previous test script was in fact affected by 26030,
and wrongly expected a ER_PARSE_ERROR error.
2008-07-08 10:32:02 -06:00
Mats Kindahl
0e628e2db3 Manual merge with mysql-5.1-rpl 2008-07-08 18:23:09 +02:00
Mats Kindahl
f36c282d21 Bug #37939 rpl_row_stop_middle_update fails sporadically on pushbuild
Bug #37940    rpl_dual_pos_advance fails sporadically on pushbuild,fail wait_for_slave_to_stop
Bug #37941    rpl_flushlog_loop fails sporadically on pushbuild
  
Several tests fail when waiting for the slave to stop in what
appears to be timeouts caused by a timeout value set to low. 
This causes false failures when the servers are loaded.
  
In order to try to avoid false negatives, we increase the
timeout 10 times and also print some more information in the
event that the slave fails to stop when expected to.
  
We add a printout of the current processes running to be able
to see if any process have been executing for an unexpectedly
long time, and also print the binlog events at the position
indicated by SHOW SLAVE STATUS.


mysql-test/include/wait_for_slave_sql_to_stop.inc:
  - Increasing default timeout 10 times and allowing it to be configurable.
  - Adding printout of process list on failure.
  - Adding printout of binlog events on master that has not yet been applied,
    unless $keep_connection is true.
2008-07-08 18:21:02 +02:00
Jonathan Perkin
0d62f60b81 Merge from trunk. 2008-07-08 16:39:44 +02:00
Mats Kindahl
40e095e7de Manual merge of mysql-5.0-bugteam -> mysql-5.1-bugteam 2008-07-08 13:18:34 +02:00
Sven Sandberg
967916534e merged in disabled test cases 2008-07-08 12:59:23 +02:00
Sven Sandberg
e1b5b1ec1e BUG#37962: *_func tests containing sleeps/race conditions
This is not a fix, it just disables the erroneous test cases.


mysql-test/t/disabled.def:
  Disabled a number of new tests that contain sleeps and that
  have not been checked for race conditions. At least some of
  them contain race conditions.
2008-07-08 12:56:05 +02:00
Mats Kindahl
b93fcb9b0e Manual merge with mysql-5.0-bugteam 2008-07-08 10:37:42 +02:00
Mattias Jonsson
df95b663b7 merge (update of 51-bugteam, during testing for pushing...) 2008-07-08 01:05:16 +02:00
Marc Alff
8aaccbfc21 Manual merge of bug#26030 in mysql-5.1-bugteam 2008-07-07 15:53:20 -06:00
Mattias Jonsson
c2c4cd1e28 merge 2008-07-07 23:08:29 +02:00
Mattias Jonsson
d11d5cfca8 Bug#35745: SELECT COUNT(*) is not correct for some partitioned tables.
problem was that ha_partition::records was not implemented, thus
using the default handler::records, which is not correct if the engine
does not support HA_STATS_RECORDS_IS_EXACT.
Solution was to implement ha_partition::records as a wrapper around
the underlying partitions records.

The rows column in explain partitions will now include the total
number of records in the partitioned table.

(recommit after removing out-commented code)
2008-07-07 22:42:19 +02:00
Marc Alff
a8a986bd66 Merge 2008-07-07 13:59:07 -06:00
Sven Sandberg
df1a197642 merged fix for bug#37373 into 5.1-rpl 2008-07-07 18:24:04 +02:00
Marc Alff
c7724872d8 Bug#26030 (Parsing fails for stored routine w/multi-statement execution
enabled)

Before this fix, the lexer and parser would treat the ';' character as a
different token (either ';' or END_OF_INPUT), based on convoluted logic,
which failed in simple cases where a stored procedure is implemented as a
single statement, and used in a multi query.

With this fix:
- the character ';' is always parsed as a ';' token in the lexer,
- parsing multi queries is implemented in the parser, in the 'query:' rules,
- the value of thd->client_capabilities, which is the capabilities
  negotiated between the client and the server during bootstrap,
  is immutable and not arbitrarily modified during parsing (which was the
  root cause of the bug)
2008-07-07 10:00:08 -06:00
Sven Sandberg
db674c9f87 BUG#37933: Test "rpl_insert" fails - timing problem in replication test ?
Problem: the test syncs slave by a 'wait_condition' waiting until
table t1 has 5000 rows. However, there is no guarantee that t1
makes it to the slave before the wait_condition.
Fix: sync_slave_with_master just after t1 was created.


mysql-test/suite/rpl/t/rpl_insert.test:
  Added sync_slave_with_master to ensure that table t1 is on
  slave before the slave executes wait_condition.
2008-07-07 17:38:47 +02:00
Sven Sandberg
7611288efd merged fixes for bug#37858 2008-07-07 16:10:31 +02:00
Sven Sandberg
4443880376 merge with local changes for bug#37906 2008-07-07 16:01:25 +02:00
Sven Sandberg
1fc4954d30 Post-merge fixes.
The file tree in mtr's vardir has changed so an old
hard-coded path in mysql-test/t/subselect.test didn't
work.
Fix: update the paths in the test.


mysql-test/r/subselect.result:
  Updated result file.
mysql-test/t/subselect.test:
  Problem: The file tree in mtr's vardir has changed
  so an old hard-coded path didn't work.
  Fix: update the paths in the test.
2008-07-07 14:20:08 +02:00
Sven Sandberg
1bcd20bf7c rpl_row_inexist_tbl gave a merge conflict because the binlog
positions changed. Fixed by removing binlog positions from
output, and also:
 - removed code not used to verify the tested property
 - added comments


mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result:
  Updated result file.
mysql-test/suite/rpl/t/rpl_row_inexist_tbl-slave.opt:
  Removed option file: it's not needed any more.
mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test:
  Improved the test in the following ways:
   - The table t2 was not used to verify the property to test,
  so t2 has been removed.
   - Now printing only the relevant column from SHOW SLAVE STATUS
   - Added comments.
2008-07-07 11:18:09 +02:00
Georgi Kodinov
50853ac31a Bug#37627: addendum :
- moved the test into a separate file to check for presence of the test variable

mysql-test/r/subselect.result:
  Bug#37627: moved the test to a separate file
mysql-test/r/subselect_debug.result:
  Bug#37627: moved the test to a separate file
mysql-test/t/subselect.test:
  Bug#37627: moved the test to a separate file
mysql-test/t/subselect_debug.test:
  Bug#37627: moved the test to a separate file
2008-07-07 11:43:56 +03:00
Mats Kindahl
914cae3a2d Bug #37150 Risk for crash in User_var_log_event::exec_event()
On certain kinds of errors (e.g., out of stack), a call to Item_func_
set_user_var::fix_fields() might fail.  Since the return value of this
call was not checked inside User_var_log_event::exec_event(), continuing
execution after this will cause a crash inside Item_func_set_user_var::
update_hash().

The bug is fixed by aborting execution of the event with an error if
fix_fields() fails, since it is not possible to continue execution anyway.


sql/log_event.cc:
  Aborting execution of event if fix_fields() fails since execution
  of update_hash() might cause a crash.
2008-07-07 09:58:27 +02:00
Sven Sandberg
39cb0a07e0 BUG#37906: innodb_max_dirty_pages_pct_func does not clean up after itself
Made the test innodb_max_dirty_pages_pct_func clean up after itself.


mysql-test/r/innodb_max_dirty_pages_pct_func.result:
  Updated result file.
mysql-test/t/disabled.def:
  Fixed BUG#37906
mysql-test/t/innodb_max_dirty_pages_pct_func.test:
  Made the test clean up after itself.
2008-07-06 19:14:41 +02:00
Sven Sandberg
d9249cad45 Merge 5.1 -> 5.1-rpl 2008-07-06 19:07:30 +02:00
Sven Sandberg
1fb36976d6 BUG#37373: rpl_ndb_transaction fails sporadically in pb on sol10-amd64-a and sol10-sparc-a
Problem: rpl_ndb_transaction fails because it assumes nothing
is written to the binlog at a certain point. However, ndb may
binlog updates in ndb system tables at a nondeterministic
time point after an ndb table update has been committed.
Fix: break the test into two. rpl_ndb_transaction still does
the ndb updates needed by the first half of the test. The new
test case rpl_bug26395 includes the part that assumes nothing
more will be written to the binlog.


mysql-test/include/sync_slave_io_with_master.inc:
  Like sync_slave_with_master, but only waits until the IO thread has
  synced; the SQL thread may still be behind.
mysql-test/suite/rpl/r/rpl_bug26395.result:
  New result file.
mysql-test/suite/rpl/t/rpl_bug26395-master.opt:
  New option file.
mysql-test/suite/rpl/t/rpl_bug26395-slave.opt:
  New option file.
mysql-test/suite/rpl/t/rpl_bug26395.test:
  - Moved second half of rpl_ndb_transaction here.
  - Improved the test case: instead of using a sleep,
  it waits for the slave's io thread to sync up to a proper
  position, and for the slave's sql thread to sync up to
  another position.
  - Added a warning that no more tests should be added at the
  end of the file.
mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result:
  Updated and renamed result file.
mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions-master.opt:
  No need for the special debug flag any more, it was used by
  the second part of the test which is now in rpl_bug26395.
  Also renamed the file.
mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions-slave.opt:
  Renamed option file.
mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test:
  - Moved second half of the test to another test (rpl_bug26395)
  - Improved comments.
  - Extended the mixed transaction test to include also innodb.
  - Used 'source include/diff_tables.inc' instead of listing
  several identical tables in the result file.
  - Renamed the test.
2008-07-06 12:53:25 +02:00
Daniel Fischer
0257708437 ild can not be expected on all matching installs 2008-07-05 09:44:10 +02:00
Chad MILLER
205a946267 Merge from 5.0. Add new 5.1 files. Drop bdb. 2008-07-04 14:48:25 -04:00
Chad MILLER
c6f9477bda Merge bug. 2008-07-04 13:30:26 -04:00