Commit graph

58260 commits

Author SHA1 Message Date
Bjorn Munch
013717d110 Bug #44479 mysql-test-run does not detect that external server has Innodb support
Variable name mismatch
Map variable have_innodb=YES to innodb=ON
2009-08-11 12:59:43 +02:00
Guilhem Bichot
667ab3664a temporarily remove Summit defaults of InnoDB options, to see if it influences pushbuild2
sql/sql_insert.cc:
  fix wrong merge
2009-08-11 12:38:23 +02:00
unknown
a2daa87980 Raise version number after cloning 5.0.85 2009-08-11 07:16:52 +02:00
Davi Arnaut
a51887143a Merge from mysql-5.0-bugteam. 2009-08-10 19:47:28 -03:00
unknown
0a7219d50c Merge 2009-08-10 20:53:26 +02:00
Davi Arnaut
19b325499e Manual merge. 2009-08-10 15:46:20 -03:00
Martin Hansson
527e5fd3a2 Merge 2009-08-10 16:08:51 +02:00
Guilhem Bichot
ff7a9ceadf working around BUG 46043 "mysqld --skip-innodb does not skip InnoDB",
to fix test failures on OS X PPC and Sparc64
2009-08-10 12:49:12 +02:00
Davi Arnaut
c7163c630a Bug#45010: invalid memory reads during parsing some strange statements
The problem is that the lexer could inadvertently skip over the
end of a query being parsed if it encountered a malformed multibyte
character. A specially crated query string could cause the lexer
to jump up to six bytes past the end of the query buffer. Another
problem was that the laxer could use unfiltered user input as
a signed array index for the parser maps (having upper and lower
bounds 0 and 256 respectively).

The solution is to ensure that the lexer only skips over well-formed
multibyte characters and that the index value of the parser maps
is always a unsigned value.

mysql-test/r/ctype_recoding.result:
  Update test case result: ending backtick is not skipped over anymore.
sql/sql_lex.cc:
  Characters being analyzed must be unsigned as they can be
  used as indexes for the parser maps. Only skip over if the
  string is a valid multi-byte sequence.
tests/mysql_client_test.c:
  Add test case for Bug#45010
2009-08-07 23:32:01 -03:00
Guilhem Bichot
412e14a72a small cmake fix for Windows build
storage/innobase/CMakeLists.txt:
  ${WIN64} fails if variable is undefined
2009-08-07 22:52:10 +02:00
Guilhem Bichot
b0dec55b5b Using same defaults for InnoDB options as the Summit release does. 2009-08-07 22:06:34 +02:00
Guilhem Bichot
cffc4bd90b Fixes to tests and their results, to account for differences between InnoDB 1.0.4 and the old builtin.
All committed result differences have either been verified by me or copied from Oracle's provided
results (storage/innodb_plugin/mysql-test/*.result, storage/innodb_plugin/mysql-test/patches).

mysql-test/r/information_schema.result:
  queries changed a bit
mysql-test/r/information_schema_db.result:
  queries changed a bit
mysql-test/r/innodb-autoinc.result:
  importing piece from storage/innodb_plugin/mysql-test/innodb-autoinc.result
mysql-test/r/innodb.result:
  result close to storage/innodb_plugin/innodb.result, except 4095 pages instead of 8191, which makes
  sense as Summit runs with a buffer pool of 64M, whereas the mentioned result file was made with
  a buffer pool of 128M.
mysql-test/r/mysqlshow.result:
  InnoDB I_S tables have arrived
mysql-test/suite/funcs_1/r/is_columns_is.result:
  queries changed a bit
mysql-test/suite/funcs_1/r/is_columns_is_embedded.result:
  queries changed a bit
mysql-test/suite/funcs_1/r/is_tables_is.result:
  queries changed a bit
mysql-test/suite/funcs_1/t/is_columns_is.test:
  making I_S queries ignore InnoDB I_S tables
mysql-test/suite/funcs_1/t/is_columns_is_embedded.test:
  making I_S queries ignore InnoDB I_S tables
mysql-test/suite/funcs_1/t/is_tables_is.test:
  making I_S queries ignore InnoDB I_S tables
mysql-test/suite/innodb/r/innodb-zip.result:
  result update
mysql-test/suite/innodb/t/innodb-zip.test:
  439, as size of prefix key, throws error with certain system zlib (ubuntu
  "intrepid") but not with zlib bundled with MySQL, because zlib's
  compressBound() are different (and used by InnoDB's page_zip_empty_size()).
mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result:
  result update
mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result:
  result update
mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic_32.result:
  result update (default value is 30 in the plugin, 20 in the builtin)
mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic_64.result:
  result update (default value is 30 in the plugin, 20 in the builtin)
mysql-test/suite/sys_vars/r/table_definition_cache_basic.result:
  result update (default value is 400 in Summit)
mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test:
  variable is writable in the plugin (patch from Oracle)
mysql-test/suite/sys_vars/t/innodb_lock_wait_timeout_basic.test:
  variable is per-session in the plugin (patch from Oracle)
mysql-test/t/information_schema.test:
  making I_S queries ignore InnoDB I_S tables
mysql-test/t/information_schema_db.test:
  making I_S queries ignore InnoDB I_S tables
mysql-test/t/innodb-autoinc.test:
  importing piece from storage/innodb_plugin/mysql-test/innodb-autoinc.test
mysql-test/t/innodb.test:
  importing most of storage/innodb_plugin/t/innodb.test. Most replace_result were not needed (no path printed), some where (for --embedded).
mysql-test/t/mysqlshow.test:
  output of test now depends on InnoDB or not InnoDB. As there is no way to make mysqlshow
  produce a single output in those two cases (no way to make it exclude InnoDB I_S
  tables), let the test depend on InnoDB, it isn't a very selective condition, and the
  test is simple enough.
storage/innobase/CMakeLists.txt:
  thanks Vlad for the noticing () vs {}
2009-08-07 22:04:53 +02:00
Martin Hansson
4c3917b6f8 Bug#46454: MySQL wrong index optimisation leads to incorrect result & crashes
Problem 1:
When the 'Using index' optimization is used, the optimizer may still - after
cost-based optimization - decide to use another index in order to avoid using
a temporary table. But when this happens, the flag to the storage engine to 
read index only (not table) was still set. Fixed by resetting the flag in the 
storage engine and TABLE structure in the above scenario, unless the new index
allows for the same optimization.
Problem 2:
When a 'ref' access method was employed by cost-based optimizer, (when the column
is non-NULLable), it was assumed that it needed no initialization if 'quick' access
methods (since they are based on range scan). When ORDER BY optimization overrides 
the decision, however, it expects to have this initialized and hence crashes. 
Fixed in 5.1 (was fixed in 6.0 already) by initializing 'quick' even when there's 
'ref' access. 

mysql-test/r/order_by.result:
  Bug#46454: Test result.
mysql-test/t/order_by.test:
  Bug#46454: Test case.
sql/sql_select.cc:
  Bug#46454: 
  Problem 1 fixed in make_join_select()
  Problem 2 fixed in test_if_skip_sort_order()
sql/table.h:
  Bug#46454: Added comment to field.
2009-08-07 13:51:40 +02:00
Guilhem Bichot
7ceb29ff17 Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same
layout as we always had in trees containing only the builtin
2) win\configure.js WITH_INNOBASE_STORAGE_ENGINE still works.

storage/innobase/CMakeLists.txt:
  fix to new directory name (and like 5.1)
storage/innobase/Makefile.am:
  fix to new directory name (and like 5.1)
storage/innobase/handler/ha_innodb.cc:
  fix to new directory name (and like 5.1)
storage/innobase/plug.in:
  fix to new directory name (and like 5.1)
2009-08-07 12:16:00 +02:00
Ignacio Galarza
466847a0b8 Auto-merge 2009-08-06 10:54:53 -04:00
Ignacio Galarza
a791f20089 Bug #27535 Installing Windows service with --defaults-file option - quotation marks issues
- Remove offensive quotes.
2009-08-06 10:24:28 -04:00
Mattias Jonsson
dd10de57d3 Bug#46478: timestamp field incorrectly defaulted
when partition is reoganized.

Problem was that table->timestamp_field_type was not changed
before copying rows between partitions.

fixed by setting it to TIMESTAMP_NO_AUTO_SET as the first thing
in fast_alter_partition_table, so that all if-branches is covered.
2009-08-06 14:28:39 +02:00
Satya B
d933cb1669 Fix for BUG#45816 - assertion failure with index containing double
column on partitioned table
      
      
An assertion 'ASSERT_COULUMN_MARKED_FOR_READ' is failed if the query 
is executed with index containing double column on partitioned table.
The problem is that assertion expects all the fields which are read,
to be in the read_set.
      
In this query only the field 'a' is in the readset as the tables in
the query are joined by the field 'a' and so the assertion fails 
expecting other field 'b'.
      
Since the function cmp() is just comparison of two parameters passed, 
the assertion is not required.
      
Fixed by removing the assertion in the double fields comparision
function and also fixed the index initialization to do ordered
index scan with RW LOCK which ensures all the fields from a key are in
the read_set.
 

Note: this bug is not reproducible with other datatypes because the
      assertion doesn't exist in comparision function for other 
      datatypes.

mysql-test/r/partition.result:
  Testcase for BUG#45816
mysql-test/t/partition.test:
  Testcase for BUG#45816
sql/field.cc:
  Removed the assertion ASSERT_COLUMN_MARED_FOR_READ in Field_double::cmp()
  function
sql/ha_partition.cc:
  Fixed index_int() method to make it initialize the read_set properly if
  ordered index scan with RW lock is requested.
2009-08-06 17:01:26 +05:30
Bjorn Munch
6ddeb379fe Bug #45771 AIX and i5/OS Perl bug: check_socket_path_length in MTR fails
Bug in Perl
Scrap attempt to do this smartly on AIX, just drop the test and assume it's OK
This commit undoes the previous push and adds a line to ignore on AIX
2009-08-06 09:30:53 +02:00
unknown
70cd97722d Bug #45630 rpl_trigger.test causes valgrind failures within nptl_pthread_exit_hack_handler
The server shutdown and start code triggered the valgrind failures 
within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64) 
in rpl_trigger.test file.

For fixing the bug, suppress valgrind failures within nptl_pthread_exit_hack_handler 
on Ubuntu 9.04, x86 (but not amd64). Because the server shutdown and start
code has been heavily used in mysql test set.

mysql-test/valgrind.supp:
  Add code for suppressing valgrind failures within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64).
2009-08-06 11:07:09 +08:00
Jim Winstead
d58d9a5471 Merge approved bug fix 2009-08-05 13:30:14 -07:00
Guilhem Bichot
7fa1449eac InnoDB plugin is built-in: remove test code which depended on the plugin property
mysql-test/lib/mtr_cases.pm:
  there is only one InnoDB in this tree, no need to run an InnoDB test twice
mysql-test/suite/innodb/include/have_innodb_plugin.inc:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb-analyze.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb-timeout.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb-use-sys-malloc.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb-zip.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb_bug36169.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb_bug36172.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb_file_format.test:
  plugin is now the builtin
mysql-test/suite/innodb/t/innodb_information_schema.test:
  plugin is now the builtin
storage/innodb_plugin/plug.in:
  build libinnobase.a, to have it built-in
2009-08-05 12:07:41 +02:00
Bjorn Munch
47227d7f6a Bug #45771 AIX and i5/OS Perl bug: check_socket_path_length in MTR fails
Bug is actually in Perl
Fixed by trapping and ignoring error from IO::Socket::UNIX
2009-08-05 09:41:40 +02:00
Davi Arnaut
c1433ba201 Merge from mysql-5.1-bugteam. 2009-08-04 17:43:17 -03:00
Davi Arnaut
039a659608 Merge from mysql-5.0-bugteam. 2009-08-04 10:53:15 -03:00
Davi Arnaut
ba7d1a514b Merge from mysql-5.1. 2009-08-04 10:50:20 -03:00
Davi Arnaut
b113183df2 Merge from mysql-5.0. 2009-08-04 10:47:18 -03:00
Guilhem Bichot
7c691a2e3f Undoing mikael@mysql.com-20081015100345-8tu2vmh7mzs60c23
"Patch to fix bug 38551": it was a manual backport (2008-10-15) of
http://lists.mysql.com/commits/56418.
But that was an early, non-final patch from the fixer of this bug (TheK):
after that backport was made by Mikael, TheK decided to do a different fix,
which was finally pushed into 6.0.
Then 5.1's code was changed for some other reasons, so now we have a
conflict between the old never-approved TheK patch backported to Summit and
the latest 5.1. The backport cannot stay, it has to be removed due to
the conflict, and then rewritten if desired.
2009-08-04 13:37:32 +02:00
Guilhem Bichot
b57e4dbd88 Creation of mysql-trunk = {summit + "Innodb plugin replacing the builtin"}:
bzr branch mysql-5.1-performance-version mysql-trunk # Summit
cd mysql-trunk
bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin 
bzr rm innobase # remove the builtin
Next step: build, test fixes.
2009-08-04 13:25:19 +02:00
Sergey Vojtovich
94efc1c6b0 Fixed build failure on Win.
Reverted lost in the merge line.
2009-08-04 13:02:48 +05:00
Satya B
ad2b506384 merge from mysql-5.1-bugteam 2009-08-04 11:34:14 +05:30
Gleb Shchepa
328754dea7 Additional post-commit fix (bug #30946): server version
in a conditional commentary at the new SELECT ... INTO
OUTFILE ... CHARACTER SET syntax has been updated to 5.1.38.
2009-08-04 00:22:28 +05:00
Alfranio Correia
9df10ae960 auto-merge mysq-5.1-bugteam (local) --> mysql-5.1-bugteam 2009-08-03 16:24:38 +01:00
Alfranio Correia
680a1b2c18 null-merge mysql-5.0-bugteam --> mysql-5.1-bugteam 2009-08-03 16:01:06 +01:00
Alfranio Correia
1dbb3010e7 Post-fix for BUG#43264
Install procedure does not copy *.inc files located under the mysql-test/t directory.
Therefore, this patch moves the rpl_trigger.inc to the mysql-test/include directory.
2009-08-03 14:37:50 +01:00
Satya B
56fd549989 Remove the 'single' space character after include/lock0iter.h in file
storage/innobase/Makefile.am

storage/innobase/Makefile.am:
  Remove the 'single' space character after include/lock0iter.h
2009-08-03 18:36:50 +05:30
Mikael Ronstrom
72ab530436 Auto-merge 2009-08-03 12:14:48 +02:00
Mikael Ronstrom
1e0b8f74e1 Fixed two test cases for extended partitioning tests 2009-08-03 12:12:36 +02:00
Alfranio Correia
40b85f65a7 null-merge mysql-5.0-bugteam --> mysql-5.1-bugteam 2009-08-03 10:47:45 +01:00
Alfranio Correia
3e9ddf3da9 auto-merge mysql-5.0-bugteam (local) --> mysql-5.0-bugteam 2009-08-03 10:43:20 +01:00
Alfranio Correia
968ec5eacc BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0
The test case fails sporadically on Windows while trying to overwrite an unused
binary log. The problem stems from the fact that MySQL on Windows does not
immediately unlock/release a file while the process that opened and closed it is
still running. In BUG 38603, this issue was circumvented by stopping the MySQL
process, copying the file and then restarting the MySQL process. 

Unfortunately, such facilities are not available in the 5.0.  Other approaches
such as stopping the slave and issuing change master do not work because the relay
log file and index are not closed when a slave is stopped. So to fix the problem,
we simply don't run on windows the part of the test that was failing.
2009-08-02 23:58:43 +01:00
Davi Arnaut
439e1eb0e0 Backport Tomas Ulin fix for a spurious failure on PushBuild:
http://lists.mysql.com/commits/53569

sql/ha_ndbcluster_binlog.cc:
  Remove extraneous mutex lock which could cause the server to deadlock.
2009-08-01 18:24:20 -03:00
Jim Winstead
5a806762cd Not all of the necessary tests for multi-byte support in readline
were included in the configure tests. (Bug #46310)
2009-07-31 17:46:04 -07:00
Jim Winstead
f18c256c4e Merge fix to test results 2009-07-31 16:53:44 -07:00
Jim Winstead
ba1f513f1b Fix incorrectly-committed changes to mysql.result 2009-07-31 16:43:46 -07:00
Davi Arnaut
d0f98f38ed Test case clean up: Move test cases that depend on the CSV storage
engine to the partition_csv test. Also remove test case that was
duplicated. Fix connection procedure with the embedded server.

mysql-test/r/partition.result:
  Update test case result.
mysql-test/r/partition_csv.result:
  Update test case result.
mysql-test/t/partition.test:
  Move test cases to the partition_csv test.
mysql-test/t/partition_csv.test:
  Move tests from partition.test and remove duplicate.
  Tweaky connection procedure to work with embedded.
2009-07-31 20:39:26 -03:00
Ignacio Galarza
276d3dd228 Auto-merge 2009-07-31 16:33:09 -04:00
Tatiana A. Nurnberg
e26350e000 auto-merge 2009-07-31 21:58:40 +02:00
Ignacio Galarza
008dd95f70 Auto-merge 2009-07-31 15:28:15 -04:00
Ignacio Galarza
09877515f2 Bug#17270 - mysql client tool could not find ../share/charsets folder and fails.
- Define and pass compile time path variables as pre-processor definitions to 
  mimic the makefile build.
- Set new CMake version and policy requirements explicitly.
- Changed DATADIR to MYSQL_DATADIR to avoid conflicting definition in 
  Platform SDK header ObjIdl.h which also defines DATADIR.
2009-07-31 15:22:02 -04:00