1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-27 13:04:36 +03:00
Commit Graph

95 Commits

Author SHA1 Message Date
Davi Arnaut
bb036c93b4 Bug#42733: Type-punning warnings when compiling MySQL --
strict aliasing violations.

Essentially, the problem is that large parts of the server were
developed in simpler times (last decades, pre C99 standard) when
strict aliasing and compilers supporting such optimizations were
rare to non-existent. Thus, when compiling the server with a modern
compiler that uses strict aliasing rules to perform optimizations,
there are several places in the code that might trigger undefined
behavior.

As evinced by some recent bugs, GCC does a somewhat good of job
misoptimizing such code, but on the other hand also gives warnings
about suspicious code. One problem is that the warnings aren't
always accurate, yet we can't afford to just shut them off as we
might miss real cases. False-positive cases are aggravated mostly
by casts that are likely to trigger undefined behavior.

The solution is to start a cleanup process focused on fixing and
reducing the amount of strict-aliasing related warnings produced
by GCC and others compilers. A good deal of noise reduction can
be achieved by just removing useless casts that are product of
historical cruft and are likely to trigger undefined behavior if
dereferenced.
2010-06-10 17:16:43 -03:00
Staale Smedseng
e3c1c83a16 Recommit of Bug#49447. 2010-02-04 13:39:42 +01:00
Georgi Kodinov
db35fb7961 automerge 2009-10-04 12:15:05 +03:00
Staale Smedseng
8b9843408d Bug #43414 Parenthesis (and other) warnings compiling MySQL
with gcc 4.3.2

Cleaning up warnings not present in 5.0.
2009-09-23 15:21:29 +02:00
Joerg Bruehe
67bcf54df6 Fix bug#46980
Option "--without-server" still not working in 5.1

The general approach is to make sure that source files
which require thread support are only compiled if the build
really needs thread support,
which means when the server is built or a thread-safe client
library.

This required several changes:
- Make sure the subdirectories "storage/" and "plugin/" are
  only processed if the server is built, not ifclient-only.
- Make the compilation of some modules which inherently
  require threading depend on thread supportin the build.
- Separate the handling of threading in "configure.in" from
  that of server issues, threading is also needed in a
  non-server build of a thread-safe client library.

Also, "libdbug" must get built even in a client-only build,
so "dbug/" must be in the list of client directories.

In addition, calls to thread functions in source files which
can be built without thread support must use the wrapper
functions which handle the non-threaded build.
So the modules "client/mysqlimport.c" and "client/mysqlslap.c"
must call "my_thread_end()" only via "mysql_thread_end()".
2009-09-17 18:34:24 +02:00
Jim Winstead
bd0a44fba2 Merge in bug fixes for client tools 2009-07-14 10:08:38 -07:00
Alexander Nozdrin
0f742616ce Fix compilation failures: get rid of C++ specifics in C-code. 2009-06-03 15:18:12 +04:00
Jim Winstead
8b218c54d4 mysqlslap didn't correctly handle --csv with no argument. (Bug #44412) 2009-05-18 18:23:43 -07:00
Jim Winstead
6280e26c48 Various command-line utilities, including mysqlbinlog and mysqldump, don't
handle the --skip-password option correctly. (Bug #28479)
2009-05-07 10:51:55 -07:00
Ignacio Galarza
2d9421c3bb Bug#29125 Windows Server X64: so many compiler warnings
- Remove bothersome warning messages.  This change focuses on the warnings 
that are covered by the ignore file: support-files/compiler_warnings.supp.
- Strings are guaranteed to be max uint in length
2009-02-13 11:41:47 -05:00
Build Team
d2c4816716 mysql-test/r/partition.result
mysql-test/t/partition.test
sql/ha_partition.cc
  Bug#40954: Crash in MyISAM index code with concurrency test using partitioned tables
  Problem was usage of read_range_first with an empty key.
  Solution was to not to give a key if it was empty. (real author Mattias Jonsson)

storage/archive/archive_reader.c
client/mysqlslap.c
  Aligned the copyright texts output from "--version" of tools, to
  let internal tools be able to change them if needed.

storage/ndb/test/tools/connect.cpp
storage/ndb/test/run-test/atrt.hpp
  Corrected a few GPL headers not restricted to GPL version 2

Makefile.am
  Added missing --report-features to the 'test-bt-fast' target

support-files/mysql.spec.sh
  Reversed the removal of the "%define license GPL" in as internal
  tools depended on it
2008-11-25 03:04:58 +01:00
jani@a88-113-38-195.elisa-laajakaista.fi
4f98f3e683 Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main
into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
2008-02-08 12:13:33 +01:00
brian@zim.(none)
97e3c6cbf4 Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  zim.(none):/home/bk/mysql-5.1-arch
2007-12-20 12:32:16 -08:00
brian@zim.(none)
4316829b75 client_priv.h:
Removed dead option
mysqlslap.c:
  Updates from Paul for help.
  Removed dead option
2007-12-20 12:23:35 -08:00
jani@hynda.mysql.fi
e8d8102a93 Merge hynda.mysql.fi:/home/my/mysql-5.1-main
into  hynda.mysql.fi:/home/my/mysql-5.1-marvel
2007-11-08 13:23:08 +02:00
brian@zim.(none)
f9046eafbf Fix for bug#31704
Just had to put in the removal of the autocommit, and make sure the commit occurred at the propper time.
2007-10-18 15:08:27 -07:00
monty@narttu.mysql.fi
5dcb64882d Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/my/mysql-5.1
2007-10-01 15:33:21 +03:00
monty@mysql.com/narttu.mysql.fi
315acca125 Removed extra spaces
Added extra debug
2007-10-01 15:32:07 +03:00
gshchepa/uchum@gleb.loc
2a5d951552 Fixed bug #29985.
Multiple-result processing is required during the execution
of CALL statements for stored procedures, however the mysqlslap
client lacked that processing.
2007-09-17 21:39:07 +05:00
brian@zim.(none)
e235ccd13a Discovered a bug while working with backup. Since it is possible to execute a statement in a pre/post statment clause that can return a result, we need to test for that and free it. 2007-09-04 20:03:12 -07:00
baker@bk-internal.mysql.com
25c467bf6f Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
2007-08-27 20:20:08 +02:00
brian@piggy.tangent.org
e00b72de19 Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  piggy.tangent.org:/home/mysql/trees/mysql-5.1-arch
2007-08-20 13:18:40 -07:00
brian@piggy.tangent.org
bd0bcb70f5 Extending tests for detach (found a memory issue in it, this fixes that and now tests it). 2007-08-20 13:03:50 -07:00
monty@mysql.com/nosik.monty.fi
e53a73e26c Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris
Faster thr_alarm()
Added 'Opened_files' status variable to track calls to my_open()
Don't give warnings when running mysql_install_db
Added option --source-install to mysql_install_db

I had to do the following renames() as used polymorphism didn't work with Forte compiler on 64 bit systems
index_read()      -> index_read_map()
index_read_idx()  -> index_read_idx_map()
index_read_last() -> index_read_last_map()
2007-08-13 16:11:25 +03:00
baker@bk-internal.mysql.com
bc6e5b08dd Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
2007-08-09 22:12:13 +02:00
brian@piggy.tangent.org
ae2b243a2e Two bugs in one! The count call was duplicating internally the counts for loaded tests (not autosql tests, just loaded). This could manifest itself by executing by file, or by executing a pre statement.
BUG#29803
2007-08-09 13:01:29 -07:00
monty@nosik.monty.fi
93f0771fca Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/my/mysql-5.1
2007-08-02 07:55:33 +03:00
monty@mysql.com/nosik.monty.fi
4f33d95fa3 Set --debug-check if one uses DBUG_PUSH in all clients
Fixed bug in query cache that made it impossible to run mysqld with --debug
Fixed memory leaks in mysqldump and mysqltest
Memory leaks associated with wrong usage of mysqltest is not fixed. To find these, run
mysql-test-run --debug mysqltest
2007-08-02 07:49:29 +03:00
monty@mysql.com/nosik.monty.fi
96f90711a7 Fixes Bug#30127: --debug-info no longer prints memory usage in mysql
Fixed compiler warnings, errors and link errors
Fixed new bug on Solaris with gethrtime()
Added --debug-check option to all mysql clients to print errors and memory leaks
Added --debug-info to all clients. This now works as --debug-check but also prints memory and cpu usage
2007-08-01 22:59:05 +03:00
brian@zim.(none)
ab73475950 Added a test for pre-statement call, and fixed connection/deconnect code so that the rest of bbench can be ran by others. 2007-06-15 17:22:57 -07:00
tomas@whalegate.ndb.mysql.com
eb5fd16e59 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-build
2007-06-02 06:33:18 +02:00
knielsen@ymer.(none)
9bf9755f09 Fix comments and option description in mysqlslap. 2007-05-24 11:27:59 +02:00
monty@mysql.com/narttu.mysql.fi
088e2395f1 WL#3817: Simplify string / memory area types and make things more consistent (first part)
The following type conversions was done:

- Changed byte to uchar
- Changed gptr to uchar*
- Change my_string to char *
- Change my_size_t to size_t
- Change size_s to size_t

Removed declaration of byte, gptr, my_string, my_size_t and size_s. 

Following function parameter changes was done:
- All string functions in mysys/strings was changed to use size_t
  instead of uint for string lengths.
- All read()/write() functions changed to use size_t (including vio).
- All protocoll functions changed to use size_t instead of uint
- Functions that used a pointer to a string length was changed to use size_t*
- Changed malloc(), free() and related functions from using gptr to use void *
  as this requires fewer casts in the code and is more in line with how the
  standard functions work.
- Added extra length argument to dirname_part() to return the length of the
  created string.
- Changed (at least) following functions to take uchar* as argument:
  - db_dump()
  - my_net_write()
  - net_write_command()
  - net_store_data()
  - DBUG_DUMP()
  - decimal2bin() & bin2decimal()
- Changed my_compress() and my_uncompress() to use size_t. Changed one
  argument to my_uncompress() from a pointer to a value as we only return
  one value (makes function easier to use).
- Changed type of 'pack_data' argument to packfrm() to avoid casts.
- Changed in readfrm() and writefrom(), ha_discover and handler::discover()
  the type for argument 'frmdata' to uchar** to avoid casts.
- Changed most Field functions to use uchar* instead of char* (reduced a lot of
  casts).
- Changed field->val_xxx(xxx, new_ptr) to take const pointers.

Other changes:
- Removed a lot of not needed casts
- Added a few new cast required by other changes
- Added some cast to my_multi_malloc() arguments for safety (as string lengths
  needs to be uint, not size_t).
- Fixed all calls to hash-get-key functions to use size_t*. (Needed to be done
  explicitely as this conflict was often hided by casting the function to
  hash_get_key).
- Changed some buffers to memory regions to uchar* to avoid casts.
- Changed some string lengths from uint to size_t.
- Changed field->ptr to be uchar* instead of char*. This allowed us to
  get rid of a lot of casts.
- Some changes from true -> TRUE, false -> FALSE, unsigned char -> uchar
- Include zlib.h in some files as we needed declaration of crc32()
- Changed MY_FILE_ERROR to be (size_t) -1.
- Changed many variables to hold the result of my_read() / my_write() to be
  size_t. This was needed to properly detect errors (which are
  returned as (size_t) -1).
- Removed some very old VMS code
- Changed packfrm()/unpackfrm() to not be depending on uint size
  (portability fix)
- Removed windows specific code to restore cursor position as this
  causes slowdown on windows and we should not mix read() and pread()
  calls anyway as this is not thread safe. Updated function comment to
  reflect this. Changed function that depended on original behavior of
  my_pwrite() to itself restore the cursor position (one such case).
- Added some missing checking of return value of malloc().
- Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid 'long' overflow.
- Changed type of table_def::m_size from my_size_t to ulong to reflect that
  m_size is the number of elements in the array, not a string/memory
  length.
- Moved THD::max_row_length() to table.cc (as it's not depending on THD).
  Inlined max_row_length_blob() into this function.
- More function comments
- Fixed some compiler warnings when compiled without partitions.
- Removed setting of LEX_STRING() arguments in declaration (portability fix).
- Some trivial indentation/variable name changes.
- Some trivial code simplifications:
  - Replaced some calls to alloc_root + memcpy to use
    strmake_root()/strdup_root().
  - Changed some calls from memdup() to strmake() (Safety fix)
  - Simpler loops in client-simple.c
2007-05-10 12:59:39 +03:00
jamppa@bk-internal.mysql.com
16de7d21cc Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-marvel
2007-03-29 16:11:29 +02:00
brian@zim.(none)
68cdfea52a Merge zim.(none):/home/bk/mysql-5.1-arch
into  zim.(none):/home/brian/mysql/slap-5.1
2007-03-26 02:29:09 -07:00
brian@zim.(none)
9a2a7071be Added pre and post option to test run (allows me to adjust an engine once all of the data has been loaded).
Kinda obvious that this was going to come up ;)
2007-03-26 02:24:49 -07:00
Antony@floppy.
adfdcb191c Fixes for 5.1-arch repository to compile on Windows. 2007-03-22 00:43:14 -07:00
jani@ua141d10.elisa.omakaista.fi
71c7035035 Added find_type_or_exit and find_bit_type_or_exit as wrappers
around the original functions. These will ensure that error
message is always in unique form, reduce code and print the
right alternatives automatically in an error case.
2007-03-19 11:19:51 +02:00
brian@piggy.tangent.org
132608419e Restoring attr (aka poking around Windows did not work). 2007-03-18 10:06:28 -07:00
brian@zim.(none)
34b2658788 Bug in windows where attr was not working. Removed. 2007-03-16 23:50:48 -07:00
brian@zim.(none)
786f9de976 Cleanup of prototype for windows. 2007-03-16 19:05:11 -07:00
brian@zim.(none)
e246cb3d80 The pthread() support was not working. Once I fixed use-thread in a previous push I realized that the pthread/windows code was not working. I've replaced the fork/thread design with a pure pthread design using condition timers and broadcast.
Ramification, UNIX now uses thread, support for slaves had to be dropped and there is no need for the --use-threads flag.
Added --concurrency=0 option so that it will start at 1 and keep going up until something bad happens :)
2007-03-16 15:20:22 -07:00
brian@zim.(none)
45d7dff67d Correctly report load type.
Updated engine to also handle create options
Secondary indexes can now be generated (aka the test PeterZ thoughts!)
2007-03-15 23:39:07 -07:00
brian@zim.(none)
deef4ef274 Added comment, and fixed test. 2007-03-13 10:27:59 -07:00
brian@zim.(none)
70fa527d9e Cleaning up 4 pushbuild warnings caught by Windows. 2007-03-13 00:56:30 -07:00
brian@zim.(none)
8623103dfc Cleaned up memory allocation so that in all cases of malloc failure the application ends execution.
Default values for auto-generate have been made available for adjusting. Key test for rights now works with either type of keys.
2007-03-12 10:25:11 -07:00
brian@zim.(none)
82ee220cfa Fixed buffer overflow cases (should not be possible to do...)
Fixed for autoincrement support/GUID
2007-03-06 17:14:59 -08:00
brian@zim.(none)
08be7c3314 Fixed bug#26027
Just a bad copy/paste of help info
2007-02-04 15:31:35 -08:00
brian@zim.(none)
9fc89facca Extended mysqlslap.c for auto tests (see the comment on the mysqlslap.c file). I also fixed a bug where limit was not being reached. 2007-01-29 13:17:30 -08:00
kent@mysql.com/kent-amd64.(none)
1e3237fefa Many files:
Changed header to GPL version 2 only
2006-12-27 02:23:51 +01:00