Commit graph

23874 commits

Author SHA1 Message Date
Satya B
1cdd699022 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.
2009-04-30 12:40:12 +05:30
Martin Hansson
7d24441119 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.
2009-04-29 14:00:34 +02:00
Alexey Botchkov
1e53c709ca merging 2009-04-29 09:39:49 +05:00
Alexey Botchkov
08690ef254 merging 2009-04-29 07:59:10 +05:00
Alfranio Correia
db7703b392 merge 5.1-bugteam (local) --> 5.1-bugteam 2009-04-28 23:10:29 +01:00
Matthias Leich
7a21958d7f 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
Matthias Leich
386ceb4916 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
Alexey Botchkov
d1968ad43f 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
Gleb Shchepa
e4d4226efa manual merge 5.0-bugteam --> 5.1-bugteam 2009-04-28 05:27:38 +05:00
Gleb Shchepa
fa01a4ed26 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.
2009-04-28 05:19:13 +05:00
Sergey Glukhov
00c37fdfba 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
Alfranio Correia
8126db7c96 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
Patrick Crews
2bbd677f5b merge 5.0-> 5.1 2009-04-24 13:00:17 -04:00
Patrick Crews
3df4ad8a5d 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
Satya B
f05f760e66 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
Alfranio Correia
99d1233a72 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
Sergey Glukhov
ed39e76349 Bug#44367 valgrind warnings with find_in_set() functions
init 'wc' variable
2009-04-23 12:50:34 +05:00
Sergey Glukhov
0c65370a06 Bug#44365 valgrind warnings with encrypt() function
replaced String->c_ptr() with String->c_ptr_safe()
2009-04-23 12:47:54 +05:00
Sergey Glukhov
3b3fc01425 Bug#44358 valgrind errors with decode() function
The warning happens because string argument is not zero ended.
The fix is to add new parameter 'length' to SQL_CRYPT() and
use ptr() instead of c_ptr().
2009-04-23 12:43:42 +05:00
Sergey Vojtovich
d2f2edbb92 Merge 5.0-bugteam to 5.1-bugteam. 2009-04-21 15:25:04 +05:00
Sergey Vojtovich
904498295f BUG#36966 - mysqldump.test fails in pushbuild
mysqldump.test is designed to run with concurrent inserts
disabled. It is disabling concurrent inserts at the very
beginning of the test case, and re-enables them at the
bottom of the test. But for some reason (likely incorrect
merge) we enable concurrent inserts in the middle of the test.

The problem is fixed by enabling concurrent inserts only
at the bottom of the test case.
2009-04-21 14:01:13 +05:00
Andrei Elkin
21a06c9c55 merge bug#38205 fixes to 5.1-bt 2009-04-21 11:30:40 +03:00
Chad MILLER
fb3acf6a1e Merge bugteam trunk and local. 2009-04-17 16:40:01 -04:00
Chad MILLER
a3bddbe465 Move test for bug 39559, which uses command-line mysql client
to separate test file that doesn't permit mysqld embedded in 
mysqltest.

Also, fix different comment handling in a incorrect new-to-5.1 
test.
2009-04-17 16:00:53 -04:00
Georgi Kodinov
4cd9f6e1ae merged bug 35087 to 5.1-bugteam 2009-04-17 19:18:00 +03:00
Georgi Kodinov
4783b2e196 Bug #35087: Inserting duplicate values at one time with DES_ENCRYPT leads
to wrong results
      
3 problems found with DES_ENCRYPT/DES_DECRYPT :

1. The max length was not calculated properly. Fixed in fix_length_and_dec()
2. DES_ENCRYPT had a side effect of sometimes reallocating and changing 
the value of its argument. Fixed by explicitly pre-allocating the necessary
space to pad the argument with trailing '*' (stars) when calculating the 
DES digest.
3. in DES_ENCRYPT the string buffer for the result value was not 
reallocated to the correct size and only string length was assigned to it. 
Fixed by making sure there's enough space to hold the result.
2009-04-17 18:52:57 +03:00
Sergey Glukhov
65e3d360f9 5.0-bugteam->5.1-bugteam merge 2009-04-17 13:46:27 +05:00
Sergey Glukhov
4fbfa8db45 Bug#44151 using handler commands on information_schema tables crashes server
information schema tables are based on internal tmp tables which are removed
after each statement execution. So HANDLER comands can not be used with
information schema.
2009-04-17 12:41:15 +05:00
Anurag Shekhar
2cdc1c6150 merging with local bugfix branch. 2009-04-17 11:23:54 +05:30
Anurag Shekhar
e0e8ec4b28 Bug#44040 MySQL allows creating a MERGE table upon VIEWs but crashes when
using it.
The crash was due to a null pointer present for select_lex while 
processing the view.
Adding a check while opening the view to see if its a child of a 
merge table fixed this problem.
2009-04-17 11:21:51 +05:30
Patrick Crews
c71f6995d5 merge 5.0-> 5.1 2009-04-16 13:50:38 -04:00
Patrick Crews
2c1add4b45 Bug#26887 - main.count_distinct3 fails randomly
Streamlined how we increase the size of our test table.
The new method shows run time decreased by ~60%.
This is not a guarantee that we will not see test timeouts (the random failures noted in the bug),
but it should significantly reduce the chances of this occurring.
2009-04-16 13:47:44 -04:00
Satya B
f6c28cd948 BUG#40827 - Killing insert-select to MyISAM can cause table corruption
Killing insert-select statement on MyISAM corrupts the table.
                  
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.
2009-04-16 17:02:56 +05:30
Alfranio Correia
8de80ef1b4 auto-merge 5.1-bugteam --> 5.1-bugteam (local) 2009-04-15 17:06:48 +01:00
Satya B
d629c4ecca Applying InnoDB snashot 5.1-ss4699, part 2. Fixes BUG#43309
1) BUG#43309 - Test main.innodb can't be run twice

2) Follow up fix for BUG#43309, adds explanatory comments.

Detailed revision comments:

r4575 | vasil | 2009-03-30 15:55:31 +0300 (Mon, 30 Mar 2009) | 8 lines
branches/5.1:

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

Make the innodb mysql-test more flexible by inspecting how much a
variable of interest has changed since the start of the test. Do not
assume the variables have zero values at the start of the test.

r4659 | vasil | 2009-04-06 15:34:51 +0300 (Mon, 06 Apr 2009) | 6 lines
branches/5.1:

Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:

Add an explanatory comment, as suggested by Patrick Crews in the bug report.
2009-04-15 17:58:07 +05:30
Satya B
df7f5472c9 Applying InnoDB snashot 5.1-ss4699, part 1. Fixes BUG#39320 and other
problems

1) BUG#39320 - innodb crash in file btr/btr0pcur.c line 217 with 
               innodb_locks_unsafe_for_binlog

2) Fixes bug in multi-table semi consistent reads.

3) Fixes email address from dev@innodb.com to innodb_dev_ww@oracle.com

4) Fixes warning message generated by main.innodb test


Detailed revision comments:

r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 5 lines
branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
also for unlock_row().  (Bug #39320)

rb://96 approved by Heikki Tuuri.

r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 8 lines
branches/5.1: Fix a bug in multi-table semi-consistent reads.
Remember the acquired record locks per table handle (row_prebuilt_t)
rather than per transaction (trx_t), so that unlock_row should successfully
unlock all non-matching rows in multi-table operations.
This deficiency was found while investigating Bug #39320.

rb://94 approved by Heikki Tuuri.

r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines
branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
modified by the current transaction.  This bug was introduced or unmasked
in r4400.

rb://97 approved by Heikki Tuuri

r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
branches/5.1:

Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com

r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
branches/5.1:

Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:

  TEST                                      RESULT   TIME (ms)
  ------------------------------------------------------------
  
  worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
  main.innodb                              [ pass ]   8803
  
  MTR's internal check of the test case 'main.innodb' failed.
  This means that the test case does not preserve the state that existed
  before the test case was executed.  Most likely the test case did not
  do a proper clean-up.
  This is the diff of the states of the servers before and after the
  test case was executed:
  mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
  mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
  mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
  mysqltest: ... Connected.
  mysqltest: Start processing test commands from './include/check-testcase.test' ...
  mysqltest: ... Done processing test commands.
  --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result	2009-03-30 14:12:31.000000000 +0300
  +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject	2009-03-30 14:12:41.000000000 +0300
  @@ -99,7 +99,7 @@
   INNODB_SUPPORT_XA	ON
   INNODB_SYNC_SPIN_LOOPS	20
   INNODB_TABLE_LOCKS	ON
  -INNODB_THREAD_CONCURRENCY	8
  +INNODB_THREAD_CONCURRENCY	16
   INNODB_THREAD_SLEEP_DELAY	10000
   INSERT_ID	0
   INTERACTIVE_TIMEOUT	28800
  
  mysqltest: Result content mismatch
  
  not ok

r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
branches/5.1:

Revert a change to Makefile.am that I committed accidentally in c4574.
2009-04-15 17:16:08 +05:30
Alfranio Correia
a8f7d47e6a BUG#41793 rpl_binlog_corruption disabled in main (needs new mtr)
The test case was missing "let $slave_sql_errno= 1594;".
2009-04-15 12:43:17 +01:00
Tatiana A. Nurnberg
42094d3f40 auto-merge 2009-04-14 17:09:19 +02:00
Tatiana A. Nurnberg
4e2a7d366b auto-merge 2009-04-14 16:38:55 +02:00
Gleb Shchepa
9952fa7a36 Bug #42563: Message tells me to repair table though Storage
Engine doesn't allow me to.

In case of incompatible changes between old and new table
versions, the mysqlcheck program prints error messages like
this:
  error: Table upgrade required. Please do
         "REPAIR TABLE `table_name`" to fix it!

However, InnoDB doesn't support REPAIR TABLE query, so the
message is confusing.


Error message text has been changed to:

  Table upgrade required. Please do "REPAIR TABLE `table_name`"
  or dump/reload to fix it!"
2009-04-14 19:19:15 +05:00
Narayanan V
5592d206f8 Importing test cases for IBMDB2I
The current patch

-- Adds the ibmdb2i suite
-- related include(.inc) files
-- tests for Bug#44020 and Bug#44025
2009-04-14 16:32:55 +05:30
Sergey Glukhov
7ff5b7a936 Bug#43385 Cannot ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME when Views exist(addon)
mysql_rename_view can not rename view if database is not the same.
The fix is to add new argument 'new_db' to mysql_rename_view() and
allow rename with different databases
(only for ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME).
2009-04-13 18:09:10 +05:00
Chad MILLER
538fdd3d4b Merge fix for bug 39559 and bugteam trunk. 2009-04-10 10:18:57 -04:00
Sergey Glukhov
5c5691e8ec Bug#43385 Cannot ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME when Views exist
allow 'rename view' for ALTER ...UPGRADE DATA DIRECTORY NAME command.
it's safe because a view has valid internal db&table names in this case.
2009-04-10 14:25:48 +05:00
Chad MILLER
aa449c1053 Bug#39559: dump of stored procedures / functions with C-style \
comment can't be read back

A change to the lexer in 5.1 caused slash-asterisk-bang-version
sections to be terminated early if there exists a slash-asterisk-
style comment inside it.  Nesting comments is usually illegal,
but we rely on versioned comment blocks in mysqldump, and the
contents of those sections must be allowed to have comments.

The problem was that when encountering open-comment tokens and
consuming -or- passing through the contents, the "in_comment"
state at the end was clobbered with the not-in-a-comment value,
regardless of whether we were in a comment before this or not.  

So, """/*!VER one /* two */ three */""" would lose its in-comment
state between "two" and "three".  Save the echo and in-comment
state, and restore it at the end of the comment if we consume a 
comment.
2009-04-09 22:18:18 -04:00
Andrei Elkin
ae758cbd52 Bug #38205 Row-based Replication (RBR) causes inconsistencies: HA_ERR_FOUND_DUPP_KEY
Bug#319  if while a non-transactional slave is replicating a transaction possible problem

only testing related: addressing reviewers' comments.
2009-04-09 16:05:41 +03:00
Luis Soares
dc3fad94b4 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
mysql_bin_log.write in mysql_execute_command. Checked also if all 
documented "DROP (...) IF EXISTS" get binlogged.
      
NOTE: This is a 5.0 backport patch as requested by support.
2009-04-09 11:40:22 +01:00
Sergey Glukhov
c641d962b3 5.0-bugteam->5.1-bugteam merge 2009-04-09 14:38:50 +05:00
Sergey Glukhov
db992986fe Bug#43833 Simple INSERT crashes the server
The crash happens due to wrong 'digits' variable value(0),
'digits' can not be 0, so the fix is use 1 as min allowed value.
2009-04-09 14:19:31 +05:00
He Zhenxing
56230bd67d Auto merge 2009-04-09 14:31:09 +08:00