Commit graph

2483 commits

Author SHA1 Message Date
unknown
e8d7e27fed More after-merge fixes for merging MySQL 5.1.38 into MariaDB.
mysql-test/t/mysqldump.test:
  Make test case work when build directory is not world readable
  (this is the case for Buildbot checkouts).
mysys/my_getopt.c:
  Restore bugfix which was lost in previous merge.
storage/xtradb/buf/buf0flu.c:
  Fix extranous line caused by bad merge.
2009-09-15 14:53:07 +02:00
Sergey Petrunya
151e5d586c Merge lp:maria -> lp:~maria-captains/maria/maria-5.1-merge 2009-09-15 14:46:35 +04:00
unknown
829c6099b7 After-merge fix for MySQL 5.1.38 merge into MariaDB.
Due to a bugfix for enum options in MariaDB, my_getopt parses enums into an ulong.
However, some new code from MySQL was written to assume enums take an uint.

Fix by using the correct type.

(The new MySQL code in addition had an implicit assumption that my_bool and uint were
compatible; remove this assumption).
2009-09-11 15:20:03 +02:00
Sergey Petrunya
29f0dcb563 Merge MySQL->MariaDB
* Finished Monty and Jani's merge
* Some InnoDB tests still fail (because it's old xtradb code run against
  newer testsuite). They are expected to go after mergning with the latest
  xtradb.
2009-09-08 00:50:10 +04:00
unknown
592379fc95 Fix most Compiler warnings seen in buildbot.
Add suppressions for a few warnings that cannot be meaningfully fixed by
MariaDB developers.

Changes for XtraDB, PBXT, and YaSSL also submitted upstream.

Also add a `ccfilter` wrapper that can be used to filter out suppressed warnings in a
local build (to check that new warnings are not introduced).


client/mysqlbinlog.cc:
  Fix compiler warnings.
config/ac-macros/misc.m4:
  Fix wrong naming, autoconfig requires _cv_ in cached names.
extra/yassl/include/yassl_int.hpp:
  Fix compiler warnings.
extra/yassl/src/handshake.cpp:
  Fix compiler warnings.
extra/yassl/src/yassl_imp.cpp:
  Fix compiler warnings.
extra/yassl/src/yassl_int.cpp:
  Fix compiler warnings.
extra/yassl/taocrypt/include/modes.hpp:
  Fix compiler warnings.
extra/yassl/taocrypt/src/asn.cpp:
  Fix compiler warnings.
mysys/my_compress.c:
  Fix compiler warnings.
sql/mysqld.cc:
  Fix compiler warnings.
sql/strfunc.cc:
  Fix compiler warnings.
storage/pbxt/src/discover_xt.cc:
  Fix compiler warnings.
storage/xtradb/fil/fil0fil.c:
  Fix compiler warnings.
storage/xtradb/mtr/mtr0mtr.c:
  Fix compiler warnings.
storage/xtradb/srv/srv0srv.c:
  Fix compiler warnings.
storage/xtradb/srv/srv0start.c:
  Fix compiler warnings.
strings/decimal.c:
  Fix compiler warnings.
support-files/ccfilter:
  Add helper for suppressing compiler warnings in local developer source tree.
      
  Allows to check for not introducing new warnings into Buildbot without having to actually
  run the build through Buildbot.
support-files/compiler_warnings.supp:
  Suppress a few warnings that cannot be meaningfully fixed in source code.
2009-09-03 15:20:22 +02:00
unknown
03db11cfda MBug#423035: error in parsing enum value for plugin variable in mysqld command-line option
Fix parsing of invalid plugin enum option value.

Previous patch to fix plugin enum option parsing on big-endian introduced another bug due
to incorrect comparison of unsigned value. This would cause an incorrect value to be
parsed as value 0.

See also MySQL Bug#41010 and Bug#32034.


mysql-test/mysql-test-run.pl:
  Add a facility for test case to run the mysqld binary (to test that invalid startup options
  are rejected correctly).
mysql-test/r/mysqld_option_err.result:
  Add a test case to check that invalid startup options for mysqld are rejected.
  This is needed to test MBug#423035.
  Also add a few other similar tests, as this was completely untested before this patch.
mysql-test/t/mysqld_option_err.test:
  Add a test case to check that invalid startup options for mysqld are rejected.
  This is needed to test MBug#423035.
  Also add a few other similar tests, as this was completely untested before this patch.
mysys/my_getopt.c:
  Fix parsing of invalid plugin enum option value.
2009-09-03 15:05:02 +02:00
Sergey Vojtovich
24e418df69 Merge mysql-5.1-innodb_plugin to mysql-5.1. 2009-08-11 18:05:25 +05:00
unknown
916f5e1ed8 Merge XtraDB 6 with latest MariaDB 5.1 2009-08-03 22:19:12 +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
Satya B
2478d51032 merging with mysql-5.1-bugteam branch 2009-07-27 11:50:13 +05:30
Satya B
30441aeadf merge 5.0-bugteam to 5.1-bugteam 2009-07-24 12:15:06 +05:30
V Narayanan
18cc9fd478 merging with mysql-5.0-bugteam 2009-07-17 14:25:09 +05:30
Sergey Vojtovich
058cd62565 Merge 5.1-bugteam -> 5.1-innodb_plugin. 2009-07-14 15:06:04 +05:00
V Narayanan
5a0a258ec6 Bug#43572 Handle failures from hash_init
This patch is a follow up to http://lists.mysql.com/commits/76678.
When an allocation failure occurs for the buffer in the dynamic
array, an error condition was being set. The dynamic array is
usable even if the memory allocation fails. Since in most cases
the thread can continue to work without any problems the error
condition should not be set here.

This patch adds logic to remove the error condition from being set
when the memory allocation for the buffer in dynamic array fails.

mysys/array.c:
  Bug#43572 Handle failures from hash_init
  
  Remove the MY_WME flag from the call to malloc in order to
  prevent the error status from being set in the init_dynamic_array
  method. Since this memory allocation failure is no longer
  fatal this method has been modified to return FALSE
  (indicate success) irrespective of array->buffer being
  allocated.
2009-07-12 11:18:53 +05:30
Michael Widenius
9db357e2bf Added MY_CS_NONASCII marker for character sets that are not compatible with latin1 for characters 0x00-0x7f
This allows us to skip and speed up some very common character converts that MySQL is doing when sending data to the client
and this gives us a nice speed increase for most queries that uses only characters in the range 0x00-0x7f.

This code is based on Alexander Barkov's code that he has done in MySQL 6.0


include/m_ctype.h:
  Added MY_CS_NONASCII marker
libmysqld/lib_sql.cc:
  Added function net_store_data(...) that takes to and from CHARSET_INFO * as arguments
mysys/charset.c:
  Mark character sets with MY_CS_NONASCII
scripts/mysql_install_db.sh:
  Fixed messages to refer to MariaDB instead of MySQL
sql/protocol.cc:
  Added function net_store_data(...) that takes to and from CHARSET_INFO * as arguments
sql/protocol.h:
  Added function net_store_data(...) that takes to and from CHARSET_INFO * as arguments
sql/sql_string.cc:
  Quicker copy of strings with no characters above 0x7f
strings/conf_to_src.c:
  Added printing of MY_CS_NONASCII
strings/ctype-extra.c:
  Mark incompatible character sets with MY_CS_NONASCII
  Removed duplicated character set geostd
strings/ctype-sjis.c:
  Mark incompatible character sets with MY_CS_NONASCII
strings/ctype-uca.c:
  Mark incompatible character sets with MY_CS_NONASCII
strings/ctype-ucs2.c:
  Mark incompatible character sets with MY_CS_NONASCII
strings/ctype-utf8.c:
  Mark incompatible character sets with MY_CS_NONASCII
strings/ctype.c:
  Added function to check if character set is compatible with latin1 in ranges 0x00-0x7f
2009-07-02 13:15:33 +03:00
Kristofer Pettersson
42aaea8c3c Automerge 2009-06-25 15:58:59 +02:00
Kristofer Pettersson
de91a33d5e Bug#45336 --enable-foobar doesn't work for any plugin foobar.
Because of a regression introduced by bug#19027 the option --enable-foobar
doesn't work anymore for any plugin 'foobar'. The reason is that plugin
names are tristate options variables with optional parameters and integer
values are not accepted. Since the 'enable' prefix attempts to assign '1'
to the option the operation fails.

This patch translates any number n assigned to a plugin variable of type ENUM
to be the corresponding enumerated item. As a side effect --enable-foobar and
--disable-foobar will also start working again.

mysys/my_getopt.c:
  * setval now accepts integer values for option variables of type ENUM.
2009-06-25 15:55:26 +02:00
V Narayanan
b0064fa5a9 Bug#43572 Handle failures from hash_init
The merge from http://lists.mysql.com/commits/76678 caused the 
growth_size parameter to the my_init_dynamic_array function to
be ignored. This patch corrects the problem.

mysys/hash.c:
  Bug#43572  Handle failures from hash_init
  
  Replacing the last parameter to my_init_dynamic_array with
  growth_size.
2009-06-22 16:40:34 +05:30
unknown
7c5e321bb8 More XtraDB after-merge fixes following review and buildbot runs:
- Better fix for --innodb-use-sys-malloc causing Valgrind warnings.
 - Different fix for INNODB_IBUF_MAX_SIZE variable changing default value.
 - Fix some problems with the safe mutex lazy init patch.

mysql-test/include/mtr_check.sql:
  Do not check INNODB_IBUF_MAX_SIZE for changes. It is not a dynamic variable, so cannot
  be changed by a test case anyway, and the value may vary slightly from one start of the
  server to the next.
mysql-test/lib/mtr_cases.pm:
  Even just starting and stopping the server with --innodb-use-sys-malloc to check for
  disabled test case under valgrind will cause valgrind leak warnings. So add not_valgrind
  to the list of conditions also tested for directly in mysql-test-run.pl.
mysql-test/mysql-test-run.pl:
  Even just starting and stopping the server with --innodb-use-sys-malloc to check for
  disabled test case under valgrind will cause valgrind leak warnings. So add not_valgrind
  to the list of conditions also tested for directly in mysql-test-run.pl.
mysys/thr_mutex.c:
  Fix a few problems found during review of the lazy init safe mutex patch.
storage/xtradb/ibuf/ibuf0ibuf.c:
  Revert previous fix of INNODB_IBUF_MAX_SIZE default varying slightly between server starts.
  (Fixed instead by ignoring that variable in the test suite).
2009-06-22 10:06:35 +02:00
V Narayanan
4662631f1d merging with mysql-5.0-bugteam 2009-06-19 17:58:46 +05:30
V Narayanan
336c810618 Bug#43572 Handle failures from hash_init
Failure to allocate memory for the hash->array element,
caused hash_init to return without initializing the other
members of the hash. Thus although the dynamic array
buffer may be allocated at a later point in the code, the
incompletely initialized hash caused fatal failures.

This patch moves the initialization of the other members
of the hash above the array allocation, so that the usage
of this hash will not result in fatal failures.

include/hash.h:
  Bug#43572 Handle failures from hash_init
  
  hash_inited is used to verify that the hash is
  valid. After the change induced by the current
  patch hash->array.buffer !=0 is not a valid check
  for this condition, since, the dynamic array can
  be allocated even at a later time. Bootstrap SQL
  script is setting some variables, which are
  actually not set due to this hash_inited issue.
  Thus we get empty grant tables.
  
  A better way to check if the hash is valid is
  to verify that hash->blength is greater than 0.
mysys/hash.c:
  Bug#43572 Handle failures from hash_init
  
  Move the initialization of the other members
  of the hash above the array allocation, so that
  the usage of this hash will not result in fatal
  failures.
2009-06-19 17:29:21 +05:30
unknown
4b2aafb35c Merge of Percona XtraDB into MariaDB. 2009-06-11 19:49:51 +02:00
unknown
93bcda598b Merge latest XtraDB from lp:percona-xtradb into MariaDB.
include/my_sys.h:
  Move generic file parsing functions out to shared code, as they are used in several places.
mysys/mf_iocache2.c:
  Move generic file parsing functions out to shared code, as they are used in several places.
sql/log_event.cc:
  Fix XtraDB build with embedded server.
  XtraDB needs access to replication stuff, which is missing in embedded server.
  Solved by defining wrapper function for this which is compiled differently for normal and
  embedded case.
sql/log_event.h:
  Fix XtraDB build with embedded server.
  XtraDB needs access to replication stuff, which is missing in embedded server.
  Solved by defining wrapper function for this which is compiled differently for normal and
  embedded case.
sql/slave.cc:
  Move generic file parsing functions out to shared code, as they are used in several places.
2009-06-11 14:53:26 +02:00
Vladislav Vaintroub
768bbae90e Backport WL#3653 to 5.1 to enable bundled innodb plugin.
Remove custom DLL loader code from innodb plugin code, use 
symbols exported from mysqld.


storage/innodb_plugin/handler/ha_innodb.cc:
  Remove a Win32 workaround for current_thd.
  The original  problem that innodb plugin used
  value of TLS variable across DLL boundaries is 
  solved in MySQL server (current_thd is a function
  not TLS variable now)
storage/innodb_plugin/handler/handler0alter.cc:
  Remove custom delay loader
storage/innodb_plugin/handler/handler0vars.h:
  Remove custom delay loader
storage/innodb_plugin/handler/i_s.cc:
  Remove custom delay loader
storage/innodb_plugin/handler/win_delay_loader.cc:
  Remove custom delay loader
storage/innodb_plugin/plug.in:
  Remove commented out MYSQL_PLUGIN_STATIC, 
  CMake would not parse that correctly
2009-06-10 10:59:49 +02:00
unknown
bb9a3f0c2b XtraDB after-merge fixes.
Fixes to get the test suite to run without failures.

mysql-test/r/information_schema.result:
  Additional variables available now.
  Sort output to avoid depending on engine order.
mysql-test/r/information_schema_all_engines.result:
  More variables now.
mysql-test/r/innodb-autoinc.result:
  Avoid picking up pbxt variables in result
mysql-test/r/innodb-index.result:
  Save state to not corrupt following testcases.
  Suppress an expected warning.
mysql-test/r/innodb-zip.result:
  Work around a problem with dependency on zlib version
mysql-test/r/innodb.result:
  Checksums have changed in Maria.
  Save and restore server state to not corrupt following testcases.
mysql-test/r/innodb_bug36169.result:
  Save and restore server state to not corrupt following testcases.
mysql-test/r/innodb_xtradb_bug317074.result:
  Save and restore server state to not corrupt following testcases.
mysql-test/r/row-checksum-old.result:
  Update result file
mysql-test/r/row-checksum.result:
  Update result file
mysql-test/t/information_schema.test:
  Sort output to avoid depending on engine order.
mysql-test/t/innodb-analyze.test:
  Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb-autoinc.test:
  Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb-index.test:
  Save state to not corrupt following testcases.
  Suppress an expected warning.
mysql-test/t/innodb-zip.test:
  Work around a problem with dependency on zlib version
mysql-test/t/innodb.test:
  Save and restore server state to not corrupt following testcases.
  Update --replace statements for new mysql-test-run
mysql-test/t/innodb_bug34300.test:
  Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb_bug36169.test:
  Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb_bug36172.test:
  Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb_xtradb_bug317074.test:
  Save and restore server state to not corrupt following testcases.
mysql-test/t/partition_innodb.test:
  Fix regexps to work with new SHOW INNODB STATUS output.
mysys/thr_mutex.c:
  Initialize mutex deadlock detection lazily.
  This allows to test XtraDB, which initializes huge amounts of mutexes without using any but a few of them.
storage/xtradb/ibuf/ibuf0ibuf.c:
  Fix problem where value of INNODB_IBUF_MAX_SIZE would depend on the alignment of memory
  allocated by the buffer pool.
storage/xtradb/include/sync0rw.h:
  Fix XtraDB to compile without GCC atomic operation intrinsics (performance may suffer
  when they are not available though).
storage/xtradb/include/sync0rw.ic:
  Fix XtraDB to compile without GCC atomic operation intrinsics (performance may suffer
  when they are not available though).
storage/xtradb/include/univ.i:
  Fix for MariaDB
storage/xtradb/setup.sh:
  Remove no longer needed file from XtraDB.
storage/xtradb/srv/srv0start.c:
  Fix for MariaDB
2009-06-09 17:08:46 +02:00
unknown
48083d73d3 After-merge fixes for problems seen in buildbot after merging MySQL-5.1.35.
- Version number.
 - Valgrind false alarms in libz.
 - New variant of suppression for Valgrind warning in dlclose().
 - Fix double free() in plugin init error case.

configure.in:
  Fix version number. We should reset the maria variant back to `1' when the MySQL version
  number increases.
include/my_sys.h:
  Fix false alarms in Valgrind for zlib.
  
  Apply same fix as for archive storage handler also to the cases of compression in the
  client protocol, and to the compression SQL function.
mysql-test/valgrind.supp:
  A new variant of the dlclose() suppression is needed now.
mysys/my_compress.c:
  Fix false alarms in Valgrind for zlib.
  
  Apply same fix as for archive storage handler also to the cases of compression in the
  client protocol, and to the compression SQL function.
sql/handler.cc:
  Fix a double free() in error case for plugin initialisation.
sql/item_strfunc.cc:
  Fix false alarms in Valgrind for zlib.
  
  Apply same fix as for archive storage handler also to the cases of compression in the
  client protocol, and to the compression SQL function.
2009-05-22 14:38:50 +02:00
Alfranio Correia
9ce928de59 auto-merge 5.1-bugteam (local) --> 5.1-bugteam 2009-05-21 09:36:38 +01:00
unknown
ae134314b8 Fix accessing ulong enum option as uint, failing on 64-bit big-endian. 2009-05-20 17:34:34 +02:00
Michael Widenius
224108a19e Fixed problems in merge
mysql-test/r/information_schema.result:
  Fixed a result file.
mysql-test/r/innodb-autoinc.result:
  Fixed a result file.
mysql-test/t/connect.test:
  Fixed a problem with merge, needed to close
  connections and use the default
2009-05-19 12:28:05 +03:00
Kristofer Pettersson
a41d3800bc Auto merge 2009-05-15 09:36:42 +02:00
Kristofer Pettersson
afee63222a Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors
It is not possible to prevent the server from starting if a mandatory
built-in plugin fails to start. This can in some cases lead to data
corruption when the old table name space suddenly is used by a different
storage engine.

A boolean command line option in the form of --foobar is automatically
created for every existing plugin "foobar". By changing this command line
option from a boolean to a tristate { OFF, ON, FORCE } it is possible to
specify the plugin loading policy for each plugin.

The behavior is specified as follows:
   OFF   = Disable the plugin and start the server
   ON    = Enable the plugin and start the server even if an error occurrs
           during plugin initialization.
   FORCE = Enable the plugin but don't start the server if an error occurrs
           during plugin initialization.


mysql-test/lib/mtr_cases.pm:
  * Changed --<pluginname> from a boolean to a tristate.
mysys/my_getopt.c:
  * Changed --<pluginname> from boolean to tristate. Optional arguments
    must still work for tristates. It is praxis that disable means value 0
    and enable is value 1. Since plugin name is the only tristate with
    optional arguments this principle will still hold.
sql/sql_plugin.cc:
  * Changed --<pluginname> option from a boolean type to a tristate.
    - FORCE will now terminate the server if the plugin fails to
      initialize properly.
  * Refactored prototypes for test_plugin_options() and construct_options()
    to get rid of the 'enable' value pointer.
  * Cleaned up code related to option name constructing.
  * Added documentation
sql/sql_plugin.h:
  * Introduced new member to st_plugin_int structure.
2009-05-14 14:03:33 +02:00
Jim Winstead
4161dc49b3 Merge from 5.0-bugteam 2009-05-13 08:48:00 -07:00
Jim Winstead
df3887f913 The get_date() function in mysys interpreted the GETDATE_GMT option
backwards, which resulted in the incorrect time being reported at the
end of mysqldump. (Bug #44424, patch by Andrew Hutchings)
2009-05-07 11:17:07 -07:00
unknown
b125770aaa We are now using Valgrind rather than purify, and have for quite some time.
Consequently, rename HAVE_purify to HAVE_valgrind, and related changes.
Leave some comments about purify when not clear that they apply also to Valgrind.
Fix redundant IF_VALGRIND declaration.

Misc. small fixes:
 - Fixes for pool-of-threads patch.
 - Fixes for push of PBXT storage engine.
 - mysql-test-run.pl fix.
 - Fix build problem in compile-pentium64-max.


BUILD/SETUP.sh:
  Rename purify -> valgrind.
BUILD/build_mccge.sh:
  Rename purify -> valgrind.
BUILD/compile-dist:
  Fix that PBXT was missing in source tarball after `BUILD/compile-dist && make dist`
BUILD/compile-pentium64-max:
  Fix a build problem with BUILD/compile-pentium64-max on CentOS/Fedora Core 10 amd64.
        
  On these systems, there is libz.so but no libz.a. Finding libz.so, ./configure decides
  to use system zlib. But since BUILD/compile-pentium64-max builds a fully static binary
  with -all-static, the link of mysqld fails due to missing libz.a.
        
  Fix by using bundled zlib in the build script.
BUILD/compile-solaris-sparc-purify:
  Rename purify -> valgrind.
include/m_string.h:
  Rename purify -> valgrind.
include/my_global.h:
  Rename purify -> valgrind.
mysql-test/Makefile.am:
  Fix that PBXT test suite was missing from `make dist` source tarball.
mysql-test/lib/mtr_unique.pm:
  Better fix to avoid races when chmod'ing the semaphore file.
  (Though using chmod 666 shared files in /tmp/ is still not a very good solution).
mysql-test/t/pool_of_threads.cnf:
  Fix that test case pool_of_threads fails if run on mysqld with no --with-libevent support.
mysys/mf_qsort.c:
  Rename purify -> valgrind.
mysys/my_alloc.c:
  Rename purify -> valgrind.
mysys/my_init.c:
  Rename purify -> valgrind.
mysys/my_rnd.c:
  Rename purify -> valgrind.
mysys/safemalloc.c:
  Rename purify -> valgrind.
scripts/mysql_config.pl.in:
  Rename purify -> valgrind.
scripts/mysql_config.sh:
  Rename purify -> valgrind.
sql/field_conv.cc:
  Rename purify -> valgrind.
sql/filesort.cc:
  Rename purify -> valgrind.
sql/ha_partition.cc:
  Rename purify -> valgrind.
sql/hostname.cc:
  Rename purify -> valgrind.
sql/item_timefunc.cc:
  Rename purify -> valgrind.
sql/log_event.cc:
  Rename purify -> valgrind.
sql/log_event_old.cc:
  Rename purify -> valgrind.
sql/my_decimal.h:
  Rename purify -> valgrind.
sql/mysqld.cc:
  Rename purify -> valgrind.
  Fix redundant IF_VALGRIND declaration.
sql/opt_range.cc:
  Rename purify -> valgrind.
sql/opt_range.h:
  Rename purify -> valgrind.
sql/records.cc:
  Rename purify -> valgrind.
sql/rpl_rli.cc:
  Rename purify -> valgrind.
sql/rpl_rli.h:
  Rename purify -> valgrind.
sql/set_var.cc:
  Fix missing static declaration on pool_of_threads.
sql/slave.cc:
  Rename purify -> valgrind.
sql/sql_base.cc:
  Rename purify -> valgrind.
sql/sql_binlog.cc:
  Rename purify -> valgrind.
sql/sql_class.cc:
  Rename purify -> valgrind.
sql/sql_list.h:
  Rename purify -> valgrind.
sql/sql_load.cc:
  Rename purify -> valgrind.
sql/sql_select.cc:
  Rename purify -> valgrind.
sql/table.cc:
  Rename purify -> valgrind.
storage/archive/azio.c:
  Rename purify -> valgrind.
storage/innobase/buf/buf0buf.c:
  Rename purify -> valgrind.
storage/innobase/include/univ.i:
  Rename purify -> valgrind.
storage/innobase/srv/srv0start.c:
  Rename purify -> valgrind.
storage/maria/ha_maria.cc:
  Rename purify -> valgrind.
storage/maria/ma_blockrec.c:
  Rename purify -> valgrind.
storage/maria/ma_check.c:
  Rename purify -> valgrind.
storage/maria/ma_loghandler.c:
  Rename purify -> valgrind.
storage/maria/ma_packrec.c:
  Rename purify -> valgrind.
storage/maria/ma_page.c:
  Rename purify -> valgrind.
storage/maria/ma_pagecrc.c:
  Rename purify -> valgrind.
storage/maria/ma_search.c:
  Rename purify -> valgrind.
storage/myisam/mi_check.c:
  Rename purify -> valgrind.
storage/myisam/mi_page.c:
  Rename purify -> valgrind.
storage/myisam/mi_search.c:
  Rename purify -> valgrind.
storage/myisammrg/ha_myisammrg.cc:
  Rename purify -> valgrind.
strings/bcmp.c:
  Rename purify -> valgrind.
strings/decimal.c:
  Rename purify -> valgrind.
strings/strmake.c:
  Rename purify -> valgrind.
2009-05-06 14:03:24 +02:00
Vladislav Vaintroub
73d3be945f Bug#43932 myisam index corruption with large index and large
key_buffer_size.

The cause of corruption was number overflow when multiplying 
two ulong values, number of used keycache blocks with size
of a single block. The result of multiplication exceeded ulong 
range (4G) and this lead to incorrectly calculated  buffer offset
in the key cache.

The fix is to use size_t for multiplication result.

This patch also fixes pointless cast in safemalloc 
(size of allocated block to uint), that creates lot of false
alarm warnings when using big keycache (> 4GB) in debug mode.
2009-04-29 13:51:10 +02:00
Michael Widenius
e726e587ec Merged with mysql-5.1 tree.
client/mysqltest.cc:
  Manually merged
configure.in:
  Manually merged
mysql-test/r/variables.result:
  Manually merged
mysql-test/t/variables.test:
  Manually merged
mysys/my_pread.c:
  Manually merged
mysys/my_read.c:
  Manually merged
sql/mysqld.cc:
  Manually merged
storage/csv/ha_tina.h:
  Manually merged
storage/myisam/ha_myisam.cc:
  Manually merged
storage/myisam/mi_check.c:
  Manually merged
storage/myisam/mi_search.c:
  Manually merged
2009-04-25 13:05:32 +03:00
Michael Widenius
210a412522 bzr merge from guilhem's maria tree to our local 5.1
configure.in:
  Manually merged
mysql-test/lib/My/ConfigFactory.pm:
  Manually merged
mysql-test/mysql-test-run.pl:
  Manually merged
mysql-test/t/information_schema.test:
  Manually merged
sql/handler.cc:
  Manually merged
support-files/mysql.spec.sh:
  Manually merged
2009-04-25 12:04:38 +03:00
Alfranio Correia
f6eb9426ce BUG#43949 Initialization of slave produces a warning message in Valgrind
In order to define the --slave-load-tmpdir, the init_relay_log_file()
was calling fn_format(MY_PACK_FILENAME) which internally was indirectly
calling strmov_overlapp() (through pack_dirname) and the following
warning message was being printed out while running in Valgrind:
"source and destination overlap in strcpy".

We fixed the issue by removing the flag MY_PACK_FILENAME as it was not
necessary. In a nutshell, with this flag the function fn_format() tried
to replace a directory by either "~", "." or "..". However, we wanted
exactly to remove such strings.

In this patch, we also refactored the functions init_relay_log_file()
and check_temp_dir(). The former was refactored to call the fn_format()
with the flag MY_SAFE_PATH along with the MY_RETURN_REAL_PATH,  in order
to avoid issues with long directories and return an absolute path,
respectively. The flag MY_SAFE_UNPACK_FILENAME was removed too as it was
responsible for removing "~", "." or ".." only from the file parameter
and we wanted to remove such strings from the directory parameter in
the fn_format(). This result is stored in an rli variable, which is then
processed by the other function in order to verify if the directory exists
and if we are able to create files in it.


mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test:
  Changed the output to make it consistent among different runs.
mysys/mf_format.c:
  Replaced a return for DBUG_RETURN.
2009-04-19 02:21:33 +01:00
Davi Arnaut
214bd5a121 Bug#43706: libmysqld segfaults when re-intialised
Bug#44091: libmysqld gets stuck waiting on mutex on initialization

The problem was that libmysqld wasn't enforcing a certain
initialization and deinitialization order for the mysys
library. Another problem was that the global object used
for management of log event handlers (aka LOGGER) wasn't
being prepared for a possible reutilization.

What leads to the hang/crash reported is that a failure
to load the language file triggers a double call of the
cleanup functions, causing an already destroyed mutex to
be used.

The solution is enforce a order on the initialization and
deinitialization of the mysys library within the libmysqld
library and to ensure that the global LOGGER object reset
it's internal state during cleanup.

mysys/my_init.c:
  Deinitialize only if initialized already.
sql/log.cc:
  Reset state.
2009-04-09 12:25:25 -03:00
Alexander Barkov
5847be8c9a Bug#42649 THR_LOCK_charset global mutex abused by InnoDB
The patch was originally proposed by Mikael and reviewed by Bar.
2009-04-07 11:48:38 +05:00
Guilhem Bichot
c71aae73f6 merge of 5.1-main into 5.1-maria. MyISAM changes are propagated to Maria except
those of davi.arnaut@sun.com-20090219210935-9vilvcisyyieffxl (TODO).
2009-04-01 11:34:52 +02:00
Jonathan Perkin
20f76540a1 Apply 64-bit fix from Azundris. 2009-03-31 16:04:02 +02:00
unknown
6120cc96c9 Fix build error after last push with --with-debug=full due to SAFEMALLOC now being
defined in my_config.h (as opposed to in CFLAGS before.)

mysys/my_malloc.c:
  Need to include my_global.h before messing with SAFEMALLOC, as now that macro may be
  re-defined in my_config.h, which is included from my_global.h
mysys/my_once.c:
  Need to include my_global.h before messing with SAFEMALLOC, as now that macro may be
  re-defined in my_config.h, which is included from my_global.h
mysys/my_realloc.c:
  Need to include my_global.h before messing with SAFEMALLOC, as now that macro may be
  re-defined in my_config.h, which is included from my_global.h
2009-03-31 10:06:51 +02:00
Georgi Kodinov
c36e935ac2 merged 5.0-bugteam -> 5.1-bugteam 2009-03-24 15:58:52 +02:00
Michael Widenius
46db8aac44 Apply patch by Antony Dovgal:
- Move SAFE_MUTEX to be stored in config.h by configure.in (not as a flag used with compiler command line)
- Generate my_config.h in configure

BUILD/SETUP.sh:
  Remove -DSAFE_MUTEX as the following --with-debug flag will automaticly add it
BUILD/compile-ia64-debug-max:
  Remove -DSAFE_MUTEX as the following --with-debug flag will automaticly add it
configure.in:
  Move SAFE_MUTEX and SAFE_MALLOC to [my_] config.h
  Generate my_config.h as part of configure process
dbug/dbug.c:
  Include my_global.h before we undef SAFE_MUTEX
include/Makefile.am:
  Update comment. For now, lets generate my_config.h if someone deletes it after configure
mysys/my_wincond.c:
  Include my_global.h before we undef SAFE_MUTEX
mysys/my_winthread.c:
  Include my_global.h before we undef SAFE_MUTEX
2009-03-22 14:16:09 +02:00
Georgi Kodinov
e8cc09dc8d fixed compilation warnings. addendum to the fix for bug 29125 2009-03-20 16:27:53 +02:00
Georgi Kodinov
26adc3cdc7 Fixed a prototype to match the actual function signature (addendum to the
fix for 29125).
2009-03-20 13:35:00 +02:00
Davi Arnaut
27e3214b49 Bug#43461: invalid comparison with string literal in default.c
Don't compare string literals as it results in unspecified behavior.

mysys/default.c:
  Test for a empty string.
2009-03-19 17:20:15 -03:00
Ignacio Galarza
868db2f21d auto-merge 2009-03-19 09:59:10 -04:00