Commit graph

66442 commits

Author SHA1 Message Date
Jon Olav Hauglid
a5d72c498c merge from mysql-trunk-bugfixing 2010-07-13 10:39:24 +02:00
Davi Arnaut
985017674f Add the cmake option MYSQL_MAINTAINER_MODE which is equivalent
to the autotools option mysql-maintainer-mode. This option is
intended to set a few flags that should be activated by anyone
doing MySQL development, regardless of the build type. Also, the
flags are only set by the very end of the platform checks as
to not disturb fragile checks.
2010-07-12 13:39:00 -03:00
Alexey Kopytov
e59f416691 Bug#55061: Build failing on sol 8 x86 - assembler code vs
compiler problem

GCC-style inline assembly is not supported by the Sun Studio
compilers prior to version 12.

Added a check for the Sun Studio version to avoid using 
_FPU_GETCW() / _FPU_SETCW() when inline assembly is
 unsupported. This can lead to some differences in floating
point calculations on Solaris 8/x86 which, however, is not worth
bothering with Sun-style assembly .il templates.
2010-07-12 18:58:55 +04:00
Davi Arnaut
465e4025f7 Revert and fix confusion between tests analyse and analyze. Following the
naming scheme for tests related to functions, rename analyse.test to
func_analyse.test (test for the ANALYSE() procedure). Avoids confusion
with the ANALYZE statement (tested in analyze.test).
2010-07-12 10:38:38 -03:00
Davi Arnaut
db22b43bb4 Following the naming scheme for tests related to functions, rename
analyse.test to func_analyse.test. Avoids confusion with the ANALYZE
statement.
2010-07-12 09:50:07 -03:00
Marc Alff
6090cbe552 Bug#55087 Performance schema: optimization of the instrumentation interface
This change is for performance optimization.

Fixed the performance schema instrumentation interface as follows:
- simplified mysql_unlock_mutex()
- simplified mysql_unlock_rwlock()
- simplified mysql_cond_signal()
- simplified mysql_cond_broadcast()

Changed the get_thread_XXX_locker apis to have one extra parameter,
to provide memory to the instrumentation implementation.
This API change allows to use memory provided by the caller,
to avoid having to use thread local storage.
Using this extra parameter will be done in a separate fix,
this change is for the interface only.

Adjusted all the code and unit tests accordingly.
2010-07-09 17:00:24 -06:00
Mattias Jonsson
a0752a9eaf merge 2010-07-09 15:02:27 +02:00
Mattias Jonsson
6433a55356 merge 2010-07-09 15:00:33 +02:00
Mattias Jonsson
70e490430f merge 2010-07-09 14:59:40 +02:00
Georgi Kodinov
07e1cdc179 Addendum #3 to bug #53095 : fixed the wrong mysql-trunk tests. 2010-07-09 15:55:13 +03:00
Davi Arnaut
147963007b Remove AC_LANG_WERROR, it causes trouble earlier versions
of autoconf and is not strictly needed for now.
2010-07-09 09:51:21 -03:00
Georgi Kodinov
7d9cb31e69 merge 2010-07-09 15:40:38 +03:00
Davi Arnaut
e1f748c0bd Merge of mysql-5.1-bugteam into mysql-trunk-merge. 2010-07-09 09:28:51 -03:00
karen.langford@oracle.com
8349522bde Fix bug #55039 Failing assertion: space_id > 0 in fil0fil.c. 2010-07-09 14:23:48 +02:00
Georgi Kodinov
5e4fe83272 Addendum #2 to bug #53095 : fixed a bad testcase result. 2010-07-09 15:17:47 +03:00
Vasil Dimov
23648f7935 Merge mysql-5.1 -> mysql-5.1-innodb
(no changes introduced by this merge)
2010-07-09 15:15:09 +03:00
Davi Arnaut
ed9ffc6b09 Bug#45288: pb2 returns a lot of compilation warnings on linux
Although the C standard mandates that sprintf return the number
of bytes written, some very ancient systems (i.e. SunOS 4)
returned a pointer to the buffer instead. Since these systems
are not supported anymore and are hopefully long dead by now,
simply remove the portability wrapper that dealt with this
discrepancy. The autoconf check was causing trouble with GCC.
2010-07-09 09:00:17 -03:00
Davi Arnaut
4f59204b49 Bug#53445: Build with -Wall and fix warnings that it generates
Introduce a MySQL maintainer/developer mode that enables
a set of warning options for the C/C++ compiler. This mode
is intended to help improve the overall quality of the code.

The warning options are:

C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Werror"
CXX_WARNINGS="$C_WARNINGS -Wno-unused-parameter"

Since -Wall is essentially a moving target, autoconf checks
are not run with warning options enabled, in particualr -Werror.
This decision might be revisited in the future. The patch also
fixes a mistake in the makefiles, where automake CXXFLAGS would
be set to CFLAGS.
2010-07-09 08:37:51 -03:00
Luis Soares
24ffbc67c6 BUG 54744: automerged bzr bundle from bug report. 2010-07-09 12:24:18 +01:00
Luis Soares
8004097513 BUG 34043: automerged bzr bundle.
Merged on behalf of Davi.
2010-07-09 12:21:00 +01:00
Davi Arnaut
64e0b9b17b Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Post-merge fix: remove reference to file that is now gone.
2010-07-09 08:18:36 -03:00
Mattias Jonsson
9414aee225 Bug#52517: Regression in ROW level replication performance with partitions
In bug-28430 HA_PRIMARY_KEY_REQUIRED_FOR_POSITION
was disabled in the partitioning engine in the first patch,
That bug was later fixed a second time, but that flag
was not removed.

No need to disable this flag, as it leads to bad
choise in row replication.
2010-07-09 13:15:26 +02:00
Georgi Kodinov
0f3493a490 Bug #52274 : Missing path to mysql in mysql_secure_installation
Added some code to try to find the mysql command line in the most 
common places and stop if it's not there.
2010-07-09 14:11:12 +03:00
Davi Arnaut
3d2389c337 Use UNINIT_VAR workaround instead of LINT_INIT. 2010-07-09 16:37:52 -03:00
Sergey Glukhov
80935b8659 5.1-bugteam->trunk-merge merge 2010-07-09 14:46:46 +04:00
Sergey Glukhov
3c39a56208 Bug#54416 MAX from JOIN with HAVING returning NULL with 5.1 and Empty set
The problem there is that HAVING condition evaluates const
parts of condition despite the condition has references
on aggregate functions. Table t1 became const tables
after make_join_statistics and table1.pk = 1, HAVING is
transformed into MAX(1) < 7 and taken away from HAVING.
The fix is to skip evaluation of HAVING conts parts if
HAVING condition has references on aggregate functions.
2010-07-09 14:39:47 +04:00
Jimmy Yang
0c974ba5f4 Merge fix for bug #55039 from mysql-5.1-security to mysql-trunk-security.
bug #55039 Failing assertion: space_id > 0 in fil0fil.c line 2618 .

rb://396 approved by Sunny Bains
2010-07-09 02:01:05 -07:00
Jimmy Yang
64b381610d Fix bug #55039 Failing assertion: space_id > 0 in fil0fil.c.
rb://396, approved by Sunny Bains.
2010-07-09 01:39:20 -07:00
Alexander Barkov
63777287b8 Bug#54668 User variable assignments get wrong type
Problem: Item_str_ascii_func::val_str() did not set
charset of the returned value properly.
  
  mysql-test/include/ctype_numconv.inc
  mysql-test/r/ctype_binary.result
  mysql-test/r/ctype_cp1251.result
  mysql-test/r/ctype_latin1.result
  mysql-test/r/ctype_ucs.result
  - Adding tests
  
  sql/item_strfunc.cc
  - Adding initialization of charset
2010-07-09 09:39:41 +04:00
Davi Arnaut
dbf76b0deb Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Post-merge fix: cast argument and correct type in assignment.
2010-07-08 22:19:57 -03:00
Mattias Jonsson
e13405a79f Bug#52455: Subpar INSERT ON DUPLICATE KEY UPDATE performance with many partitions
The handler function for reading one row from a specific index
was not optimized in the partitioning handler since it
used the default implementation.

No test case since it is performance only, verified by hand.
2010-07-09 01:09:31 +02:00
Luis Soares
f4f8de20ad BUG#54744: valgrind reports leak for mysqlbinlog
The server was not cleaning up some dbug allocated memory 
before exiting. This is not a real problem, as this memory 
would be deallocated anyway. Nonetheless, we improve the 
mysqlbinlog exit procedure, wrt to memory book-keeping, when 
no parameter is given.
      
To fix this, we deploy a call to my_end() before the
thread exits.
2010-07-08 23:40:48 +01:00
Davi Arnaut
a10ae35328 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.
2010-07-08 18:20:08 -03:00
karen.langford@sun.com
1d513a1b04 Null-merge from mysql-5.1.46sp1-release 2010-07-08 20:46:26 +02:00
Luis Soares
d4cd1f843d Revert patch for BUG#54744. 2010-07-08 17:30:19 +01:00
Marc Alff
8ad6e9c1bb Fixed headers in include/mysql/psi 2010-07-08 11:04:07 -06:00
Olav Sandstaa
b7166f33d0 Backporting of jorgen.loland@sun.com-20100618093212-lifp1psig3hbj6jj
from mysql-next-mr-opt-backporting.

Bug#54515: Crash in opt_range.cc::get_best_group_min_max on 
           SELECT from VIEW with GROUP BY
      
When handling the grouping items in get_best_group_min_max, the
items need to be of type Item_field. In this bug, an ASSERT 
triggered because the item used for grouping was an 
Item_direct_view_ref (i.e., the group column is from a view). 
The fix is to get the real_item since Item_ref* pointing to 
Item_field is ok.
2010-07-08 15:19:05 +02:00
Guilhem Bichot
65bdafda29 backport of guilhem@mysql.com-20100628140739-i9vy8ugxp1v5aspb
from next-mr-bugfixing:
BUG#54682 "set sql_select_limit=0 does not work"; let SQL_SELECT_LIMIT=0
work like it does in 5.1.
2010-07-08 14:36:10 +02:00
Luis Soares
37caf28c83 automerging bugfixes in latest mysql-trunk-bugfixing. 2010-07-08 10:06:11 +01:00
Luis Soares
e8ee471447 BUG 54925: automerged bzr bundle from bug report. 2010-07-08 10:02:43 +01:00
Luis Soares
43f6b7b4d5 BUG 54509: automerged bzr bundle from bug report. 2010-07-08 10:01:12 +01:00
Luis Soares
74ed6149ed BUG 54744: automerged bzr bundle from bug report. 2010-07-08 09:59:43 +01:00
Jimmy Yang
a8f71eb381 Fix Bug #54764 memory allocated in os_aio_array_create is not
freed at shutdown

rb://395, approved by Sunny Bains
2010-07-08 00:05:59 -07:00
38876dc9af Auto merge 2010-07-08 10:49:22 +08:00
b440125f1c Postfix bug#48321
Fix the memory leak
2010-07-08 10:44:26 +08:00
Luis Soares
8794236100 BUG 54842: automerged bzr bundle in mysql-trunk-bugfixing. 2010-07-07 23:27:52 +01:00
sunanda
aff388cd09 rko Mdkeld change, revision 3351.14.134 add innodb_plugin to mysql-test-run default suites
was not complete. Bootstrap failed to pick up necessary files needed by test and hence
all tests failed.
2010-07-07 20:34:50 +02:00
Vasil Dimov
75690d7b26 Add the innodb_plugin tests to "make dist". 2010-07-07 20:51:30 +03:00
Vasil Dimov
7c6ba7b4de Merge the fix for Bug#49238 from SVN
(without the unrelated whitespace changes):

  ------------------------------------------------------------------------
  r7009 | jyang | 2010-04-29 20:44:56 +0300 (Thu, 29 Apr 2010) | 6 lines
  
  branches/5.0: Port fix for bug #49238 (Creating/Dropping a temporary
  table while at 1023 transactions will cause assert) from 5.1 to
  branches/5.1. Separate action for return value DB_TOO_MANY_CONCURRENT_TRXS
  from that of DB_MUST_GET_MORE_FILE_SPACE in row_drop_table_for_mysql().
  
  
  ------------------------------------------------------------------------
2010-07-07 20:13:53 +03:00
Jon Olav Hauglid
5050cd7c89 Bug #37521 Row inserted through view not always visible in base
table immediately after

The problem was that rows inserted in a table by one connection was
not immediately visible if another connection queried the table,
even if the insert had committed.

The reason for the problem was that the server sent a status reply
to the client before it actually did the commit. Therefore it was
possible to get an OK from the server before the changes were made
permanent and visible to other connections.

This patch fixes the problem by not sending status messages to the
server until any changes made have been committed. No test case added
as reproducing the error requires very specific timing betweeen the
server and two or more clients.

This patch also fixes the following (duplicate) bugs:
Bug #29334 pseudo-finished SHOW GLOBAL STATUS
Bug #36618 myisam insert not immediately visible to select from another client
Bug #45864 insert on one connection, immediate query on another produces no result
Bug #51329 Inserts from one connection not immediately visible in second
           connection
Bug #41516 Assertion fails when error returned from
           handler::external_lock(thd, F_UNLCK)
2010-07-07 15:20:07 +02:00