1
0
mirror of https://github.com/MariaDB/server.git synced 2025-06-04 18:03:14 +03:00

23662 Commits

Author SHA1 Message Date
Horst Hunger
2238eaaffb due to merge. 2009-02-11 16:35:50 +01:00
Luis Soares
a567ee9b7a merge: 5.1-bt --> 5.1-bt local 2009-02-11 14:52:19 +01:00
Vladislav Vaintroub
3041bd7c8c merge 2009-02-11 12:19:33 +01:00
Horst Hunger
48d4d34689 Reviewed fix for bug#40882: Replaced "sleep 1" by wait_condition, added save/restore start values and closed open sessions. When trying to use "wait_for_query_to_succeed" a type has been fixed, also in "rename.test": Added session count and check and replaced error numbers. 2009-02-11 10:27:52 +01:00
Mats Kindahl
93ef74bfd1 Bug #36763
TRUNCATE TABLE fails to replicate when stmt-based binlogging is not supported.

Correcting some tests that was failing in pushbuild as well as fixing result
file for some tests that are not executed in the default MTR run.

mysql-test/suite/binlog/t/binlog_truncate_innodb.test:
  Need to reset master to avoid the check to be for the wrong binlog file.
mysql-test/suite/binlog/t/binlog_truncate_myisam.test:
  Need to reset master to avoid the check to be for the wrong binlog file.
2009-02-10 22:26:37 +01:00
Mats Kindahl
9fd1d14636 Merging with 5.1-bugteam 2009-02-10 16:13:44 +01:00
Mats Kindahl
9b612d2c90 BUG#36763: TRUNCATE TABLE fails to replicate when stmt-based binlogging is not supported.
Post-merge fixes. Changes to some result sets.

mysql-test/r/commit_1innodb.result:
  TRUNCATE TABLE does not cause the binary log to do commits any more.
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
  TRUNCATE TABLE is not transactional, hence does not have BEGIN/COMMIT around itself.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  TRUNCATE TABLE is not transactional, hence does not have BEGIN/COMMIT around itself.
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
  TRUNCATE TABLE is not transactional, hence does not have BEGIN/COMMIT around itself.
mysql-test/suite/rpl/r/rpl_truncate_2myisam.result:
  STOP SLAVE was replaced with include file.
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result:
  STOP SLAVE was replaced with include file.
2009-02-10 15:44:58 +01:00
Alexey Kopytov
1571f06196 Merge into dev tree. 2009-02-10 16:27:35 +03:00
Alexey Kopytov
fd8bf58ca9 Fix for bug #41868: crash or memory overrun with concat + upper,
date_format functions

String::realloc() did not check whether the existing string data fits in
the newly allocated buffer for cases when reallocating a String object
with external buffer (i.e.alloced == FALSE).  This could lead to memory
overruns in some cases.

client/sql_string.cc:
  Fixed String::realloc() to check whether the existing string data fits
  in the newly allocated buffer for cases when reallocating a String
  object with external buffer.
mysql-test/r/func_str.result:
  Added a test case for bug #41868.
mysql-test/t/func_str.test:
  Added a test case for bug #41868.
sql/sql_class.cc:
  After each call to Item::send() in select_send::send_data() reset
  buffer to its original state to reduce unnecessary malloc() calls. See
  comments for bug #41868 for detailed analysis.
sql/sql_string.cc:
  Fixed String::realloc() to check whether the existing string data fits
  in the newly allocated buffer for cases when reallocating a String
  object with external buffer.
2009-02-10 15:38:56 +03:00
Vladislav Vaintroub
b17a310aaf merge 2009-02-10 12:05:53 +01:00
Luis Soares
b7b6773f69 BUG#13684: SP: DROP PROCEDURE|FUNCTION IF EXISTS not binlogged if routine does not exist
There is an inconsistency with DROP DATABASE IF EXISTS, DROP
TABLE IF EXISTS and DROP VIEW IF EXISTS: those are binlogged even
if the DB or TABLE does not exist, whereas DROP PROCEDURE IF
EXISTS does not. It would be nice or at least consistent if DROP
PROCEDURE/STATEMENT worked the same too.
      
Fixed DROP PROCEDURE|FUNCTION IF EXISTS by adding a call to
write_bin_log in mysql_execute_command. Checked also if all
documented "DROP (...) IF EXISTS" get binlogged. Left out DROP
SERVER IF EXISTS because it seems that it only gets binlogged when
using row event (see BUG#25705).
2009-02-10 11:52:19 +01:00
Matthias Leich
f28655e05a Merge 5.0 -> 5.1 2009-02-10 11:23:47 +01:00
Bjorn Munch
46f91045f8 Bug #42590 MTR v1 crashes under Active State Perl
Perl crashes when MTR 2 tries to start v1
Replaced require with system()
2009-02-10 11:00:16 +01:00
Georgi Kodinov
0669b79363 Bug #33813: Schema names are case-sensitive in DROP FUNCTION
The parser was not using the correct fully-qualified-name
production for DROP FUNCTION.
Fixed by copying the production from DROP PROCEDURE.
Tested in the windows specific suite to make sure it's 
tested on a case-insensitive file system.

mysql-test/r/windows.result:
  Bug #33813: test case
mysql-test/t/windows.test:
  Bug #33813: test case
sql/sql_yacc.yy:
  Bug #33813: use the correct production for the name in
  DROP PROCEDURE
2009-02-10 11:58:19 +02:00
Mats Kindahl
8a98664d3b Merging with 5.1-bugteam. 2009-02-09 23:51:59 +01:00
Matthias Leich
0ef6e2a5ab Merge 5.0 -> 5.1 2009-02-09 22:00:15 +01:00
Matthias Leich
0fab1a857c This belongs to the fix for
Bug#42003 tests missing the disconnect of connections <> default
second slice
Content:
1. wait_until_count_sessions.inc
   - One PB run of a test using this routine failed because
     5 seconds timeout were exceeded. Although I have some doubts
     if the assigned timeout was really too small, I increase the
     value to 10. We waste the additional 5 seconds only if the
     tests fails anyway.
   - Print the content of the PROCESSLIST if the poll routine fails
2. minor improvements of formatting
3. query_cache_notembedded:
   Activate the wait_until_count_sessions.inc routine which was
   unfortunately forgotten in the changeset before.
2009-02-09 21:52:40 +01:00
Davi Arnaut
86a11e6a39 Merge from upstream 5.1-bugteam. 2009-02-09 16:27:45 -02:00
Vladislav Vaintroub
20e5719574 Bug#42709: safe_process_win.cc does not print correct system error messages.
Fix: use FormatMessage() to output system errors , not strerror()
2009-02-09 19:24:48 +01:00
Davi Arnaut
bab4ff1ae5 Bug#42634: % character in query can cause mysqld signal 11 segfault
The problem is that a unfiltered user query was being passed as
the format string parameter of sql_print_warning which later
performs printf-like formatting, leading to crashes if the user
query contains formatting instructions (ie: %s). Also, it was
using THD::query as the source of the user query, but this
variable is not meaningful in some situations -- in a delayed
insert, it points to the table name.

The solution is to pass the user query as a parameter for the
format string and use the function parameter query_arg as the
source of the user query.

mysql-test/suite/binlog/r/binlog_unsafe.result:
  Add test case result for Bug#42634
mysql-test/suite/binlog/t/binlog_unsafe.test:
  Add test case for Bug#42634
sql/sql_class.cc:
  Don't pass the user query as a format string.
2009-02-09 16:17:58 -02:00
Sergey Glukhov
4d0557a2e6 Bug#42610 Dynamic plugin broken in 5.1.31
added ignore-builtin-innodb option which disabled
initialization of builtin InnoDB plugin

mysql-test/r/innodb_ignore_builtin.result:
  test case
mysql-test/t/innodb_ignore_builtin-master.opt:
  test case
mysql-test/t/innodb_ignore_builtin.test:
  test case
sql/mysql_priv.h:
  added ignore-builtin-innodb option which disabled
  initialization of builtin InnoDB plugin
sql/mysqld.cc:
  added ignore-builtin-innodb option which disabled
  initialization of builtin InnoDB plugin
sql/set_var.cc:
  added ignore-builtin-innodb option which disabled
  initialization of builtin InnoDB plugin
sql/sql_plugin.cc:
  added ignore-builtin-innodb option which disabled
  initialization of builtin InnoDB plugin
2009-02-09 19:03:52 +04:00
Andrei Elkin
5fc4c37a80 Bug #42451 setup_fake_relay_log makes an incorrect path on windows
Path composition for the relay log file that is stored into the relay index
file was not correct for windows.
mysql-test language does not provide primitives for portable path composition.
      
Fixed with storing only the basename part of the external "fake" relay log into
the relay index file.
Safety of removal of the dirname part of the relaylog is provided by logics of
`setup_fake_relay_log' that places the fake file into @@datadir directory.


mysql-test/include/setup_fake_relay_log.inc:
  storing only the basename part of the external "fake" relay log into the relay
  log index.
mysql-test/suite/rpl/t/rpl_cross_version.test:
  restoring test for windows.
2009-02-09 15:17:04 +02:00
Vladislav Vaintroub
461cad77b4 Bug#42427 : MTR v2 fails with "can't write to /tmp/mysql-test-ports.sem" on Windows
- /tmp directory is not guaranteed to exist on Windows. 
Use the value of environment variable TEMP here
2009-02-09 13:10:34 +01:00
Matthias Leich
4c0dd2a7b3 Merge of ifx into GCA tree
no conflicts
2009-02-09 12:44:01 +01:00
Timothy Smith
3ba87c3700 Auto-merge up from 5.0 2009-02-07 16:50:31 +01:00
Tatiana A. Nurnberg
0eca4824c3 auto-merge 2009-02-06 18:47:54 +01:00
Tatiana A. Nurnberg
d66dc23065 Bug#42525: TIMEDIFF function
In 37553 we declared longlong results for
class Item_str_timefunc as per comments/docs,
but didn't add a method for that. And the
default just wasn't good enough for some
cases.

Changeset adds dedicated val_int() to class.

mysql-test/r/func_sapdb.result:
  More tests for casts of TIME() / TIMEDIFF() with negative results.
mysql-test/t/func_sapdb.test:
  More tests for casts of TIME() / TIMEDIFF() with negative results.
sql/item_timefunc.h:
  Since we claim to provide longlong results, we should have
  a suitable function to provide them (the default won't do).
  This one matches the val_real() variant.
2009-02-06 18:25:08 +01:00
Mats Kindahl
bd53d21417 Bug #36763
TRUNCATE TABLE fails to replicate when stmt-based binlogging is not supported.

There were two separate problems with the code, both of which are fixed with
this patch:

1. An error was printed by InnoDB for TRUNCATE TABLE in statement mode when
   the in isolation levels READ COMMITTED and READ UNCOMMITTED since InnoDB
   does permit statement-based replication for DML statements. However,
   the TRUNCATE TABLE is not transactional, but is a DDL, and should therefore
   be allowed to be replicated as a statement.

2. The statement was not logged in mixed mode because of the error above, but
   the error was not reported to the client.

This patch fixes the problem by treating TRUNCATE TABLE a DDL, that is, it is
always logged as a statement and not reporting an error from InnoDB for TRUNCATE
TABLE.


mysql-test/extra/binlog_tests/binlog_truncate.test:
  Adding new test to check that TRUNCATE TABLE is written correctly
  to the binary log.
mysql-test/extra/rpl_tests/rpl_truncate.test:
  Removing redundant testing by eliminating settings of BINLOG_FORMAT.
mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
  Replacing slave and master reset code with include file.
  Removing settings of BINLOG_FORMAT.
  Replacing printing of table contents to compare master and slave
  with diff_tables.inc.
mysql-test/suite/binlog/t/binlog_truncate_innodb.test:
  Adding test for testing that TRUNCATE TABLE is logged correctly for InnoDB
  in all isolation levels.
mysql-test/suite/binlog/t/binlog_truncate_myisam.test:
  Adding test for testing that TRUNCATE TABLE is logged correctly for MyISAM.
mysql-test/suite/binlog/t/disabled.def:
  Disabling binlog_truncate_innodb since it does not work (yet).
sql/sql_base.cc:
  Correcting setting of capabilities flags to make the comparison with 0
  later in the code work correctly.
sql/sql_delete.cc:
  Re-organizing code to ensure that TRUNCATE TABLE is logged in statement
  format and that row format is not used unless there are rows to log (which
  there are not when delete_all_rows() is called, so this has to be logged
  as a statement).
2009-02-06 17:06:41 +01:00
Magnus Svensson
0ea110d858 Bug#42366 server-cert.pem expired: "Not After : Jan 27 08:54:13 2009 GMT
- remove the disbling of all ssl_* tests now when certs are fixed.
2009-02-06 15:09:15 +01:00
Magnus Svensson
0b439b3070 Merge 2009-02-06 12:31:32 +01:00
Alexey Kopytov
e27f65369f Merge from team tree. 2009-02-06 13:09:01 +03:00
Alexey Kopytov
a8c98eb953 Merge mysql-5.0-bugteam -> mysql-5.1-bugteam. 2009-02-06 12:53:20 +03:00
Alexey Kopytov
b30239bc1a Temporarily reverted patch for bug #41868 as it was causing problems in PB. 2009-02-06 12:51:11 +03:00
Magnus Svensson
aca7ca6bba Bug#42641 mtr.pl fails to run within JobObject
- Allow the new process to break away from any job that this
   process is part of so that it can be assigned to the new JobObject
   we just created. This is safe since the new JobObject is created with
   the JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE flag, making sure it will be
   terminated when the last handle to it is closed(which is owned by
   this process).
2009-02-06 08:38:24 +01:00
Matthias Leich
41e6a1f89c 2. Slice of fix for Bug#42003 tests missing the disconnect of connections <> default
- If missing: add "disconnect <session>"
   - If physical disconnect of non "default" sessions is not finished
     at test end: add routine which waits till this happened
+ additional improvements
  - remove superfluous files created by the test
  - replace error numbers by error names
  - remove trailing spaces, replace tabs by spaces
  - unify writing of bugs within comments
  - correct comments
  - minor changes of formatting
Fixed tests:
  backup
  check
  compress
  grant
  information_schema
  multi_update
  overflow
  packet
  query_cache_not_embedded
  sp-threads
  subselect
  synchronization
  timezone_grant
2009-02-05 21:47:23 +01:00
Gleb Shchepa
798f19e463 after-after-push testcase update (bug #39265) 2009-02-05 21:47:24 +04:00
Matthias Leich
09387431c1 Fix for Bug#42602 main.status: random failures
+ minor improvements
2009-02-05 17:48:47 +01:00
Gleb Shchepa
a7435ddf49 after-push test update (bug #39265) 2009-02-05 17:51:00 +04:00
Sergey Vojtovich
071cfc03b7 BUG#39185 - Cardinality for merge tables calculated incorrectly.
Every subsequent query to a merge table with indexes was lowering
down cardinality.

The problem was that key statistics was not cleared when merge
children were detached. Causing next attach children perform
incremental key statistics calculation.

Fixed by clearing key statistics when attaching first child.

mysql-test/r/merge.result:
  A test case for BUG#39185.
mysql-test/t/merge.test:
  A test case for BUG#39185.
storage/myisammrg/myrg_open.c:
  Clear key statistics when we're attaching first child, even
  if it's buffer was allocated before. This is needed because
  detach_children() doesn't clear statistics, causing incremental
  statistics calculation.
2009-02-05 17:03:47 +04:00
Alexey Kopytov
4cd0e2fac4 Merge mysql-5.0-bugteam -> mysql-5.1-bugteam. 2009-02-05 15:49:59 +03:00
Alexey Kopytov
759b626d11 Merge to team tree. 2009-02-05 15:48:30 +03:00
Gleb Shchepa
b9d02d4669 Bug #39265: fix for the bug 33699 should be reverted
Documented behaviour was broken by the patch for bug 33699
that actually is not a bug.

This fix reverts patch for bug 33699 and reverts the
UPDATE of NOT NULL field with NULL query to old
behavior.


mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/include/ps_modify.inc:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/auto_increment.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/csv_not_null.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/null.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/ps_2myisam.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/ps_3innodb.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/ps_4heap.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/ps_5merge.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/r/warnings.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/suite/ndb/r/ps_7ndb.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/suite/rpl/t/rpl_err_ignoredtable.test:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/t/auto_increment.test:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/t/csv_not_null.test:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/t/null.test:
  Bug #39265: fix for the bug 33699 should be reverted
mysql-test/t/warnings.test:
  Bug #39265: fix for the bug 33699 should be reverted
sql/sql_update.cc:
  Bug #39265: fix for the bug 33699 should be reverted
2009-02-05 13:49:32 +04:00
Ramil Kalimullin
31d908d70b Fix for bug#42014: Crash, name_const with collate
Problem: some queries using NAME_CONST(.. COLLATE ...)
lead to server crash due to failed type cast.

Fix: return the underlying item's type in case of
NAME_CONST(.. COLLATE ...) to avoid wrong casting.


mysql-test/r/func_misc.result:
  Fix for bug#42014: Crash, name_const with coll
    - test result.
mysql-test/t/func_misc.test:
  Fix for bug#42014: Crash, name_const with coll
    - test case.
sql/item.cc:
  Fix for bug#42014: Crash, name_const with coll
    - in case of NAME_CONST('name', 'value' COLLATE collation)
  Item_name_const::type() returns type of 'value' argument 
  to awoid wrong type casting of the Item_name_const items.
2009-02-05 11:43:39 +04:00
Ramil Kalimullin
9ee53cbcc0 Auto-merge 2009-02-05 11:45:30 +04:00
Matthias Leich
6f19c0fc46 Merge last changesets into tree, no conflicts 2009-02-04 16:34:28 +01:00
Sergey Vojtovich
aa13a4b95e Merge 5.0-bugteam -> 5.1-bugteam. 2009-02-04 17:00:40 +04:00
Matthias Leich
7957622bfd Automatic merge, no conflicts 2009-02-04 14:20:05 +01:00
Magnus Svensson
1177405381 Merge 2009-02-04 13:29:46 +01:00
Matthias Leich
2df0beee02 Merge last changesets, no conflicts 2009-02-04 13:10:33 +01:00
Sergey Vojtovich
97bd763544 BUG#32047 - 'Spurious' errors while opening MERGE tables
Accessing well defined MERGE table may return an error
stating that the merge table is incorrectly defined. This
happens if MERGE child tables were accessed before and we
failed to open another incorrectly defined MERGE table in
this connection.

myrg_open() internally used my_errno as a variable for determining
failure, and thus could be tricked into a wrong decision by other
uses of my_errno.

With this fix we use function local boolean flag instead of my_errno
to determine failure.

myisammrg/myrg_open.c:
  There are two requirement for accessing/setting my_errno variable,
  which were not followed by myrg_open():
  - it must be checked immediately after a function returned an error. There
    must be no calls to other functions that may change it's value between.
  - my_errno value must be set right before a function is going to return an
    error. There must be no calls to other functions that may change it's
    value between (that's why we have these tricks with save_errno at the
    bottom of myrg_open()).
  
  myrg_open() internally used my_errno as a variable for determining
  failure, and thus could be tricked into a wrong decision by other
  uses of my_errno.
mysql-test/r/merge.result:
  A test case for BUG#32047.
mysql-test/t/merge.test:
  A test case for BUG#32047.
2009-02-04 15:46:23 +04:00