Commit graph

23512 commits

Author SHA1 Message Date
Leonard Zhou
b42c29cfe3 BUG#22504 load data infile sql statement in replication architecture get error
The problem is issued because we set wrong start position and stop position of query string into binlog.
That two values are stored as part of head info of query string.
When we parse binlog, we first get position values then get the query string according position values.
But seems that two values are not calculated correctly after the parse of Yacc.

We don't want to touch so much of yacc because it may influence other codes.
So just add one space after 'INTO' key word when parsing.
This can easily resolve the problem.

mysql-test/suite/rpl/r/rpl_loaddatalocal.result:
  Test result
mysql-test/suite/rpl/t/rpl_loaddatalocal.test:
  Test case
sql/log_event.cc:
  Add space after 'INTO'.
2009-03-16 16:21:29 +08:00
Davi Arnaut
664bb23a30 Bug#41098: Query Cache returns wrong result with concurrent insert
The problem is that select queries executed concurrently with
a concurrent insert on a MyISAM table could be cached if the
select started after the query cache invalidation but before
the unlock of tables performed by the concurrent insert. This
race could happen because the concurrent insert was failing
to prevent cache of select queries happening at the same time.

The solution is to add a 'uncacheable' status flag to signal
that a concurrent insert is being performed on the table and
that queries executing at the same time shouldn't cache the
results.

mysql-test/r/query_cache_debug.result:
  Add test case result for Bug#41098
mysql-test/t/disabled.def:
  Re-enable test case.
mysql-test/t/query_cache_debug.test:
  Add test case for Bug#41098
sql/sql_cache.cc:
  Debug sync point for regression testing purposes.
sql/sql_insert.cc:
  Remove meaningless query cache invalidate. There is already
  a preceding invalidate for queries that started before the
  concurrent insert.
storage/myisam/ha_myisam.cc:
  Check for a active concurrent insert.
storage/myisam/mi_locking.c:
  Signal the start of a concurrent insert. Flag is zeroed once
  the state is updated back.
storage/myisam/myisamdef.h:
  Add flag to signal a active concurrent insert.
2009-02-19 18:09:35 -03:00
Serge Kozlov
8e8c5bbe7a merge 5.1 2009-02-19 23:49:45 +03:00
Serge Kozlov
b86dc86ee9 Bug#41423.
1. Constant values of binlog positions replaced by seeking them in binlog/relay log.
2. Updated result file
2009-02-19 23:29:12 +03:00
Georgi Kodinov
901427b241 merged 5.0-bugteam -> 5.1-bugteam 2009-02-19 20:30:05 +02:00
Georgi Kodinov
cf42f6689f merged bug 42419 to 5.0-bugteam 2009-02-19 18:26:19 +02:00
Georgi Kodinov
29476d879f Bug : Server crash with "Pure virtual method called" on two concurrent
connections
The problem is that tables can enter open table cache for a thread without 
being properly cleaned up. This can happen if make_join_statistics() fails 
to read a const table because of e.g. a deadlock. It does set a member of 
TABLE structure to a value it allocates, but doesn't clean-up this setting 
on error nor does it set the rest of the members in JOIN to allow for 
automatic cleanup.
As a result when such an error occurs and the next statement depends re-uses 
the table from the open tables cache it will get it with this 
TABLE::reginfo.join_tab pointing to a memory area that's freed.
Fixed by making sure make_join_statistics() cleans up TABLE::reginfo.join_tab 
on error.

mysql-test/r/innodb_mysql.result:
  Bug : test case
mysql-test/t/innodb_mysql-master.opt:
  Bug : increase the timeout so it covers te conservative 
  sleep 3 in the test
mysql-test/t/innodb_mysql.test:
  Bug : test case
sql/sql_select.cc:
  Bug : clean up the members of TABLE on failure in 
          make_join_statisitcs()
2009-02-19 17:30:03 +02:00
Sergey Glukhov
e89fddc636 automerge 2009-02-19 18:52:49 +04:00
Sergey Glukhov
fafeaf460b 5.0-bugteam->5.1-bugteam merge 2009-02-19 17:59:00 +04:00
Sergey Glukhov
c2e23208ef Bug#37601 Cast Is Not Done On Row Comparison
In case of ROW item each compared pair does not
check if argumet collations can be aggregated and
thus appropiriate item conversion does not happen.
The fix is to add the check and convertion for ROW
pairs.


mysql-test/r/row.result:
  test result
mysql-test/t/row.test:
  test case
sql/item.cc:
  added agg_item_set_converter() function which was a part of
  agg_item_charsets() func. The only difference is that
  agg_item_set_converter() checks and converts items 
  using already known collation.
sql/item.h:
  added agg_item_set_converter() function
sql/item_cmpfunc.cc:
  In case of ROW item each compared pair does not
  check if argumet collations can be aggregated and
  thus appropiriate item conversion does not happen.
  The fix is to add the check and convertion for ROW
  pairs.
2009-02-19 17:20:44 +04:00
Sergey Glukhov
d0ece331a2 5.0->bugteam->5.1-bugteam merge 2009-02-18 16:09:46 +04:00
Vladislav Vaintroub
93a5269618 merge 2009-02-18 10:31:53 +01:00
Sergey Glukhov
544fa7593b Bug#25830 SHOW TABLE STATUS behaves differently depending on table name(for 5.0 only)
replace wild_case_compare with my_wildcmp which is multibyte safe function


mysql-test/r/lowercase_utf8.result:
  test result
mysql-test/t/lowercase_utf8-master.opt:
  test case
mysql-test/t/lowercase_utf8.test:
  test case
sql/sql_show.cc:
  replace wild_case_compare with my_wildcmp which is multibyte safe function
2009-02-17 18:22:48 +04:00
Matthias Leich
fecaef26af Merge of fix for Bug 42836 into GCA tree 2009-02-16 20:43:34 +01:00
Andrei Elkin
924950b631 commenting windows disable for rpl_cross_version to relate to Bug 2009-02-16 14:51:39 +02:00
Davi Arnaut
d3a10ec6ef Bug#41077: Warning contains wrong future version
Substitute all references of MySQL version "5.2" to "6.0" in
deprecation warning messages.Deprecated constructs are being
removed in the 6.0 tree.
2009-02-16 08:38:15 -03:00
Andrei Elkin
cd1960ff26 rpl_cross_version.test is disable for win till a proper fixing bug#42451 2009-02-16 10:49:51 +02:00
Alexey Kopytov
d945db1ddd Take additional precision into account 2009-02-15 14:11:50 +03:00
Alexey Kopytov
ff1e778cc5 Automerge. 2009-02-15 12:47:04 +03:00
Alexey Kopytov
65e2c68a4d Fixed PB failures on IA64 hosts introduced by the patch for bug .
mysql-test/t/gis.test:
  IA64 gcc backend lacks -fno-fused-madd option, so we have to adjust results.
2009-02-15 12:26:08 +03:00
Patrick Crews
3355ebff22 automerge 2009-02-14 17:52:45 -05:00
Alexey Kopytov
1cc7fbcd4e Automerge. 2009-02-14 20:14:10 +03:00
Alexey Kopytov
4e356b1fe3 Added missing DROP TABLE to type_float.result.
mysql-test/r/type_float.result:
  Added missing DROP TABLE.
2009-02-14 20:12:14 +03:00
Alexey Kopytov
6d1dc3270b Fixed parser test failure introduced by the patch for bug .
mysql-test/r/parser.result:
  Take additional precision into account.
2009-02-14 19:04:16 +03:00
Alexey Kopytov
8efeeb8bd2 Merge mysql-5.0-bugteam -> mysql-5.1-bugteam 2009-02-14 19:00:11 +03:00
Alexey Kopytov
9665fcfff3 Fixed several test failures in the funcs_1 suite introduced by the patch for bug .
mysql-test/suite/funcs_1/r/memory_func_view.result:
  Take additional precision into account.
mysql-test/suite/funcs_1/r/memory_views.result:
  Take additional precision into account.
mysql-test/suite/funcs_1/r/myisam_func_view.result:
  Take additional precision into account.
mysql-test/suite/funcs_1/r/myisam_views.result:
  Take additional precision into account.
2009-02-14 18:58:07 +03:00
Alexey Kopytov
b41215add2 Fixed bdb_gis and ndb_gis test failures in PB introduced by the patch for bug .
mysql-test/r/bdb_gis.result:
  Take additional precision into account.
mysql-test/r/ndb_gis.result:
  Take additional precision into account.
mysql-test/t/type_float.test:
  Added missing DROP TABLE.
2009-02-14 18:36:57 +03:00
Alexey Kopytov
d8ac91387b Merge from dev tree. 2009-02-14 12:11:32 +03:00
Alexey Kopytov
fb3e5910ec Merge from dev tree. 2009-02-14 12:09:35 +03:00
Patrick Crews
aedef27a85 BUG#32667: lowercase_table3.test reports to error log
Cleaned up SQL code in the test.
Needed to move the FLUSH TABLES statement prior to the DROP TABLE t1 to prevent a warning of
Table open on delete and a test fail.
2009-02-13 16:12:59 -05:00
Davi Arnaut
f29aa74aa1 Remove test case for bug 40264.
Dirty close tricky does not work on Windows.

mysql-test/r/query_cache_notembedded.result:
  Remove test case result.
mysql-test/t/query_cache_notembedded.test:
  Remove test case.
2009-02-13 17:26:20 -02:00
Tatiana A. Nurnberg
ce6e5950bd auto-merge 2009-02-13 19:18:01 +01:00
Matthias Leich
59c8a307fe Fix for Bug#42836 Funcs_1 storedproc and storedproc_08 tests failing 2009-02-13 19:07:56 +01:00
Tatiana A. Nurnberg
694323952a Bug#42146 - DATETIME fractional seconds parse error
Bug#38435 - LONG Microseconds cause MySQL to fail a CAST to DATETIME or DATE

Parsing of optional microsecond part in datetime did not
fail gracefully when field width was larger than the allowed
six places.

Now handles up to the correct six places, and disregards
any extra digits without messing up what we've already got.

mysql-test/r/type_datetime.result:
  show graceful handling of overly long microsecond parts
  (correct truncation).
mysql-test/t/type_datetime.test:
  show graceful handling of overly long microsecond parts
  (correct truncation).
sql-common/my_time.c:
  Special case for time-parsing: for microsecond part,
  leading zeroes are actually meaningful! Also, don't
  break the entire date on more than the allowed six
  digits in microsecond part, just truncate the extra
  digits.
2009-02-13 19:07:03 +01:00
Alexey Kopytov
a41bdfa52a Merge from team tree 2009-02-13 19:32:23 +03:00
Alexey Kopytov
dd35a152f9 Merge mysql-5.0-bugteam -> mysql-5.1-bugteam. 2009-02-13 19:20:56 +03:00
Andrei Elkin
de9da6dd32 merging from the main to a local branch 2009-02-13 18:20:36 +02:00
Alexey Kopytov
9373b1b880 Merge from dev tree. 2009-02-13 19:17:07 +03:00
Rafal Somla
bdbe393db1 Modifications to MTR and mysqltest to improve feedback from the latter when
testcase checks are made.
      
MTR spawns mysqltest to run check-testcase test before and after each testcase 
it runs. It can also run check-warnings using mysqltest. Since it happened on PB 
that these checks hanged, this patch provides additional feedback to help 
investigating such failures:
      
- mysqltest is modified to give feedback about main steps in execution of a 
testcase if run in verbose mode (including connection to the server),
     
- MTR is modified to run mysqltest in verbose mode when doing check-testcase or 
check-warnings. The diagnostic output from mysqltest is preserved so that it is 
saved upon test failure.

client/mysqltest.cc:
  Add verbose messages informing about main steps in execution of a testcase.
mysql-test/mysql-test-run.pl:
  - When doing check-testcase or check-warnings run mysqltest in verbose mode.
  - Do not delete the mysqltest's error log if errors are detected during these
2009-02-13 16:27:33 +01:00
Magnus Svensson
841145eed2 Merge 2009-02-13 14:47:01 +01:00
Matthias Leich
5d0054012d Merge actual tree -> local GCA tree, no conflicts 2009-02-13 13:55:29 +01:00
Matthias Leich
9fc536e1d3 Merge actual tree -> local GCA tree, no conflicts 2009-02-13 13:06:50 +01:00
Magnus Svensson
be5cc29e48 Bug#42797 mtr.pl - temporary directory are deleted when child exit's
- Since we are only using the auto cleanup in one place of mtr.pl today, disable the
autocleanup and write our own END handler that clean up the tmpdir only when the process
that created it exits.
2009-02-12 17:36:58 +01:00
Vladislav Vaintroub
34d066a21c Bug#42788 lib\My\CoreDump.pm needs to be ported for Windows.
- output callstacks from crash using cdb debugger which is part 
of "Debugging Tools for Windows". Output  other interesting 
information - function parameters, possibly source code fragment
and other goodies of  "!analyze" cdb extension.
2009-02-12 17:13:56 +01:00
Sergey Vojtovich
984c2489d1 Merge 5.1-bugteam -> 5.1-bugteam (local). 2009-02-12 14:25:12 +04:00
V Narayanan
e80537b791 Bug#40675 MySQL 5.1 crash with index merge algorithm and Merge tables
A Query in the MyISAM merge table was crashing 
if the index merge algorithm was being used

Index Merge optimization requires the reading of 
multiple indexes at the same time. Reading multiple 
indexes at once with current SE API means that we 
need to have handler instance for each to-be-read 
index. This is done by creating clones of the handlers 
instances. The clone internally does a open of the handler.

The open for a MERGE engine is handled in the following 
phases

1) open parent table
2) generate list of underlying
   table
3) attach underlying tables

But the current implementation does only the first 
phase (i.e.) open parent table.

The current patch fixes this at the MERGE engine level, 
by handling the clone operation within the MERGE engine 
rather than in the storage engine API. It opens and 
attaches the MyISAM tables on the MyISAM storage engine 
interface directly within the MERGE engine. The new MyISAM 
table instances, as well as the MERGE clone itself, are not 
visible in the table cache. This is not a problem because
all locking is handled by the original MERGE table from which
this is cloned of.

mysql-test/r/merge.result:
  updated the result file to reflect the new tests
  added to test the fix
mysql-test/t/merge.test:
  Added new tests to verify that the index merge
  algorithm does not crash in the merge engine.
storage/myisammrg/ha_myisammrg.cc:
  Implement the clone method, that handles
  
  1) Cloning the handler
  2) Opening underlying MYISAM child tables
  3) Copies the state of the original handler and the children
     into the cloned instances
  4) Sets the appropriate flags
storage/myisammrg/ha_myisammrg.h:
  Added a flag that is set to indicate that the current 
  instance is cloned. Also added the prototype or the clone 
  method.
storage/myisammrg/myrg_open.c:
  Since we do now again use myrg_open() in the server
  removed the comments marking this as deadcode.
2009-02-12 16:42:07 +05:30
Sergey Vojtovich
5103b05dd5 Merge 5.1-bugteam (local) -> 5.1-bugteam. 2009-02-12 14:12:40 +04:00
Sergey Vojtovich
e994c4f97b Merge 5.0-bugteam -> 5.1-bugteam. 2009-02-12 14:10:07 +04:00
Georgi Kodinov
ccca4feca8 merged bug 33813 to 5.1-bugteam 2009-02-12 11:52:01 +02:00
Sergey Vojtovich
5803e10628 BUG#36737 - having + full text operator crashes mysql
MATCH() function accepts column list as an argument. It was possible to override
this requirement with aliased non-column select expression. Which results in
server crash.

With this fix aliased non-column select expressions are not accepted by MATCH()
function, returning an error.

mysql-test/r/fulltext.result:
  A test case for BUG#36737.
mysql-test/t/fulltext.test:
  A test case for BUG#36737.
sql/item_func.cc:
  Only accept fields as arguments to MATCH().
2009-02-12 13:49:44 +04:00