Commit graph

66195 commits

Author SHA1 Message Date
Davi Arnaut
75e2212397 WL#5498: Remove dead and unused source code
Remove unused macros or macro which are always defined.

include/my_global.h:
  Remove unused macros and move macros which aren't used globally.
2010-07-23 17:16:29 -03:00
Davi Arnaut
7a344b6106 WL#5498: Remove dead and unused source code
Remove the obsolete and buggy bmove512, use memcpy instead.
2010-07-23 17:15:41 -03:00
Davi Arnaut
cc3a26289d WL#5498: Remove dead and unused source code
Remove the ancient and dead raid code. By now, even the server side
has been removed.
2010-07-23 17:15:07 -03:00
Davi Arnaut
7a221fc9a3 WL#5498: Remove dead and unused source code
Remove unused source code and associated paraphernalia.
2010-07-23 17:14:35 -03:00
Davi Arnaut
e7dd11f0be WL#5498: Remove dead and unused source code
Remove Windows related files which aren't used anymore.
2010-07-23 17:14:04 -03:00
Davi Arnaut
bc4ba28cab WL#5498: Remove dead and unused source code
Remove unused variables.
2010-07-23 17:13:36 -03:00
Davi Arnaut
97c3182312 WL#5498: Remove dead and unused source code
Remove code that has been disabled for a long time.
2010-07-23 17:09:27 -03:00
Davi Arnaut
f31c048321 Remove exceptions to the assert, bug has been fixed. 2010-07-20 08:57:02 -03:00
Davi Arnaut
93e38e8a3e Bug#22320: my_atomic-t unit test fails
Bug#52261: 64 bit atomic operations do not work on Solaris i386
           gcc in debug compilation

One of the various problems was that the source operand to
CMPXCHG8b was marked as a input/output operand, causing GCC
to use the EBX register as the destination register for the
CMPXCHG8b instruction. This could lead to crashes as the EBX
register is also implicitly used by the instruction, causing
the value to be potentially garbaged and a protection fault
once the value is used to access a position in memory.

Another problem was the lack of proper clobbers for the atomic
operations and, also, a discrepancy between the implementations
for the Compare and Set operation. The specific problems are
described and fixed by Kristian Nielsen patches:

Patch: 1

Fix bugs in my_atomic_cas*(val,cmp,new) that *cmp is accessed
after CAS succeds.

In the gcc builtin implementation, problem was that *cmp was
read again after atomic CAS to check if old *val == *cmp;
this fails if CAS is successful and another thread modifies
*cmp in-between.

In the x86-gcc implementation, problem was that *cmp was set
also in the case of successful CAS; this means there is a
window where it can clobber a value written by another thread
after successful CAS.

Patch 2:

Add a GCC asm "memory" clobber to primitives that imply a
memory barrier.

This signifies to GCC that any potentially aliased memory
must be flushed before the operation, and re-read after the
operation, so that read or modification in other threads of
such memory values will work as intended.

In effect, it makes these primitives work as memory barriers
for the compiler as well as the CPU. This is better and more
correct than adding "volatile" to variables.

include/atomic/gcc_builtins.h:
  Do not read from *cmp after the operation as it might be
  already gone if the operation was successful.
include/atomic/nolock.h:
  Prefer system provided atomics over the broken x86 asm.
include/atomic/x86-gcc.h:
  Do not mark source operands as input/output operands.
  Add proper memory clobbers.
include/my_atomic.h:
  Add notes about my_atomic_add and my_atomic_cas behaviors.
unittest/mysys/my_atomic-t.c:
  Remove work around, if it fails, there is either a problem
  with the atomic operations code or the specific compiler
  version should be black-listed.
2010-07-23 09:37:10 -03:00
Alexander Nozdrin
9deafdd2db Auto-merge (empty) from mysql-trunk. 2010-07-23 16:23:21 +04:00
Alexander Nozdrin
b3a11e66a7 Auto-merge from mysql-trunk-bugfixing. 2010-07-23 16:18:20 +04:00
Jonathan Perkin
74d6731682 Revert the ndb removal for now. 2010-07-20 10:35:55 +01:00
Alexander Nozdrin
fdfbb82964 Auto-merge from mysql-trunk-merge. 2010-07-20 12:09:51 +04:00
Davi Arnaut
84d2ae22fe Merge into mysql-trunk-merge.. 2010-07-19 16:03:59 -03:00
Evgeny Potemkin
4777370bb3 Bug#49771: Incorrect MIN/MAX for date/time values.
This bug is a design flaw of the fix for the bug#33546. It assumed that an
item can be used only in one comparison context, but actually it isn't the
case. Item_cache_datetime is used to store result for MIX/MAX aggregate
functions. Because Arg_comparator always compares datetime values as INTs when
possible the Item_cache_datetime most time caches only INT value. But
since all datetime values has STRING result type MIN/MAX functions are asked
for a STRING value when the result is being sent to a client. The
Item_cache_datetime was designed to avoid conversions and get INT/STRING
values from an underlying item, but at the moment the values is asked
underlying item doesn't hold it anymore thus wrong result is returned.
Beside that MIN/MAX aggregate functions was wrongly initializing cached result
and this led to a wrong result.

The Item::has_compatible_context helper function is added. It checks whether
this and given items has the same comparison context or can be compared as
DATETIME values by Arg_comparator. The equality propagation optimization is
adjusted to take into account that items which being compared as DATETIME
can have different comparison contexts.
The Item_cache_datetime now converts cached INT value to a correct STRING
DATETIME value by means of number_to_datetime & my_TIME_to_str functions.
The Arg_comparator::set_cmp_context_for_datetime helper function is added. 
It sets comparison context of items being compared as DATETIMEs to INT if
items will be compared as longlong.
The Item_sum_hybrid::setup function now correctly initializes its result
value.
In order to avoid unnecessary conversions Item_sum_hybrid now states that it
can provide correct longlong value if the item being aggregated can do it
too.

mysql-test/r/group_by.result:
  Added a test case for the bug#49771.
sql/item.cc:
  Bug#49771: Incorrect MIN/MAX for date/time values.
  The equality propagation mechanism is adjusted to take into account that
  items which being compared as DATETIME can have different comparison
  contexts.
  The Item_cache_datetime now converts cached INT value to a correct STRING
  DATETIME/TIME value.
sql/item.h:
  Bug#49771: Incorrect MIN/MAX for date/time values.
  The Item::has_compatible_context helper function is added. It checks whether
  this and given items has the same comparison context or can be compared as
  DATETIME values by Arg_comparator.
  Added Item_cache::clear helper function.
sql/item_cmpfunc.cc:
  Bug#49771: Incorrect MIN/MAX for date/time values.
  The Arg_comparator::set_cmp_func now sets the correct comparison context
  for items being compared as DATETIME values.
sql/item_cmpfunc.h:
  Bug#49771: Incorrect MIN/MAX for date/time values.
  The Arg_comparator::set_cmp_context_for_datetime helper function is added. 
  It sets comparison context of items being compared as DATETIMEs to INT if
  items will be compared as longlong.
sql/item_sum.cc:
  Bug#49771: Incorrect MIN/MAX for date/time values.
  The Item_sum_hybrid::setup function now correctly initializes its result
  value.
sql/item_sum.h:
  Bug#49771: Incorrect MIN/MAX for date/time values.
  In order to avoid unnecessary conversions Item_sum_hybrid now states that it
  can provide correct longlong value if the item being aggregated can do it
  too.
2010-07-19 21:11:47 +04:00
Jonathan Perkin
967ee2c65c bug#55250: 5.5.5-m3 incorrectly compiled with exceptions on Solaris/x86
Put '-features=no%except' back into Solaris/x86 CXXFLAGS.
2010-07-19 15:23:02 +01:00
Alexander Nozdrin
b5eac2b2ce Manual merge from mysql-trunk.
Conflicts:
  - scripts/CMakeLists.txt
2010-07-19 18:00:29 +04:00
unknown
e875a1d66b Merge from mysql-5.5.5-m3-release 2010-07-19 12:10:01 +02:00
Jon Olav Hauglid
80371ba644 manual merge from mysql-5.1-bugteam 2010-07-19 11:21:24 +02:00
Jon Olav Hauglid
85e5ce0ba0 Bug #54734 assert in Diagnostics_area::set_ok_status
This assert checks that the server does not try to send OK to the
client if there has been some error during processing. This is done
to make sure that the error is in fact sent to the client.

The problem was that view errors during processing of WHERE conditions
in UPDATE statements where not detected by the update code. It therefore
tried to send OK to the client, triggering the assert.
The bug was only noticeable in debug builds.

This patch fixes the problem by making sure that the update code
checks for errors during condition processing and acts accordingly.
2010-07-19 11:03:52 +02:00
Davi Arnaut
917c33cfbf Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Post-merge fix: remove leftovers from safemalloc removal.
2010-07-17 11:56:00 -03:00
Andrei Elkin
b283ffcd53 merging for bug#54935 to trunk-bugfixing 2010-07-17 14:07:36 +03:00
Davi Arnaut
59c0e16d62 Merge of mysql-trunk-merge into mysql-trunk-bugfixing. 2010-07-16 17:02:40 -03:00
Andrei Elkin
65ef0f4185 bug#54935
applying bundle made for next-mr-bugfixing to trunk-bugfixing branch of the bug
2010-07-16 21:25:38 +03:00
Andrei Elkin
30e2c6f19b bug#54935
applying bundle made for next-mr-bugfixing to trunk-bugfixing branch of the bug
2010-07-16 21:25:00 +03:00
Davi Arnaut
2c3a562600 Merge of mysql-5.1-bugteam into mysql-trunk-merge. 2010-07-16 15:00:07 -03:00
Davi Arnaut
92f3fc92f3 Bug#48327: Some crashes specific to FreeBSD ("embedded")
Bug#47139: Test "merge" crashes in "embedded" run

Backport patch for Bug#47139
2010-07-16 14:33:35 -03:00
Georgi Kodinov
08b7c7aeb4 merge 2010-07-16 18:04:39 +03:00
Marc Alff
ef87d588c5 Bug#53255 Installed psi headers in wrong directory
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 08:43:04 -06:00
Marc Alff
b6eac657ff Bug#53392 Tests: perfschema.query_cache fails
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 08:28:19 -06:00
Marc Alff
3b4c2b35e5 Bug#53394 Tests: perfschema.myisam_file_io fails
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 08:21:07 -06:00
Marc Alff
1a7abb5539 Bug#54467 performance schema complains of wrong structure in bootstrap mode
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 08:01:47 -06:00
Georgi Kodinov
dcaef2424e Addendum to bug #53814 : test results updates 2010-07-16 16:56:33 +03:00
Marc Alff
35afd63e91 Bug#54782 Performance schema per thread accounting and thread cache
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 07:50:50 -06:00
Ramil Kalimullin
4dd7f870c5 Automerge. 2010-07-16 12:43:17 +04:00
Ramil Kalimullin
37c97fd472 Fix for bug #50667: The InnoDB plugin prevents initialization
of the "embedded" server

Problem: mysqltest_embedded failed to load ha_innodb_plugin library
on some platforms (due to some unresolved references).

Fix: on FreeBSD use -export-dynamic flag building mysqltest_embedded.
That allows to use its global symbols to resolve references in the
dynamically loaded plugin library.


libmysqld/examples/Makefile.am:
  Fix for bug #50667: The InnoDB plugin prevents initialization
  of the "embedded" server
    - use -export-dynamic (on FreeBSD/DragonFly) building
  mysqltest_embedded to allow using its global symbols 
  to resolve references in the dynamically loaded plugin libraries.
2010-07-16 11:15:22 +04:00
Marc Alff
102d04dd65 Bug#52134 performance schema file io, symlink in path
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-15 19:25:03 -06:00
Marc Alff
3725080c25 Bug#53617 Missing performance schema tables not reported in the server log at startup
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-15 19:18:44 -06:00
Marc Alff
e04de9783a Bug#52502 Performance schema does not start with large mutex_instance buffers
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-15 19:03:08 -06:00
Marc Alff
36e80ced63 Bug#52586 Misleading error message on attempt to access a P_S table using a wrong name
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-15 18:50:39 -06:00
Marc Alff
bc6092a497 Bug#53566 SHOW ENGINE PERFORMANCE_SCHEMA STATUS reports less memory than really used
Backporting the fix from myql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-15 18:28:52 -06:00
Marc Alff
aa2daceebc Bug#53148 Remove PFS_readonly_table
This fix is for cleanup, to resolve a remaining code review item.
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5).
2010-07-15 18:06:33 -06:00
Marc Alff
4b1f459ae0 Fixed Copyright headers in storage/perfschema
Fixed minor merge issues with #includes
2010-07-15 17:44:45 -06:00
Davi Arnaut
7e6eb10c49 Bug#53613: mysql_upgrade incorrectly revokes ...
Post-merge fix: adjust line numbers in pfs_upgrade test case
result given that mysql_system_tables_fix.sql was modified.
2010-07-15 18:57:47 -03:00
Davi Arnaut
efc96e571c Strip maintainer mode options from the flags written to
mysql_config. Those are mainly warning options intended
to monitor the server code and shouldn't be leaked to
client code.
2010-07-15 17:16:24 -03:00
Davi Arnaut
4bb985ffd7 Bug#42733: Type-punning warnings when compiling MySQL -- strict aliasing violations.
Silence bogus aliasing warning through a pointer indirection. Also,
no need to check the return of a placement new.
2010-07-15 16:29:25 -03:00
Davi Arnaut
055f7fa159 WL#5486: Remove code for unsupported platforms
Restore hack necessary to setup a libmysqld archive.
2010-07-15 15:44:15 -03:00
Davi Arnaut
d9b6bbc5e8 Fix tree name. 2010-07-15 15:05:08 -03:00
Davi Arnaut
c295e3d7b6 Bug#45288: pb2 returns a lot of compilation warnings on linux
Fix compiler warnings due to: a mismatch in the prototypes for
check_access and implicit conversions from double to ulonglong
and vice-versa.

mysys/my_getopt.c:
  Explicit conversion from ulonglong to double. Might need to
  be tweaked in the future.
sql/sql_parse.h:
  Make prototype equal to the case when not compiling under embedded.
sql/sys_vars.cc:
  Explicit conversion from ulonglong to double. Destination var
  is a ulonglong.
sql/sys_vars.h:
  Explicit conversion from ulonglong to double. Might need to
  be tweaked in the future.
2010-07-15 14:45:08 -03:00
Georgi Kodinov
2fce37d2a9 merge 2010-07-15 18:46:41 +03:00