Commit graph

54834 commits

Author SHA1 Message Date
Sergey Petrunia
9ecf9c30cd Merge 2008-08-25 22:07:59 +04:00
Sergey Petrunia
6df6aeca4c Merge BUG#36639 into 5.1 2008-08-25 21:18:22 +04:00
Sergey Petrunia
c770161ae8 BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind, commit into 5.0
- Use the compiler's default copy constructor for QUICK_RANGE_SELECT. 
  bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64

sql/opt_range.cc:
  BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind
  - Set QUICK_SELECT_DESC not to use MRR implementation (code moved to here
    from opt_range.h)
sql/opt_range.h:
  BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind
  - Use the compiler's default copy constructor for QUICK_RANGE_SELECT. 
    bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64
2008-08-25 21:02:54 +04:00
Davi Arnaut
d30db4c9e9 Merge Bug#36579 into mysql-5.1-bugteam 2008-08-25 10:57:34 -03:00
Matthias Leich
9a54348e72 Merge of fix for
Bug#38270 Test "processlist_priv_ps" fails on
          varying "processlist" output
2008-08-25 15:23:11 +02:00
Davi Arnaut
1ee4a3ac82 Bug#36579 Dumping information about locks in use may lead to a server crash
Dumping information about locks in use by sending a SIGHUP signal
to the server or by invoking the "mysqladmin debug" command may
lead to a server crash in debug builds or to undefined behavior in
production builds.

The problem was that a mutex that protects a lock object (THR_LOCK)
might have been destroyed before the lock object was actually removed
from the list of locks in use, causing a race condition with other
threads iterating over the list. The solution is to destroy the mutex
only after removing lock object from the list.

mysys/thr_lock.c:
  Destroy the mutex that protects the lock object only after removing
  the lock object from the list of locks in use.
2008-08-25 10:18:52 -03:00
Matthias Leich
d68194c7cf Upmerge 5.0 -> 5.1 of fix for
Bug#26687 rpl_ddl test fails if run with --innodb option
2008-08-25 15:09:51 +02:00
Sergey Glukhov
cb8f52d243 null merge 2008-08-25 17:44:05 +05:00
Sergey Glukhov
c546559a62 Bug#37428 Potential security issue with UDFs - linux shellcode execution.
plugin_dir option backported from 5.1

mysql-test/r/udf.result:
  result fix
sql/mysql_priv.h:
  opt_plugin_dir and opt_plugin_dir_ptr declared.
sql/mysqld.cc:
  'plugin_dir' option added
sql/set_var.cc:
  'plugin_dir' option added.
sql/sql_udf.cc:
  opt_plugin_dir added to the udf->dl path. Warn if it's not specified.
sql/unireg.h:
  PLUGINDIR defined.
2008-08-25 17:11:59 +05:00
Alexander Barkov
afba839173 Additional fix for bug#31455
Fixing non-deterministic test results:
the number of spaces in FLOAT/DOUBLE output could 
vary between different platforms.
2008-08-25 15:29:59 +05:00
Alexander Barkov
8706222b33 Additional ffix for bug#31455
- fixing double problem on big endian machines
- modifying regex_replace to replace negative numbers
  Previously only positive numbers where replaced.
2008-08-25 12:58:29 +05:00
Alexey Botchkov
491dc13898 merging 2008-08-23 07:47:43 +05:00
Timothy Smith
6c19624e70 Up-merge from 5.0-build to 5.1-build. 2008-08-22 15:58:51 -06:00
Timothy Smith
f66e4b7337 Merge 5.1 main to 5.1-build 2008-08-22 13:05:08 -06:00
Timothy Smith
a4b0681ad1 Merge 5.0 main to 5.0-build 2008-08-22 13:04:38 -06:00
Matthias Leich
5f2354b846 Fix for
Bug#26687 rpl_ddl test fails if run with --innodb option
  Details:
  - The current test + the expected results do only fit
    if the slave uses MyISAM for mysqltest1.t1.
    Therefore skip the test if we do not meet these
    conditions.
  - The solution for 5.1 will look quite different
    because "ps_ddl" is already much improved in
    MySQL 5.1.
2008-08-22 19:49:51 +02:00
Alexey Botchkov
ec524d50a8 Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
test_if_data_home_dir fixed to look into real path.
            Checks added to mi_open for symlinks into data home directory.

per-file messages:
        include/my_sys.h
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          my_is_symlink interface added
        include/myisam.h
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          myisam_test_invalid_symlink interface added
        myisam/mi_check.c
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          mi_open_datafile calls modified
        myisam/mi_open.c
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          code added to mi_open to check for symlinks into data home directory.
          mi_open_datafile now accepts 'original' file path to check if it's
          an allowed symlink.
        myisam/mi_static.c
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          myisam_test_invlaid_symlink defined
        myisam/myisamchk.c
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          mi_open_datafile call modified
        myisam/myisamdef.h
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          mi_open_datafile interface modified - 'real_path' parameter added
        mysql-test/r/symlink.test
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          error codes corrected as some patch now rejected pointing inside datahome
        mysql-test/r/symlink.result
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          error messages corrected in the result
        mysys/my_symlink.c
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          my_is_symlink() implementsd
          my_realpath() now returns the 'realpath' even if a file isn't a symlink
        sql/mysql_priv.h
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          test_if_data_home_dir interface
        sql/mysqld.cc
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          myisam_test_invalid_symlik set with the 'test_if_data_home_dir'
        sql/sql_parse.cc
          Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
          
          error messages corrected
          test_if_data_home_dir code fixed
2008-08-22 17:31:53 +05:00
Alexander Barkov
642aa11114 Recording the result (forgot in previous commit) 2008-08-22 15:26:56 +05:00
Alexander Barkov
2e4a7ba0c7 Additional fix for bug#31455
Getting rid of non-deterministic results of sprintf("%-20g").
Displaying only 3 digits after decimal dot.
2008-08-22 15:14:30 +05:00
Alexander Barkov
1f61af5ad1 Additional fix for bug#31455.
Exchanging "m_cols" and "m_cols_ai".

Very confusing variable naming :(
2008-08-22 10:17:52 +05:00
Alexander Barkov
531c320611 Additional fix for bug#31455
Removing server version with regex_replace
to avoid non-determenistic test results.
2008-08-22 09:22:16 +05:00
Vladislav Vaintroub
49bd2c865a Bug #33907 : Errors compiling mysql with Microsoft Visual C++ Express 2008
- Cherry pick 6.0 changes for Visual Studio 2008 support
- Add scripts  win\build-vs9.bat and win\build-vs9_x64.bat

Also, remove CMake generated visual studio project files.

extra/yassl/taocrypt/taocrypt.vcproj:
  remove file that is generated each time by cmake
extra/yassl/yassl.vcproj:
  remove file that is generated each time by cmake
server-tools/instance-manager/mysqlmanager.vcproj:
  remove file that is generated each time by cmake
win/build-vs9.bat:
  Add script for Visual Studio 2008 support
win/build-vs9_x64.bat:
  Add script for Visual Studio 2008 support
zlib/zutil.h:
  support Visual Studio 2008
2008-08-21 19:11:17 +02:00
Matthias Leich
1ffdec61a1 Fix for Bug#38270 Test "processlist_priv_ps" fails on varying "processlist" output
Details of the fix:
- wrong command and state in processlist -> insert poll routine
- unexpected additional session -> abort if unexpected session found
2008-08-21 16:38:49 +02:00
Alexander Barkov
762df2d05c Additional fix for bug#31455 (rpl decoder)
- Implementing --base64-format=decode-rows, to display
  SQL-alike decoded row events without their BINLOG statements.
- Adding --base64-format=decode-rows into tests when
  calling mysqlbinlog to avoid non-deterministic results
- Removing resetting of last_table_id in "RESET MASTER",
  which appeared to be dangerous.
2008-08-21 16:47:23 +05:00
Sergey Glukhov
099a80d05a added replacement of 'CARDINALITY' column values
mysql-test/r/join.result:
  result fix
2008-08-21 15:01:11 +05:00
Tatiana A. Nurnberg
d726a49984 auto-merge 2008-08-21 10:15:00 +02:00
Tatiana A. Nurnberg
861f7e1ce9 Bug#35616: memory overrun on 64-bit linux on setting large values for keybuffer-size
add'l portability fixes

mysys/safemalloc.c:
  Make the various print-functions happy:
  sf_malloc_(cur|max)_memory are size_t now, might as well use %u instead
  of %d. Ideally, we'd use %zu, but we can't rely on having that, so we'll
  use %lu instead. Likewise, we could cast to unsigned for our poor man's
  %p -- pointers are never negative, and neither is %x --, but since it
  was fixed to %p with seemingly no ill effects in 6.0 anyway, we'll back
  port that instead.
2008-08-21 07:06:09 +02:00
Tatiana A. Nurnberg
91a2c59abe Bug#35616: memory overrun on 64-bit linux on setting large values for keybuffer-size
portability fixes / cleanup

include/my_sys.h:
  declaration should certainly match definition!
mysys/safemalloc.c:
  Make the various print-functions happy:
  sf_malloc_(cur|max)_memory are size_t now, might as well use %u instead
  of %d. Ideally, we'd use %zu, but we can't rely on having that, so we'll
  use %lu instead. Likewise, we could cast to unsigned for our poor man's
  %p -- pointers are never negative, and neither is %x --, but since it
  was fixed to %p with seemingly no ill effects in 6.0 anyway, we'll back
  port that instead.
2008-08-21 06:48:28 +02:00
Timothy Smith
bb49118452 Cherry-pick various sr51rc/sr51ga fixes from InnoDB snapshots. 2008-08-20 17:29:46 -06:00
Timothy Smith
9eb2ebd4d1 Cherry-pick some changes from innodb-5.1-ss2545 snapshot. Includes fixes for
Bug#37531, Bug#36941, Bug#36941, Bug#36942, Bug#38185.

Also include test case from Bug 34300 which was left out from earlier snapshot
(5.1-ss2387).

Also include fix for Bug #29507, "TRUNCATE shows to many rows effected", since
the fix for Bug 37531 depends on it.
2008-08-20 16:18:33 -06:00
Mattias Jonsson
180c6e277f merge 2008-08-20 19:37:56 +02:00
Mattias Jonsson
5d5d1a814d Backport of patch for Bug#34604 (from 6.0)
post push fix for bug#20129, test failed due to non existing
source files.

mysql-test/Makefile.am:
  Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
  partition is corrupt
  
  Test parts.partition_repair_myisam failed because the corrupted
  pre fabricated files was not included in the dist-file.
mysql-test/suite/parts/r/partition_special_innodb.result:
  Bug#34604: hander::ha_rnd_end(): Assertion inited==RND failed
  
  updated result file
mysql-test/suite/parts/t/partition_special_innodb-master.opt:
  Bug#34604: hander::ha_rnd_end(): Assertion inited==RND failed
  
  Added parameter to speed up the test.
  Set to 2 seconds to be working on slow machines.
mysql-test/suite/parts/t/partition_special_innodb.test:
  Bug#34604: hander::ha_rnd_end(): Assertion inited==RND failed
  
  Added test for verifying the bug (without the patch in
  ha_partition.cc, this crashes a debug compiled server)
sql/ha_partition.cc:
  Bug#34604: hander::ha_rnd_end(): Assertion inited==RND failed
  
  In some cases error was not properly propagated through
  ha_partition::rnd_next.
  
  Will now return the error code from the partitions rnd_next and
  update m_part_spec.start_part and m_last_part properly.
  This makes the inited state to be correct.
2008-08-20 17:29:14 +02:00
Alexander Barkov
0c5bc2eafc Bug#31455 mysqlbinlog don't print user readable info about RBR events
Implementing -v command line parameter to mysqlbinlog
to decode and print row events.

mysql-test/include/mysqlbinlog_row_engine.inc
mysql-test/r/mysqlbinlog_row.result
mysql-test/r/mysqlbinlog_row_big.result
mysql-test/r/mysqlbinlog_row_innodb.result
mysql-test/r/mysqlbinlog_row_myisam.result
mysql-test/r/mysqlbinlog_row_trans.result
mysql-test/t/mysqlbinlog_row.test
mysql-test/t/mysqlbinlog_row_big.test
mysql-test/t/mysqlbinlog_row_innodb.test
mysql-test/t/mysqlbinlog_row_myisam.test
mysql-test/t/mysqlbinlog_row_trans.test
  Adding tests 

client/Makefile.am
  Adding new files to symlink
  
client/mysqlbinlog.cc
  Adding -v option

sql/log_event.cc
  Impelentations of the new methods

sql/log_event.h
  Declaration of the new methods and member

sql/mysql_priv.h
  Adding new function prototype

sql/rpl_tblmap.cc
  Adding pre-processor conditions 

sql/rpl_tblmap.h
  Adding pre-processor conditions 

sql/rpl_utility.h
  Adding pre-processor conditions 

sql/sql_base.cc
  Adding reset_table_id_sequence() function.

sql/sql_repl.cc
  Resetting table_id on "RESET MASTER"
  
.bzrignore
  Ignoring new symlinked files
2008-08-20 19:06:31 +05:00
Jonathan Perkin
1de7738cc3 merge 2008-08-20 14:10:41 +01:00
Jonathan Perkin
585566c7d4 Fix path to myisamchk for mysql-5.1 2008-08-20 14:06:22 +01:00
Sergey Glukhov
fad69f17c1 5.0-bugteam->5.1-bugteam merge 2008-08-20 16:42:01 +05:00
Jonathan Perkin
dff9ccce9c bug#33300: use myisamchk to verify that mysql_install_db has
created at least some files and that they are correct.
2008-08-20 12:32:34 +01:00
Sergey Glukhov
de73b72954 Bug#38291 memory corruption and server crash with view/sp/function
Send_field.org_col_name has broken value on secondary execution.
It happens when result field is created from the field which belongs to view
due to forgotten assignment of some Send_field attributes. 
The fix:
set Send_field.org_col_name,org_table_name with correct value during Send_field intialization.

mysql-test/r/metadata.result:
  result fix
  The result file was changed because now forgotten attributes are properly set.
mysql-test/r/sp.result:
  test result
mysql-test/t/sp.test:
  test case
sql/item.cc:
  Send_field.org_col_name has broken value on secondary execution.
  It happens when result field is created from the field which belongs to view
  due to forgotten assignment of some Send_field attributes. 
  The fix:
  set Send_field.org_col_name,org_table_name with correct value during Send_field intialization.
tests/mysql_client_test.c:
  test case fix
  The test was changed because now forgotten attributes are properly set.
2008-08-20 14:49:28 +05:00
Sergey Glukhov
b9bfa25fb2 after merge fix, related to bug#37301 changes 2008-08-20 13:15:42 +05:00
Sergey Petrunia
aa04f75384 Fix merge problem: make sf_malloc_cur_memory definitions match in headers and source 2008-08-20 06:45:56 +04:00
Timothy Smith
c8fad67da7 Cherry-pick one change from innodb-5.1-ss2485 snapshot. Fixes Bug#35602.
Bug #35602 "Failed to read auto-increment value from storage engine" with
Innodb

The test for REPLACE was an error of ommission since it's classified as
a simple INSERT. For REPLACE statements we don't acquire the special
AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix.
2008-08-19 18:40:56 -06:00
Sergey Petrunia
d1e57a0fbd Merge 2008-08-20 04:38:49 +04:00
Timothy Smith
239ab2c46a Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for
Bug#36600 and Bug#36793:

Bug #36600 SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number

Fix by removing the Innodb_buffer_pool_pages_latched variable from SHOW
STATUS output in non-UNIV_DEBUG compilation.

Bug #36793 rpl_innodb_bug28430 fails on Solaris

This is a back port from branches/zip. This code has been tested on a
big-endian machine too.
2008-08-19 18:37:41 -06:00
Sergey Petrunia
95c3e4e12a Fix others' merge error in federated.{test,result} 2008-08-20 04:34:52 +04:00
Timothy Smith
e68520c752 Cherry-pick one part of innodb-5.1-ss2438 snapshot.
Bug #36278 Data_free in SHOW TABLE STATUS for InnoDB is in kilobytes

Change the fix for Bug 32440 to show bytes instead of kilobytes in
INFORMATION_SCHEMA.TABLES.DATA_FREE.
2008-08-19 18:29:46 -06:00
Sven Sandberg
bbb45c158f Bug#35807 - INSTALL PLUGIN replicates row-based, but not stmt-based
INSTALL PLUGIN and UNINSTALL PLUGIN worked with statement-based and
mixed-mode replication only, but not with row-based replication.

There is no statement-based replication of these statements.
But there was row-based replication of the inserts and deletes
to and from the mysql.plugin table.

The fix is to suppress binlogging during insert and delete to
and from the mysql.plugin table.


mysql-test/suite/rpl/r/rpl_plugin_load.result:
  new result file
mysql-test/suite/rpl/t/rpl_plugin_load-master.opt:
  new opt file
mysql-test/suite/rpl/t/rpl_plugin_load-slave.opt:
  new opt file
mysql-test/suite/rpl/t/rpl_plugin_load.test:
  new test
sql/sql_plugin.cc:
  Suppress binlogging during insert and delete to/from the
  mysql.plugin table.
2008-08-19 17:35:56 +02:00
Tatiana A. Nurnberg
fd548d585d auto-merged 2008-08-19 16:26:24 +02:00
Tatiana A. Nurnberg
98eccd94a1 Bug#35616: memory overrun on 64-bit linux on setting large values for keybuffer-size
We could allocate chunks larger than 4GB, but did our
size-accounting in 32-bit values. This could lead to
spurious warnings, inaccurate accounting, and, in
theory, data loss.
  
Affected: 64-bit platforms. Debug-build (with safemalloc).
At least one buffer larger than 4GB. For potential data
loss, a re-alloc on such a buffer would be necessary.


mysys/my_static.c:
  Make memory-accounting 64-bit safe.
mysys/my_static.h:
  Make memory-accounting 64-bit safe.
  Move in struct for better alignment when 64-bit.
2008-08-19 15:56:41 +02:00
Mattias Jonsson
25441304b4 merge (from mysql-5.1-bugteam to my local tree) 2008-08-19 15:27:57 +02:00
Sergey Petrunia
84d8df711b Merge 2008-08-19 17:25:19 +04:00