1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-16 00:42:55 +03:00
Commit Graph

24457 Commits

Author SHA1 Message Date
9e9d9bf9d7 Fix regression on pushbuild 1. The cygwin perl is ancient there, and Net::Ping does not have port_number method (port_number was introduced around 2007). The fix is to check if port_number is present. Otherwise, fallback to the slow connect(). 2009-05-08 01:10:53 +02:00
3fe1d299ec Fix support for -i (--ignore-spaces) in the mysql command line application,
which didn't actually do anything. (Bug #39101)
2009-05-07 10:28:29 -07:00
c0cd2742af Bug #41943: mysqlbinlog.exe crashes if --hexdump option is used
The --hexdump option crashed mysqlbinlog when used together  
with the --read-from-remote-server option due to use of  
uninitialized memory.  
  
Since Log_event::print_header() relies on temp_buf to be  
initialized when the --hexdump option is present,  
dump_remote_log_entries() was fixed to setup temp_buf to point  
to the start of a binlog event as done in  
dump_local_log_entries().  
 
The root cause of this bug is identical to the one for 
bug #17654. The latter was fixed in 5.1 and up, so this 
patch is backport of the patches for bug #17654 to 5.0. 
 
Only 5.0 needs a changelog entry. 

client/mysqlbinlog.cc:
  Fixed dump_remote_log_entries() so that temp_buf is initialized 
  as it may be used later by Log_event::print_header() if the 
  --hexdump option is present.
mysql-test/r/mysqlbinlog.result:
  Added a test case for bug #41943.
mysql-test/t/mysqlbinlog.test:
  Added a test case for bug #41943.
2009-05-07 18:31:02 +04:00
413c0756ac Fix for Bug#44493 Fix InnoDB owned 5.0 tests with imperfect cleanup
Details:
  innodb-autoinc-optimize
     Add DROP TABLE which is missing (Backport of fix from 5.1)
  innodb_notembedded
     Take care that the disconnects of additional sessions
     are completed.

  Note:
     The merge 5.0 -> 5.1 for innodb-autoinc-optimize
     should be a "null" merge = no changes in 5.1.
2009-05-06 17:11:08 +02:00
767501a9b1 Merge community up to enterprise, thus ending the community-server
adventure.
2009-05-06 09:06:32 -04:00
b1a02aef50 merging with local fix. 2009-05-06 15:00:14 +05:30
609a794b15 Bug #39918 memory (heap) engine crashing with b-tree index and DELETE
with seg fault

Multiple-table DELETE from a table joined to itself may cause
server crash. This was originally discovered with MEMORY engine,
but may affect other engines with different symptoms.

The problem was that the server violated SE API by performing
parallel table scan in one handler and removing records in
another (delete on the fly optimization).


mysql-test/r/heap_btree.result:
  Updated test result after adding new test for this bug.
mysql-test/t/heap_btree.test:
  Updated test result after adding new test for the bug report.
sql/sql_delete.cc:
  Updated to check if the files in delete list appears in join list and disable 
  delete while scanning, if it appears.
2009-05-06 13:37:10 +05:30
4822696ecb Pull 5.1 treatment of community features into 5.0. 2009-05-05 17:03:23 -04:00
3636eab703 Merge with 5.1-bugteam. 2009-05-05 10:29:01 -07:00
391364fac7 Bug#43580: Issue with Innodb on multi-table update
Certain multi-updates gave different results on InnoDB from
to MyISAM, due to on-the-fly updates being used on the former and
the update order matters.
Fixed by turning off on-the-fly updates when update order 
dependencies are present.


mysql-test/r/innodb_mysql.result:
  Bug#43580: Test result.
mysql-test/suite/rpl/r/rpl_slave_skip.result:
  Bug#43580: Changed test result. The InnoDB result is now what it would have been on MyISAM.
mysql-test/t/innodb_mysql.test:
  Bug#43580: Test case.
sql/sql_base.cc:
  Bug#43580: Added a word of caution about using tmp_set here.
sql/sql_update.cc:
  Bug#43580: Fix.
  Calls to TABLE::mark_columns_needed_for_update() are moved
  from mysql_multi_update_prepare() and right before the decison
  to do on-the-fly updates to the place where we do (or don't do)
  on-the-fly updates.
2009-05-05 11:38:19 +02:00
0df0070549 Bug#44352 UPPER/LOWER function doesn't work correctly
on cp932 and sjis environment.
Problem: case conversion erroneously changes the second bytes
of multi-byte sequences because single-byte functions were
called in a mistake.
Fix: call multi-byte aware functions instead.
2009-05-05 11:55:22 +05:00
7e66dbea48 Bug#44306: Assertion fail on duplicate key error in
'INSERT ... SELECT' statements

Merge
2009-05-04 14:57:42 +02:00
fdd5a63fe6 Bug#44306: Assertion fail on duplicate key error in
'INSERT ... SELECT' statements
            
The code that produces result rows expected that a duplicate row
error could not occur in INSERT ... SELECT statements with 
unfulfilled WHERE conditions. This may happen, however, if the 
SELECT list contains only aggregate functions.
Fixed by checking if an error occured before trying to send EOF
to the client.


mysql-test/r/insert_select.result:
  Bug#44306: Test result
mysql-test/t/insert_select.test:
  Bug#44306: Test case
sql/sql_select.cc:
  Bug#44306: Fix
2009-05-04 14:45:36 +02:00
a3593930ee Additional Fix for BUG#40827 - Killing insert-select to MyISAM can cause
table corruption

Disabling the mysiam_debug.test in embedded mode because of BUG#43733

mysql-test/t/myisam_debug.test:
  Disable the test in embedded mode
2009-05-04 14:35:16 +05:30
c5548ad7bd Bug#38077.
1. Replace waiting of SQL thread stop by waiting of SQL error on slave and stopped
SQL thread.
2. Remove debug code because it already implemented in MTR2.
2009-05-02 23:28:54 +04:00
24457353c7 auto-upmerge 5.0-bugteam --> 5.1-bugteam (bug 37362) 2009-05-01 00:27:10 +05:00
f0791b8b6b Bug #37362: Crash in do_field_eq
EXPLAIN EXTENDED of nested query containing a error:

   1054 Unknown column '...' in 'field list'

may cause a server crash.


Parse error like described above forces a call to
JOIN::destroy() on malformed subquery.
That JOIN::destroy function closes and frees temporary
tables. However, temporary fields of these tables
may be listed in st_select_lex::group_list of outer
query, and that st_select_lex may not cleanup them
properly. So, after the JOIN::destroy call that
st_select_lex::group_list may have Item_field
objects with dangling pointers to freed temporary
table Field objects. That caused a crash.


mysql-test/r/subselect3.result:
  Added test case for bug #37362.
mysql-test/t/subselect3.test:
  Added test case for bug #37362.
sql/sql_select.cc:
  Bug #37362: Crash in do_field_eq
  
  The JOIN::destroy function has been modified to
  cleanup temporary table column items.
2009-05-01 00:20:37 +05:00
6a43ad1d53 Merge to 5.1-bugteam. 2009-04-30 19:41:43 +05:00
91199415a5 merge 5.1-bt rep -> local 5.1-bt 2009-04-30 17:29:57 +03:00
24bfa85531 moving bug#38694 test files into rpl suite 2009-04-30 16:20:38 +03:00
a152aa32de merging 5.0-bt to 5.1-bt 2009-04-30 16:17:46 +03:00
bb668b284d merging with mysql-5.1-bugteam 2009-04-30 18:22:48 +05:30
db83fda90d BUG#37631 - Incorrect key file for table after upgrading from 5.0 to 5.1
This patch adds corrections to the original patch
submitted 2009-04-08 (http://lists.mysql.com/commits/71607):

- fixed that the original patch didn't work because of an
  incorrect condition;
- added a test case.

mysql-test/r/upgrade.result:
  Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
  
  Result file for test case
mysql-test/std_data/bug37631.MYD:
  Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
  
  table created in mysql 4.0
mysql-test/std_data/bug37631.MYI:
  Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
  
  table created in mysql 4.0
mysql-test/std_data/bug37631.frm:
  Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
  
  table created in mysql 4.0
mysql-test/t/upgrade.test:
  Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
  
  Adds test for checking that upgrade works
  on a table which is created by a mysql
  server version <= 4.0.
storage/myisam/ha_myisam.cc:
  Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
  
  Fix the conformance checker to relax checking
  for the correct version of the tables (for tables
  created by mysql server version <= 4.0)
2009-04-30 18:16:49 +05:30
9cf91b4cd9 merging from 5.0-bt rep to a local branch 2009-04-30 15:41:47 +03:00
cf1845f4da Bug #44561 mtr2 --start-dirty is broken
start-dirty would remove stored procs etc.
Skip the copying back from stored system dir if using --start-dirty
2009-04-30 13:23:36 +02:00
e5d859fab7 Merge of fix for Bug#44522 main.not_embedded_server fails with "--check-testcases"
into actual tree
2009-04-30 12:26:11 +02:00
765cc53c84 automerge 2009-04-30 15:17:56 +05:00
c6d6e889cd Addition to the fix for BUG#40827 - Killing insert-select to MyISAM can cause
table corruption


Moved the testcase from the file myisam.test to the new testfile 
mysiam_debug.test
 

mysql-test/r/myisam.result:
  Removed result file for BUG#40827
mysql-test/r/myisam_debug.result:
  Result file for BUG#40827
mysql-test/t/myisam.test:
  Removed testcase for BUG#40827
mysql-test/t/myisam_debug.test:
  TestCase for BUG#40827
2009-04-30 16:33:44 +05:30
5d41d82174 Bug#43962 "Packets out of order" calling a SHOW TABLE STATUS
Error happens because sp_head::MULTI_RESULTS is not set for SP
which has 'show table status' command.
The fix is to add a SQLCOM_SHOW_TABLE_STATUS case into
sp_get_flags_for_command() func.


mysql-test/r/sp.result:
  test result
mysql-test/t/sp.test:
  test case
sql/sp_head.cc:
  Error happens because sp_head::MULTI_RESULTS is not set for SP
  which has 'show table status' command.
  The fix is to add a SQLCOM_SHOW_TABLE_STATUS case into
  sp_get_flags_for_command() func.
2009-04-30 14:37:29 +05:00
a5badbfe6d Fix for BUG#40827 - Killing insert-select to MyISAM can cause table corruption
Killing the insert-select statement corrupts the MyISAM table only
when the destination table is empty and when it has indexes. When 
we bulk insert huge data and if the destination table is empty we 
disable the indexes for fast inserts, data is then inserted and 
indexes are re-enabled after bulk_insert operation
                        
Killing the query, aborts the repair table operation during enable
indexes phase leading to table corruption.
                      
We now truncate the table when we detect that enable indexes is
killed for bulk insert query.As we have an empty table before the 
operation, we can fix by truncating the table.

mysql-test/r/myisam.result:
  Result file for BUG#40827
mysql-test/t/myisam.test:
  Testcase for BUG#40827
storage/myisam/ha_myisam.cc:
  Fixed end_bulk_insert() method to truncate the table when we detect enable 
  index operation is killed.
2009-04-30 12:40:12 +05:30
261066e251 Bug #44511 MTR2: add an option not to kill other servers when one from the group exits
MTR would die as soon as one server terminates
Implemented --wait-all option and associated subroutine
2009-04-29 16:13:38 +02:00
45cbd32697 Bug#43737: Select query return bad result
A bug in the initialization of key segment information made it point
to the wrong bit, since a bit index was used when its int value
was needed. This lead to misinterpretation of bit columns
read from MyISAM record format when a NULL bit pushed them over
a byte boundary.
Fixed by using the int value of the bit instead.


mysql-test/r/myisam.result:
  Bug#43737: Test result.
mysql-test/t/myisam.test:
  Bug#43737: Test case.
storage/myisam/mi_open.c:
  Bug#43737: fix.
2009-04-29 14:00:34 +02:00
eed928808e merging 2009-04-29 09:40:50 +05:00
c471896f69 merging 2009-04-29 09:39:49 +05:00
0e88c80580 merging 2009-04-29 07:59:10 +05:00
7f4e25644e merge 5.1-bugteam (local) --> 5.1-bugteam 2009-04-28 23:10:29 +01:00
ca0e746d3b Bug #44530 mtr v2 startup very slow on Windows.
MTR is stuck for about 20 seconds checking for free ports.
The reason is that perl's connect()  takes 1 second on windows
if port is not opened.

This patch fixes the mtr_ping_port implementation on Windows
to use Net::Ping for the port checking with small (0.1sec) timeout.

This patch also removes pointless second call to check_ports_free() 
in case of auto build thread.
2009-04-28 23:06:36 +02:00
14982a702e Merge 5.0 -> 5.1 of fix for Bug 43546
Several 5.0 tests do not pass MTR's --check option (moved from Bug 42308)
2009-04-28 20:42:17 +02:00
2328f9b13f Fix for Bug#43546 Several 5.0 tests do not pass MTR's --check option
(moved from Bug 42308)

Details:
- insert_update
  Add DROP TABLE which was missing, error numbers -> names
- varbinary
  Add DROP TABLE which was missing
- sp_trans_log
  Add missing DROP function, improved formatting
2009-04-28 20:12:18 +02:00
fb2d75cb75 Bug #27884: mysql --html does not quote HTML special characters in output
Fix encoding of field values and names in HTML output from mysql client.
2009-04-28 10:54:26 -07:00
d38e62634f Bug #38694 Race condition in replication thread shutdown
The issue of the current bug is unguarded access to mi->slave_running 
by the shutdown thread calling end_slave() that is bug#29968 
(alas happened not to be cross-linked with the current bug)

Fixed:

with removing the unguarded read of the running status
and perform reading it in terminate_slave_thread()
at time run_lock is taken (mostly bug#29968 backporting, still with some
improvements over that patch - see the error reporting from 
terminate_slave_thread()).
Issue of bug#38716 is fixed here for 5.0 branch as well.

Note:

There has been a separate artifact identified - 
a race condition between init_slave() and  end_slave() - 
reported as  Bug#44467.

mysql-test/r/rpl_bug38694.result:
  a new results file is added.
mysql-test/t/rpl_bug38694-slave.opt:
  simulating delay at slave threads shutdown.
mysql-test/t/rpl_bug38694.test:
  A new test to check if a delay at the termination phase of slave threads
  could cause any issue.
sql/slave.cc:
  The unguarded read of the running status is removed. Its reading is done in
  terminate_slave_thread() at time run_lock is taken;
  Calling terminate_slave_threads(skip_lock := !need_slave_mutex) in the failing branch of start_slave_threads() which is bug#38716 issue.
sql/slave.h:
  removing terminate_slave_thread() out of the global interface scope.
2009-04-28 14:46:07 +03:00
620fb880d7 Bug#38990 Arbitrary data input plus GIS functions causes mysql server crash
the Point() and Linestring() functions create WKB representation of an
   object instead of an real geometry object.
   That produced bugs when these were inserted into tables.

   GIS tests fixed accordingly.
            
per-file messages:
  mysql-test/r/gis-rtree.result
Bug#38990 Arbitrary data input plus GIS functions causes mysql server crash 
    test result
  mysql-test/r/gis.result
Bug#38990 Arbitrary data input plus GIS functions causes mysql server crash 
    test result
  mysql-test/t/gis-rtree.test
Bug#38990 Arbitrary data input plus GIS functions causes mysql server crash 
    test fixed - GeomFromWKB invocations removed
  mysql-test/t/gis.test
Bug#38990 Arbitrary data input plus GIS functions causes mysql server crash 
    test fixed - AsWKB invocations added
  sql/item_geofunc.cc
Bug#38990 Arbitrary data input plus GIS functions causes mysql server crash 
     Point() and similar functions to create a proper object
2009-04-28 14:47:26 +05:00
755d312e84 manual merge 5.0-bugteam --> 5.1-bugteam 2009-04-28 05:27:38 +05:00
def0470598 backport from 6.0:
Bug #40925: Equality propagation takes non indexed attribute

Query execution plans and execution time of queries like

  select a, b, c from t1
    where a > '2008-11-21' and b = a limit 10

depended on the order of equality operator parameters:
"b = a" and "a = b" are not same. 


An equality propagation algorithm has been fixed:
the substitute_for_best_equal_field function should not
substitute a field for an equal field if both fields belong
to the same table.


mysql-test/r/select.result:
  Added test case for bug #40925.
mysql-test/t/select.test:
  Added test case for bug #40925.
sql/item.cc:
  Bug #40925: Equality propagation takes non indexed attribute
  
  An equality propagation algorithm has been fixed:
  the substitute_for_best_equal_field function should not 
  substitute a field for an equal field if both fields belong
  to the same table.
2009-04-28 05:19:13 +05:00
26cc84d947 ENCRYPT function always returns NULL on windows.
The fix is to disable result log as we need to
test valgrind error only.
2009-04-27 15:05:01 +05:00
6309ce9594 Fixed rpl_innodb_mixed_ddl and rpl_000015.
Respectively, replaced "--exec diff" by "--diff_files" which is a mysqltest command to run a
non-operating system specific diff. Removed the file rpl_000015-slave.sh as it is not
necessary in the new MTR.
2009-04-26 22:21:01 +01:00
4c566d1305 merge 5.0-> 5.1 2009-04-24 13:00:17 -04:00
b7a70c8b3d Bug#32784: Timeout in test "innodb_charset": InnoDB much slower than other handlers
Turned off autocommit at the start of this test per Innobase recommendation.
Noted significant reduction in run time for this test w/ a minor increase in other tests' run-times.
2009-04-24 12:58:23 -04:00
d5065d1426 Applying InnoDB snashot 5.0-ss4900, part 2. Fixes BUG#43309
1) BUG#43309 - Test main.innodb can't be run twice

Detailed revision comments:

r4701 | vasil | 2009-04-13 17:03:46 +0300 (Mon, 13 Apr 2009) | 6 lines
branches/5.0:

Fix Bug#43309 Test main.innodb can't be run twice

by making the innodb.test reentrant.
2009-04-24 17:27:53 +05:30
02421023fc BUG#44389 rpl_row_mysqlbinlog fails on windows due to operating system
specifc command

Replaced "--exec rm" by "remove_file" which is a mysqltest command to
erase a file.
2009-04-24 02:02:07 +01:00