1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-18 10:22:14 +03:00
Commit Graph

26831 Commits

Author SHA1 Message Date
unknown
377d710296 BUG#47418 RBR fails, failure with mixup of base/temporary/view
'CREATE TABLE IF NOT EXISTS ... SELECT' statement were causing 'CREATE
TEMPORARY TABLE ...' to be written to the binary log in row-based 
mode (a.k.a. RBR), when there was a temporary table with the same name.
Because the 'CREATE TABLE ... SELECT' statement was executed as 
'INSERT ... SELECT' into the temporary table. Since in RBR mode no 
other statements related to temporary tables are written into binary log,
this sometimes broke replication.

This patch changes behavior of 'CREATE TABLE [IF NOT EXISTS] ... SELECT ...'.
it ignores existence of temporary table with the 
same name as table being created and is interpreted
as attempt to create/insert into base table. This makes behavior of
'CREATE TABLE [IF NOT EXISTS] ... SELECT' consistent with
how ordinary 'CREATE TABLE' and 'CREATE TABLE ... LIKE' behave.
2010-01-16 15:44:24 +08:00
unknown
ccdd2c23a6 Result file updates following merge of MySQL 5.1.42 and XtraDB 9.
mysql-test/suite/funcs_1/r/is_columns_is.result:
  XTRADB_ADMIN_COMMAND table added.
  Column name change: "accessed" -> "access" (XtraDB 9 change).
mysql-test/suite/funcs_1/r/is_tables_is.result:
  XTRADB_ADMIN_COMMAND table added.
mysql-test/suite/pbxt/r/func_group.result:
  Update results to be correct following fix of Bug#43668.
mysql-test/suite/pbxt/r/mysqlshow.result:
  XTRADB_ADMIN_COMMAND table added.
2010-01-16 06:12:57 +01:00
calvin
5486d43541 branches/zip: fix bug#49396: innodb.innodb-index test fails in
embedded mode

This is 2nd part of the fix for bug#49396. The 1st part is
innodb.test. Tested in both embedded mode and normal server mode.
2010-01-15 23:58:16 +00:00
calvin
c07693ed68 branches/zip: Merge revisions 6425:6471 from branches/5.1
to pick up the first part fix of bug49396.

    ------------------------------------------------------------------------
    r6471 | calvin | 2010-01-15 17:43:27 -0600 (Fri, 15 Jan 2010) | 4 lines

    branches/5.1: fix bug#49396: main.innodb test fails in embedded mode

    Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
    mode and normal server mode.
    ------------------------------------------------------------------------
2010-01-15 23:53:47 +00:00
calvin
70ef58ee06 branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
mode and normal server mode.
2010-01-15 23:43:27 +00:00
unknown
62eee9346b Apply to XtraDB MySQL/build-in innodb patches for Bug#49032 and Bug#47720. 2010-01-15 22:12:30 +01:00
Michael Widenius
fa2b339664 Automatic merge 2010-01-15 20:18:42 +02:00
Michael Widenius
fd3e17318b Removed not needed test file (that caused embedded server to fail) 2010-01-15 20:15:14 +02:00
unknown
8997c04008 Merge XtraDB 9 with MariaDB 5.1.42. 2010-01-15 18:02:57 +01:00
unknown
13029651b5 Merge XtraDB 9 into MariaDB. 2010-01-15 16:58:25 +01:00
Michael Widenius
d8ecbbe634 Merge with MySQL 5.1.42
- Marked a couple of tests with --big
- Fixed xtradb/handler/ha_innodb.cc to call explain_filename()

storage/xtradb/handler/ha_innodb.cc:
  Call explain_filename() to get proper names for partitioned tables
2010-01-15 17:27:55 +02:00
Georgi Kodinov
0305aea88a merge 2010-01-15 11:06:46 +02:00
Georgi Kodinov
a07ca23755 merge of version change.
Added not_embedded to the new dbug_sync test file.
2010-01-15 10:51:39 +02:00
Luis Soares
32aa612819 Fix for BUG#49481 and BUG#49482.
BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on delete: 
cant find record
      
BUG#49482: RBR: Replication may break on deletes when MyISAM tables + 
char field are used

When using MyISAM tables, despite the fact that the null bit is
set for some fields, their old value is still in the row. This
can cause the comparison of records to fail when the slave is
doing an index or range scan.

We fix this by avoiding memcmp for MyISAM tables when comparing
records. Additionally, when comparing field by field, we first
check if both fields are not null and if so, then we compare
them. If just one field is null we return failure immediately. If
both fields are null, we move on to the next field.
2010-01-14 14:26:51 +00:00
Luis Soares
5ae7b3c996 BUG#50018: binlog corruption when table has many columns
Small fix in the test case. Changed the UNLOCK tables 
to happen after each insert.
2010-01-14 10:49:40 +00:00
Luis Soares
ebc009c9b3 BUG#50018: automerge from 5.1-bt local --> 5.1-bt local latest. 2010-01-14 10:47:23 +00:00
Martin Hansson
34e5c6750d Merge of fix for Bug#48157. 2010-01-13 12:38:06 +01:00
Georgi Kodinov
6e72f4171f merge 5.1-main to 5.1-bugteam 2010-01-13 12:28:42 +02:00
Sven Sandberg
4dc7be62a9 BUG#49222: Mark RAND() as unsafe
Problem: When RAND() is binlogged in statement mode, the seed is
binlogged too, so the replication slave generates the same
sequence of random numbers. This makes replication work in many
cases, but not in all cases: the order of rows is not guaranteed
for, e.g., UPDATE or INSERT...SELECT statements, so the row data
will be different if master and slave retrieve the rows in
different orders.
Fix: Mark RAND() as unsafe. It will generate a warning if
binlog_format=STATEMENT and switch to row-logging if
binlog_format=ROW.


mysql-test/extra/rpl_tests/rpl_row_func003.test:
  updated test case to ignore new warnings
mysql-test/suite/binlog/r/binlog_unsafe.result:
  updated result file
mysql-test/suite/binlog/t/binlog_unsafe.test:
  Added test for RAND().
  Also clarified some old comments.
mysql-test/suite/rpl/r/rpl_misc_functions.result:
  updated result file
mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result:
  updated test case to ignore new warnings
mysql-test/suite/rpl/r/rpl_optimize.result:
  updated result file
mysql-test/suite/rpl/r/rpl_row_func003.result:
  updated result file
mysql-test/suite/rpl/t/rpl_misc_functions.test:
  updated test case to ignore new warnings
mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test:
  updated test case to ignore new warnings
mysql-test/suite/rpl/t/rpl_optimize.test:
  updated test case to ignore new warnings
mysql-test/suite/rpl/t/rpl_trigger.test:
  updated test case to ignore new warnings
mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result:
  updated result file
sql/item_create.cc:
  Mark RAND() unsafe.
2010-01-13 10:00:03 +01:00
Gleb Shchepa
71fd38e488 Bug #50096: CONCAT_WS inside procedure returning wrong data
Selecting of the CONCAT_WS(...<PS parameter>...) result into
a user variable may return wrong data.

Item_func_concat_ws::val_str contains a number of memory
allocation-saving optimization tricks. After the fix
for bug 46815 the control flow has been changed to a
branch that is commented as "This is quite uncommon!":
one of places where we are trying to concatenate
strings inplace. However, that "uncommon" place
didn't care about PS parameters, that have another
trick in Item_sp_variable::val_str(): they use the
intermediate Item_sp_variable::str_value field,
where they may store a reference to an external
argument's buffer.

The Item_func_concat_ws::val_str function has been
modified to take into account val_str functions
(such as Item_sp_variable::val_str) that return a
pointer to an internal Item member variable that
may reference to a buffer provided.


mysql-test/r/func_concat.result:
  Added test case for bug #50096.
mysql-test/t/func_concat.test:
  Added test case for bug #50096.
sql/item_strfunc.cc:
  Bug #50096: CONCAT_WS inside procedure returning wrong data
  
  The Item_func_concat_ws::val_str function has been
  modified to take into account val_str functions
  (such as Item_sp_variable::val_str) that return a
  pointer to an internal Item member variable that
  may reference to a buffer provided.
2010-01-13 08:16:36 +04:00
Martin Hansson
c8b5804f29 Bug#48157: crash in Item_field::used_tables
MySQL handles the join syntax "JOIN ... USING( field1,
... )" and natural joins by building the same parse tree as
a corresponding join with an "ON t1.field1 = t2.field1 ..."
expression would produce. This parse tree was not cleaned up
properly in the following scenario. If a thread tries to
lock some tables and finds that the tables were dropped and
re-created while waiting for the lock, it cleans up column
references in the statement by means a per-statement free
list. But if the statement was part of a stored procedure,
column references on the stored procedure's free list weren't
cleaned up and thus contained pointers to freed objects.

Fixed by adding a call to clean up the current prepared
statement's free list.


mysql-test/r/sp_sync.result:
  Bug#48157: Test case
mysql-test/t/sp_sync.test:
  Bug#48157: Test result
sql/item.h:
  Bug#48157: Commented field.
sql/sql_parse.cc:
  Bug#48157: Commented function.
sql/sql_update.cc:
  Bug#48157: fix
2010-01-12 15:16:26 +01:00
unknown
03854661c5 Move test from main.trigger to main.trigger_notembedded, as it now depends on INFORMATION_SCHEMA.PROCESSLIST (rather than sleeps) to synchronise. 2010-01-12 09:19:48 +01:00
unknown
37d9810d01 Make test case deterministic by replacing sleep with include/wait_condition.inc 2010-01-11 23:27:39 +01:00
unknown
0855019e3a Fix multiple test suite failures in Buildbot due to races in the test cases or missing server features not properly checked
mysql-test/r/func_misc.result:
  Move test that requires query cache from main.func_misc to main.query_cache.
mysql-test/r/mysqltest.result:
  Fix test failure due to race.
  This test case creates > 300 connections in a tight loop, and depending on thread
  scheduling and load, even though each connection is immediately disconnected
  before connecting the next one, the server max connections may still be exceeded
  due to server not being able to free old connections as fast as new ones are made.
mysql-test/r/query_cache.result:
  Move test that requires query cache from main.func_misc to main.query_cache.
  Move test that requires query cache from main.variables to main.query_cache.
mysql-test/r/query_cache_notembedded.result:
  Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/r/sp_notembedded.result:
  Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/r/udf.result:
  Move test in main.udf that requires query cache to separate file.
mysql-test/r/udf_query_cache.result:
  Move test in main.udf that requires query cache to separate file.
mysql-test/r/variables.result:
  Move test that requires query cache from main.variables to main.query_cache.
mysql-test/suite/funcs_1/datadict/processlist_val.inc:
  Fix race where result file may show state "cleaning up" in the small window
  between setting COMMAND to 'Sleep' and clearing STATE.
mysql-test/suite/rpl/r/rpl_temporary.result:
  Fix race with suppression of warning message by fixing the test to not generate the
  warning message in the first place.
  
  Problem was a race between creating an anonymous account and resetting the slave.
  If the slave reset happens before replicating the account, the subsequest deletion
  of the account will fail to replicate correctly due to missing row.
mysql-test/suite/rpl/t/rpl_temporary.test:
  Fix race with suppression of warning message by fixing the test to not generate the
  warning message in the first place.
  
  Problem was a race between creating an anonymous account and resetting the slave.
  If the slave reset happens before replicating the account, the subsequest deletion
  of the account will fail to replicate correctly due to missing row.
mysql-test/t/func_misc.test:
  Move test that requires query cache from main.func_misc to main.query_cache.
  Move test that requires query cache from main.variables to main.query_cache.
mysql-test/t/mysqltest.test:
  Fix test failure due to race.
  This test case creates > 300 connections in a tight loop, and depending on thread
  scheduling and load, even though each connection is immediately disconnected
  before connecting the next one, the server max connections may still be exceeded
  due to server not being able to free old connections as fast as new ones are made.
mysql-test/t/query_cache.test:
  Move test that requires query cache to main.query_cache.
mysql-test/t/query_cache_notembedded.test:
  Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/t/sp_notembedded.test:
  Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/t/udf.test:
  Move test in main.udf that requires query cache to separate file.
mysql-test/t/udf_query_cache-master.opt:
  Move test in main.udf that requires query cache to separate file.
mysql-test/t/udf_query_cache.test:
  Move test in main.udf that requires query cache to separate file.
mysql-test/t/variables.test:
  Move test that requires query cache from main.variables to main.query_cache.
tests/mysql_client_test.c:
  In tests that require query cache, skip the test if query cache not available.
  Do this dynamically rather than using HAVE_QUERY_CACHE, as there is no guarantee
  that the server we run against was compiled with same preprocessor #define as
  the mysql_client_test program (and since it is trivial to check dynamically).
2010-01-11 14:15:28 +01:00
unknown
4ae5679f47 Postfix
Recover the right contents of the index file at the end of the test case.
2010-01-08 23:32:40 +08:00
unknown
c1043021c8 BUG #28421 Infinite loop on slave relay logs
Manually deleteing one or more entries from 'master-bin.index', will
cause master infinitely loop to send one binlog file. 

When starting a dump session, master opens index file and search the binlog file
which is being requested by the slave. The position of the binlog file in the
index file is recorded. it will be used to find the next binlog file when current
binlog file has dumped completely. As only the position is used, it may
not get the correct file if some entries has been removed manually from the index file.
the master will reopen the current binlog file which has been dump completely
and redump it if it can not get the next binlog file's name from index file.
It obviously is a logical error.


Even though it is allowed to manually change index file,
but it is not recommended. so after this patch, master
sends a fatal error to slave and close the dump session if a new binlog file
has been generated and master can not get it from the index file.
2010-01-08 13:42:23 +08:00
Luis Soares
585303295f BUG#50018: binlog corruption when table has many columns
Some improvements on the test case as suggested during review.
2010-01-07 17:45:54 +00:00
Bjorn Munch
9ada265d39 backport some changes from WL 4378 2010-01-07 13:17:54 +01:00
Luis Soares
4d090ed4f3 merge: 5.1-bugteam bug branch --> 5.1 bugteam latest. 2010-01-07 10:34:27 +00:00
Bjorn Munch
e1b42965a5 Bug #49269 mysqltest crashes on 'reap' if query executed after 'send'
Undid amendment allowing pending reap after switching connections
Moved check for pending reap earlier; failed if running with ps-protocol
2010-01-07 11:22:45 +01:00
Michael Widenius
b96f268acc Removed compiler warnings
Fixed sporadic test failure for suit/pbxt/t/lock_multi.test
Fixed sporadic test faulure for suit/rpl/t/do_grant.test
OpenSolaris 5.11-x86 now compiles (tested with 32 bit)

BUILD/compile-solaris-amd64-debug-forte:
  Added execute bit
BUILD/compile-solaris-x86-32:
  Added execute bit
BUILD/compile-solaris-x86-32-debug:
  Added execute bit
BUILD/compile-solaris-x86-32-debug-forte:
  Added execute bit
BUILD/compile-solaris-x86-forte-32:
  Added execute bit
extra/libevent/devpoll.c:
  Removed compiler warning
extra/libevent/evbuffer.c:
  Removed compiler warning
extra/libevent/select.c:
  Removed compiler warning
mysql-test/mysql-test-run.pl:
  Fixed sporadic test faulure for suit/rpl/t/do_grant.test (Seen on OpenSolaris)
mysql-test/suite/pbxt/r/lock_multi.result:
  Fixed sporadic test failure for suit/pbxt/t/lock_multi.test (seen in buildbot)
  This was done by merging the test with main/lock_multi.test
mysql-test/suite/pbxt/t/lock_multi.test:
  Fixed sporadic test failure for suit/pbxt/t/lock_multi.test (seen in buildbot)
  This was done by merging the test with main/lock_multi.test
mysys/my_sync.c:
  Removed compiler warnings
sql/ha_ndbcluster.cc:
  Fixed linking error on OpenSolaris when compiling without ndb
  Bug #34866 Can't compile on Solaris 9/Sparc with gcc
storage/archive/azlib.h:
  Removed compiler warning about redefined symbols
storage/maria/ma_blockrec.c:
  Removed compiler warning
storage/maria/ma_loghandler.c:
  Removed compiler warning
storage/maria/ma_test3.c:
  Removed compiler warning
storage/myisam/mi_test3.c:
  Removed compiler warning
storage/pbxt/src/ha_pbxt.cc:
  Removed compiler warning
  thr_main -> thr_main_pbxt
storage/pbxt/src/restart_xt.cc:
  thr_main -> thr_main_pbxt
storage/pbxt/src/thread_xt.cc:
  thr_main -> thr_main_pbxt
  This was needed as thr_main() is an internal thread function on OpenSolaris()
storage/pbxt/src/thread_xt.h:
  thr_main -> thr_main_pbxt
storage/xtradb/srv/srv0srv.c:
  Use compatiblity macro to get code to work on OpenSolaris
support-files/compiler_warnings.supp:
  Ignore compiler warning from yassl
2010-01-06 23:27:53 +02:00
Aleksandr Kuzminsky
5b0ab60a4b Synced with extensions-1.0.6 Rev. 135 2010-01-06 04:00:14 -08:00
Bjorn Munch
ed64190b23 Bug #49269 mysqltest crashes on 'reap' if query executed after 'send'
Small amendment: ignore pending reap when switching connection, add test
2010-01-06 12:56:22 +01:00
Georgi Kodinov
9eca4014e3 Addendum to Bug #49734 : fixed an unstable test case. 2010-01-06 12:24:51 +02:00
Bjorn Munch
90b24e992e merge 49345 2010-01-06 09:54:43 +01:00
Bjorn Munch
d3c57be834 merge 49672 2010-01-06 09:52:55 +01:00
Bjorn Munch
04a5dcb136 Bug #49761 mysqltest.test does not have any tests for send/reap
Added them
NB the 6th case is adapted to Bug no. 49269, gives wrong output without it
2010-01-06 09:47:25 +01:00
Bjorn Munch
5b66dab00f Bug #48863 mysql test: enable and disable case insensitive compare mode
Implemented --lowercase_result which lower cases next result
2010-01-06 09:42:21 +01:00
Luis Soares
f8758031f3 BUG#50018: binlog corruption when table has many columns
For tables with metadata sizes ranging from 251 to 255 the size
of the event data (m_data_size) was being improperly calculated
in the Table_map_log_event constructor. This was due to the fact
that when writing the Table_map_log_event body (in
Table_map_log_event::write_data_body) a call to net_store_length
is made for packing the m_field_metadata_size. It happens that
net_store_length uses *one* byte for storing
m_field_metadata_size when it is smaller than 251 but *three*
bytes when it exceeds that value. BUG 42749 had already
pinpointed and fix this fact, but the fix was incomplete, as the
calculation in the Table_map_log_event constructor considers 255
instead of 251 as the threshold to increment m_data_size by
three. Thence, the window for having a mismatch between the
number of bytes written and the number of bytes accounted in the
event length (m_data_size) was left open for
m_field_metadata_size values between 251 and 255.

We fix this by changing the condition in the Table_map_log_event
constructor to match the one in the net_store_length, ie,
increment one byte if m_field_metadata_size < 251 and three if it
exceeds this value.

mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result:
  Updated result file.
mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test:
  Changes to the original test case: added slave and moved
  file into the rpl suite.
  
  New test case: replicates two tables one with 250 and 
  another with 252 metadata sizes. This exercises the usage
  of 1 or 3 bytes while packing the m_field_metadata_size.
sql/log_event.cc:
  Made the m_data_size calculation for the table map log event
  to match the number of bytes used while packing the 
  m_field_metadata_size value (according to net_store_length
  function in pack.c).
2010-01-06 00:44:31 +00:00
Bjorn Munch
ce019a2fac Bug #49345 re-introduce gprof to mysql-test-run.pl
Was available in v1
Porting to v2 required some rewriting
Updated after review comments
2010-01-05 21:35:50 +01:00
unknown
1378aa0e8f Automatic merge. 2010-01-05 15:28:34 +01:00
Bjorn Munch
4d8b228c8d Bug #49166 mtr --combination is broken after restrictions of combination names
Combinations beginning with -- not allowed
Allow them...
2010-01-05 13:31:38 +01:00
He Zhenxing
af27d4e200 Bug#48776 row based replication breaks with spatial / geometry types, cause crashes!
This bug is the same problem as Bug 49836 for 5.1 versions.

mysql-test/suite/rpl/r/rpl_geometry.result:
  Test case for bug 48776
mysql-test/suite/rpl/t/rpl_geometry.test:
  Test case for bug 48776
sql/rpl_utility.h:
  Add missing case MYSQL_TYPE_GEOMETRY
2010-01-05 14:25:29 +08:00
Michael Widenius
d2f7348fdc Merge with 5.1 2010-01-04 19:54:42 +02:00
Michael Widenius
7ae95fdef2 Updated test results (missed this one in last patch) 2010-01-04 14:35:54 +02:00
unknown
ccbfd6ee68 Merge mysql-test-run.pl fix for plugin detection. 2010-01-04 13:26:56 +01:00
unknown
122e4436b1 Test skip due to missing OQGraph early, avoiding errors in log when starting server. 2010-01-04 13:23:17 +01:00
unknown
aa4ce24cc5 Fix that all tests using example_plugin.so became disabled.
The test for availability was done before detection (oops).
2010-01-04 12:33:07 +01:00
unknown
5f6c8053cf Merge OQGraph into latest MariaDB trunk. 2010-01-04 09:47:15 +01:00
unknown
ccf8a63f2d Import OQGraph engine into MariaDB. 2010-01-04 09:27:50 +01:00