Commit graph

22687 commits

Author SHA1 Message Date
Mattias Jonsson
9cb4c7209a merge 2008-12-10 09:06:58 +01:00
Georgi Kodinov
5705e3abda merged 37936 to 5.1-bugteam 2008-12-09 19:58:50 +02:00
Georgi Kodinov
bd8657786a Bug : ASSERT_COLUMN_MARKED_FOR_WRITE in Field_datetime::store ,
Field_varstring::store
      
The code that temporary saved the bitmaps of the read set and the write set so that
it can set it to all columns for debug purposes was not expecting that the
table->read_set and table->write_set can be the same. And was always saving both in 
sequence.
As a result the original value was never restored.
Fixed by saving & restoring the original value only once if the two sets are the
same (in a special set of functions).

mysql-test/r/select.result:
  Bug : test case
mysql-test/t/select.test:
  Bug : test case
sql/item_cmpfunc.cc:
  Bug : don't save/restore twice if the read and write sets are the same
sql/opt_range.cc:
  Bug : don't save/restore twice if the read and write sets are the same
sql/table.h:
  Bug : Make a designated set of functions that save/restore
  both the read and the write sets in a single call.
2008-12-09 19:46:03 +02:00
Horst Hunger
1da82b612a due to merge 2008-12-09 17:34:31 +01:00
Sergey Glukhov
79a047c555 automerge 2008-12-09 19:52:50 +04:00
Matthias Leich
8ad1fdefbe Merge of latest changes into GCA tree
no conflicts
2008-12-09 16:40:12 +01:00
Sergey Glukhov
6673677803 updated test results
mysql-test/suite/parts/r/partition_bit_innodb.result:
  updated test result
mysql-test/suite/parts/r/partition_bit_myisam.result:
  updated test result
2008-12-09 19:31:22 +04:00
Horst Hunger
b53c4d0bac due to merge 2008-12-09 16:15:07 +01:00
Matthias Leich
1e189e52d9 Merge of fix for Bug 40904 into GCA tree 2008-12-09 15:11:53 +01:00
Sergey Glukhov
87f395d1d9 5.0-bugteam->5.1-bugteam merge 2008-12-09 17:31:22 +04:00
Sergey Glukhov
4ce563e01c Bug#31399 Wrong query result when doing join buffering over BIT fields
if table has bit fields then uneven bits(if exist) are stored into null bits place.
So we need to copy null bits in case of uneven bit field presence.


mysql-test/r/type_bit.result:
  test result
mysql-test/t/type_bit.test:
  test case
sql/sql_select.cc:
  if table has bit fields then uneven bits(if exist) are stored into null bits place.
  So we need to copy null bits in case of uneven bit field presence.
2008-12-09 16:59:47 +04:00
Sergey Glukhov
419e053a41 Bug#31291 ALTER TABLE CONVERT TO CHARACTER SET does not change some data types
added ability for TINY[MEDIUM] text fields 
to be converted to greater subtype during
alter if necessary(altered charset)


mysql-test/r/alter_table.result:
  test result
mysql-test/t/alter_table.test:
  test case
sql/sql_table.cc:
  added ability for TINY[MEDIUM] text fields 
  to be converted to greater subtype during
  alter if necessary(altered charset)
2008-12-09 16:38:52 +04:00
Sergey Glukhov
dacd8066c0 automerge 2008-12-09 16:17:17 +04:00
Sergey Glukhov
d49d4298e9 automerge 2008-12-09 16:11:01 +04:00
Sergey Glukhov
82aedffa03 5.0-bugteam->5.1-bugteam merge
mysql-test/r/myisam_data_pointer_size_func.result:
  restore default value
mysql-test/r/partition_datatype.result:
  test case fix
mysql-test/t/myisam_data_pointer_size_func.test:
  restore default value
2008-12-09 15:16:39 +04:00
Sergey Glukhov
681a2d1a53 bug#35558 Wrong server metadata blows up the client
the problem: FORMAT func max_length value was calculated incorrectly
the fix: correct calculation of max_length


mysql-test/r/func_str.result:
  test result
mysql-test/t/func_str.test:
  test case
sql/item_strfunc.h:
  the problem: FORMAT func max_length value was calculated incorrectly
  the fix: correct calculation of max_length
2008-12-09 14:00:43 +04:00
Sergey Glukhov
cbb368aa88 Bug#35796 SHOW CREATE TABLE and default value for BIT field
show default value for BIT field in printable format


mysql-test/r/type_bit.result:
  Bug#35796 SHOW CREATE TABLE and default value for BIT field
  test result
mysql-test/t/type_bit.test:
  Bug#35796 SHOW CREATE TABLE and default value for BIT field
  test case
sql/item.cc:
  Bug#35796 SHOW CREATE TABLE and default value for BIT field
  issue an error if BIN|HEX deafult value is empty value
  (behaviour like for INT fields)
2008-12-09 13:53:23 +04:00
Sergey Vojtovich
0e62ee8e79 Merge. 2008-12-09 13:27:46 +04:00
Sergey Glukhov
0d2db9c020 Bug#40949 Debug version of MySQL server crashes when run OPTIMIZE on compressed table.
reset diagnostics area state after error message is sent


mysql-test/r/myisampack.result:
  test result
mysql-test/t/myisampack.test:
  test case
sql/sql_table.cc:
  reset diagnostics area state after error message is sent
2008-12-09 13:04:28 +04:00
Sergey Vojtovich
34eff0a979 Merge. 2008-12-09 12:53:19 +04:00
Alexey Kopytov
459c6d184f Merge from mysql-5.0-bugteam to mysql-5.1-bugteam. 2008-12-09 11:11:52 +03:00
Alexey Kopytov
695a2fd90e Fixed type_float failures in --ps-protocol mode introduced by the test case for bug .
The reason for the failures was bug  (fixed in 6.0 by dtoa, but still present in 5.0/5.1).

mysql-test/r/type_float.result:
  Modified the failing test case so that bug  does not occur.
mysql-test/t/type_float.test:
  Modified the failing test case so that bug  does not occur.
2008-12-09 11:05:36 +03:00
Andrei Elkin
ed7b41d60e Bug Test 'rpl_packet' fails randomly with changed "Exec_Master_Log_Pos"
binlog_row_mix_innodb_myisam resutls are corrected.
The last operations prior the dup error is
TRUNCATE table t2;
Therefore after
--error ER_DUP_ENTRY
INSERT INTO t2 select * from t1;
table t2 must be empty, and that is what the updated results confirm.


mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
  results changed due to Bug  fixing.
2008-12-08 21:40:25 +02:00
Andrei Elkin
6dec2c1f6a merging 5.1-bt to a local tree. 2008-12-08 21:26:32 +02:00
Andrei Elkin
255418d978 Bug Replication failure on RBR + UPDATE the primary key
Extending bug#40221 regression test: 1. include INSERT 2. convert prim key + autoinc to
unique.

mysql-test/suite/binlog/r/binlog_innodb_row.result:
  results changed.
mysql-test/suite/binlog/t/binlog_innodb_row.test:
  Extending bug#40221 regression test to include the INSERT  dup key errored-out case.
2008-12-08 17:07:08 +02:00
Andrei Elkin
3383003787 merge bug#33420, bug#41173 on bt 5.0 -> 5.1 2008-12-08 16:42:59 +02:00
Matthias Leich
ce942b3995 Fix for Bug#40904 20 tests in 5.1 are disabled in a bad manner
- remove totally wrong (syntax) entries from disabled.def
- remove entries belonging to deleted tests from disabled.def
- correct the comments (correct the bug mentioned) of entries in disabled.def
- remove never completed tests which were accidently pushed
2008-12-08 15:36:42 +01:00
Andrei Elkin
f3d347cfba merge 5.0->5.0-bugteam for a local tree containing bug#33420 Test 'rpl_packet' fails randomly. 2008-12-08 16:29:13 +02:00
Mats Kindahl
bf97e59352 Merging with 5.1-bugteam. 2008-12-08 14:40:57 +01:00
Alexey Kopytov
ebff4ea3a9 Pull from mysql-5.1-bugteam. 2008-12-08 15:19:08 +03:00
Mats Kindahl
b831d619bb Merging patch with 5.1-bugteam. 2008-12-08 11:32:24 +01:00
Georgi Kodinov
a10c3ff2b0 merged bug 37742 to 5.1-bugteam 2008-12-08 12:23:33 +02:00
Alexey Kopytov
6aa4125be3 Merge from mysql-5.0-bugteam to mysql-5.1-bugteam. 2008-12-07 17:51:22 +03:00
Horst Hunger
7586134814 Fix for Bug#36878 after review by Matthias: Only one line in the result files of 32 bit and 64 bit platforms differed and made problems on 64 bit machine with 32 bit mysqld. The removal of the separation into 32 bit and 64 bit versions of that test fixes also this problem. 2008-12-05 16:43:13 +01:00
Georgi Kodinov
1bb6a0ba9f Disable wait_timeout_func and report bug . 2008-12-05 13:24:19 +02:00
Mats Kindahl
832770842e Bug :
Uncommited changes are replicated and stay on slave after
rollback on master

Making test slightly more generic and robust.

mysql-test/suite/rpl/t/rpl_trigger.test:
  Adding code to check that InnoDB is available on slave as well.
  Making code slightly more generic.
2008-12-05 10:23:27 +01:00
Andrei Elkin
6d717c21e7 Bug Test 'rpl_packet' fails randomly with changed "Exec_Master_Log_Pos"
Bug  rpl_packet fails sporadically on pushbuild: query 'DROP TABLE t1' failed


The both issues appeared to be a race between the SQL thread executing CREATE table t1
and the IO thread that is expected to stop at the consequent big size event.
The two events need serialization which is implemented.
The early bug required back-porting a part fixes for bug#38350 exclusively for 5.0 version.



mysql-test/r/rpl_packet.result:
  results changed due to bug#33420, bug#41173.
mysql-test/t/rpl_packet.test:
  adding synchronization for sql and io thread (bug#41173 problem).
  simplifying the output to show only a relevant info (5.0 sole problem bug#33420).
2008-12-04 18:36:45 +02:00
Mats Kindahl
43e9d5b3d5 Bug : Uncommited changes are replicated and stay on slave
after rollback on master

When starting a transaction with a statement containing changes
to both transactional tables and non-transactional tables, the
statement is considered as non-transactional and is therefore
written directly to the binary log. This behaviour was present
in 5.0, and has propagated to 5.1.

If a trigger containing a change of a non-transactional table is
added to a transactional table, any changes to the transactional
table is "tainted" as non-transactional.

This patch solves the problem by removing the existing "hack" that
allows non-transactional statements appearing first in a transaction
to be written directly to the binary log. Instead, anything inside
a transaction is treaded as part of the transaction and not written
to the binary log until the transaction is committed.

mysql-test/suite/rpl/t/rpl_row_create_table.test:
  Removing positions from SHOW BINLOG EVENTS and using
  reset_master_and_slave to start on a fresh binary log each time.
mysql-test/suite/rpl/t/rpl_slave_skip.test:
  Adding explicit commit in AUTOCOMMIT=0 to make test work correctly.
mysql-test/suite/rpl/t/rpl_trigger.test:
  Adding test case for BUG#40116.
sql/log.cc:
  Changing commit logic in binlog_commit() to only commit when
  committing a real transaction or committing a punch transaction.
2008-12-03 20:55:49 +01:00
Alexey Kopytov
91f0c94c23 Fix for bug : Casting 'scientific notation type' to 'unsigned
bigint' fails on windows.

Visual Studio does not take into account some x86 hardware limitations
which leads to incorrect results when converting large DOUBLE values
to BIGINT UNSIGNED ones.

Fixed by adding a workaround for double->ulonglong conversion on
Windows.


include/config-win.h:
  Added double2ulonglong(double) function implementing a workaround for
  broken double->ulonglong conversion on Windows/x86.
include/my_global.h:
  Define double2ulonglong() as a simple typecast for anything but
  Windows.
mysql-test/r/type_float.result:
  Added a test case for bug .
mysql-test/t/type_float.test:
  Added a test case for bug .
2008-12-03 19:15:39 +03:00
Horst Hunger
120cfcacb8 (No) fix for Bug#36878: The test has been taken out fo main and put into "sys_vars", but the opportunity to check the test has been take to improve it. 2008-12-03 16:43:53 +01:00
Horst Hunger
4d63306d42 temporary fix for Bug#37780: A short analysis of the test shows that it needs a replacement of the sleeps and as "In most cases, it might take some time for the thread to die, because the kill flag is checked only at specific intervals" (user manual) to carfully check that and insert waiting for that event. 2008-12-03 10:39:31 +01:00
Andrei Elkin
8ebce5350e Bug Replication failure on RBR + UPDATE the primary key
A transaction could result in having an extra event after a query that
errored e.g because of a dup key. Such a query is rolled back in
innodb, as specified, but has not been in binlog.
It appeares that the binlog engine did not always register for a query
(statement) because the previous query had not reset at its statement
commit time. Because of that fact there was no roll-back to the
trx_data->before_stmt_pos position and a the pending event of the
errorred query could become flushed to the binlog file.

Fixed with deploying the reset of trx_data->before_stmt_pos at the end
of the query processing.


mysql-test/suite/binlog/r/binlog_innodb_row.result:
  a new test file to contain tests dealing with binlogging innodb with
  the row-based format.
mysql-test/suite/binlog/t/binlog_innodb_row.test:
  a new test file to contain tests dealing with binlogging innodb with
  the row-based format.
sql/log.cc:
  Flushing the pending row event at binlog_end_trans() is moved down to the commit
  branch.
  Resetting of trx_data->before_stmt_pos to the uninitialized value at the end of the
  statement is implemented in binlog_commit() and binlog_rollback().
  Asserting emptiness the transaction cache after reset() and the uninitilized value for the statement's savepoint binlog position.
2008-12-02 19:32:07 +02:00
Horst Hunger
7ed2caed58 Fix for Bug#37810:
The "show status" may be received by the server in a startup state, where it only can reject the statement, so that the client then react with 2013.
So, adding 2013 to the list of errors may help, as the "show status" will be repeated then.
2008-12-02 12:34:52 +01:00
Mattias Jonsson
6538f19f9a Bug#40389: REORGANIZE PARTITION crashes when only using one partition
The non documented command 'ALTER PARTITION t REORGANIZE PARTITION'
(without any partitions!) which only make sense for nativly
partitioned engines, such as NDB, crashes the server if there was
no change of number of partitions.

The problem was wrong usage of fast_end_partition function,
which led to usage of a non initialized variable.

mysql-test/r/partition_mgm.result:
  Bug#40389: REORGANIZE PARTITION crashes when only using one partition
  
  Updated test result.
mysql-test/t/partition_mgm.test:
  Bug#40389: REORGANIZE PARTITION crashes when only using one partition
  
  Added new test case.
sql/partition_info.cc:
  Bug#40389: REORGANIZE PARTITION crashes when only using one partition
  
  Added DBUG_ASSERT to easier catch similar problems.
sql/sql_partition.cc:
  Bug#40389: REORGANIZE PARTITION crashes when only using one partition
  
  fast_end_partitions is called later in mysql_alter_table if
  variable fast_alter_partition is set.
2008-12-02 11:18:01 +01:00
Horst Hunger
bf1e547779 Fix for Bug#36876:
The minimum value differs depending on the OS and mysqld build, so that the test fail spradically.
The check of this value has been changed from check of concrete values to the check of a range that is near by the expected value.
2008-12-02 11:05:56 +01:00
Georgi Kodinov
47cff6998a merged addendum to bug 39920 to 5.1-bugteam 2008-12-01 17:43:51 +02:00
Georgi Kodinov
7f9e0b9bfb addendum to the fix for bug : post-merge test suite fixes 2008-12-01 17:41:06 +02:00
Georgi Kodinov
6afd8123a3 merged bug 39920 and 5.1-main to 5.1-bugteam 2008-12-01 17:22:16 +02:00
Georgi Kodinov
7114fde7c0 merged bug 39920 to 5.0-bugteam 2008-12-01 16:41:22 +02:00
Georgi Kodinov
f56e43ce52 Bug : MySQL cannot deal with Leap Second expression in string literal.
Updated MySQL time handling code to react correctly on UTC leap second additions.
MySQL functions that return the OS current time, like e.g. CURDATE(), NOW() etc
will return :59:59 instead of :59:60 or 59:61.
As a result the reader will receive :59:59 for 2 or 3 consecutive seconds 
during the leap second.
This fix will not affect the values returned by UNIX_TIMESTAMP() for leap seconds.
But note that when converting the value returned by UNIX_TIMESTAMP() to broken 
down time the correction of leap seconds will still be applied.
Note that this fix will make a difference *only* if the OS is specially configured
to return leap seconds from the OS time calls or when using a MySQL time zone 
defintion that has leap seconds.
Even after this change date/time literals (or other broken down time 
representations) with leap seconds (ending on :59:60 or 59:61) will still be 
considered illegal and discarded by the server with an error or 
a warning depending on the sql mode.
Added a test case to demonstrate the effect of the fix.

mysql-test/r/timezone3.result:
  Bug : test case
mysql-test/std_data/Moscow_leap:
  Bug : updated the Moscow time zone to Dr. Olson's tzdata 2008i 
  to accomodate for the 2008 leap second
mysql-test/t/timezone3.test:
  Bug : test case
sql/tztime.cc:
  Bug : adjust leap seconds (:60 or :61) to :59
sql/tztime.h:
  Bug : adjust leap seconds (:60 or :61) to :59
2008-12-01 16:18:35 +02:00