Commit graph

50861 commits

Author SHA1 Message Date
unknown
d87ae86bc6 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge


sql/events.cc:
  Auto merged
2007-11-15 14:17:04 -07:00
unknown
91f0013986 A patch for BUG#19723: kill of active connection yields
different error code depending on platform.

On Mac OS X, KILL statement issued to kill the current
connection would return a different error code and message than on
other platforms ('MySQL server has gone away' instead of 'Shutdown
in progress').

The reason for this difference was that on Mac OS X we have macro
SIGNAL_WITH_VIO_CLOSE defined. This macro forces KILL
implementation to close the communication socket of the thread
that is being killed. SIGNAL_WITH_VIO_CLOSE macro is defined on
platforms where just sending a signal is not a reliable mechanism
to interrupt the thread from sleeping on a blocking system call.
In a nutshell, closing the socket is a hack to work around an
operating system bug and awake the blocked thread no matter what.

However, if the thread that is being killed is the same
thread that issued KILL statement, closing the socket leads to a
prematurely lost connection. At the same time it is not necessary
to close the socket in this case, since the thread in question
is not inside a blocking system call.

The fix, therefore, is to not close the socket if the thread that
is being killed is the same that issued KILL statement, even with
defined SIGNAL_WITH_VIO_CLOSE.


mysql-test/r/kill.result:
  Update result file.
mysql-test/t/kill.test:
  Added a test case for BUG#19723: kill of active connection yields
  different error code depending on platform.
sql/sql_class.cc:
  Call close_active_vio() only if we're killing another thread.
2007-11-15 15:35:35 +03:00
unknown
26b5030487 Merge damien-katzs-computer.local:/Users/dkatz/mysql-5.1-runtime
into  damien-katzs-computer.local:/Users/dkatz/cmdline_events_bug
2007-11-14 16:34:01 -05:00
unknown
8c3048e9da Bug#28785 thread-handling not displayed properly in SHOW VARIABLES
mysql-test/r/no-threads.result:
  Test that we are in the 'no-threads' thread_handling mode.
mysql-test/t/no-threads.test:
  Test that we are in the 'no-threads' thread_handling mode.
sql/mysqld.cc:
  Changes to make global_system_variables.thread_handling be zero based, instead of 1
  based.
sql/scheduler.h:
  Changed the enum to start at 0, to match the array elements in thread_handling_names
  in mysqld.cc
2007-11-14 16:12:46 -05:00
unknown
7eef514621 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  damien-katzs-computer.local:/Users/dkatz/mysql-5.1-runtime
2007-11-14 15:27:37 -05:00
unknown
b3a71e3448 Bug#32091: Security breach via directory changes
Post pushbuild fix

Disabled test on windows due to bug#30459
(DATA/INDEX DIR for partitions not working on windows)

Patch from Mattias Jonsson.


mysql-test/r/partition_mgm.result:
  Bug#32091: Security breach via directory changes
  
  fixed non-windows lines.
mysql-test/t/partition_mgm.test:
  Bug#32091: Security breach via directory changes
  
  fixed non-windows lines.
mysql-test/t/partition_symlink.test:
  Bug#32091: Security breach via directory changes
  
  Added no_windows, since it is affected of bug#30459
2007-11-13 11:12:53 +01:00
unknown
dcfeb8f92b Merge bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  stella.local:/home2/mydev/mysql-5.1-bug31210


libmysqld/lib_sql.cc:
  Auto merged
2007-11-13 10:33:50 +01:00
unknown
fca6284c5f Bug#32078 - Excessive warnings: One can only use the --user switch
if running as root

Every start of a server in the test suite raised that warning.

The cause was an unconditionla add of the --user option to the
server command line. Only the "root" user (effective user id == 0)
must use that option.

Added check for effective user id == 0 before adding --user.

Thanks to Magnus Svensson for the patch.


mysql-test/mysql-test-run.pl:
  Bug#32078 - Excessive warnings: One can only use the --user switch
              if running as root
  Added check for effective user id == 0 before adding --user
  in mysqld_arguments().
2007-11-13 10:25:22 +01:00
unknown
6e7e3ed69e Merge mattiasj@bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-last_with_main
2007-11-12 22:40:43 +01:00
unknown
1b98a962d5 Merge mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-main
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-last_with_main


libmysqld/lib_sql.cc:
  Auto merged
mysql-test/include/mix1.inc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
sql/event_scheduler.cc:
  Auto merged
sql/events.cc:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_connect.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-11-12 21:09:48 +01:00
unknown
423896aefd Merge mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.1-engines


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
2007-11-12 21:55:53 +04:00
unknown
2aa5037c7a Merge mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.0-engines


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
2007-11-12 21:54:04 +04:00
unknown
9f9ff46120 symlink.test, symlink.result:
Use proper variable for test.


mysql-test/t/symlink.test:
  Use proper variable for test.
mysql-test/r/symlink.result:
  Use proper variable for test.
2007-11-12 21:52:30 +04:00
unknown
71328b4f13 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  stella.local:/home2/mydev/mysql-5.1-bug31210
2007-11-12 15:55:40 +01:00
unknown
0dda7aa6db A patch for BUG#32172: information_schema test fails with
wait_condition timeout.

The problem was that the event thread didn't manage to execute
the event in 30 seconds on highly-loaded box. The fix is to
increase timeout.

This is a fix for the test suite.


mysql-test/t/information_schema.test:
  Provide more time to execute an event.
2007-11-12 17:26:32 +03:00
unknown
e116210a36 Merge mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-fixtopush
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-lastfinaltopush
2007-11-12 15:04:48 +01:00
unknown
c04eeac1cf Merge mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-bug29368
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-lastfinaltopush


mysql-test/r/partition.result:
  Auto merged
2007-11-12 14:58:20 +01:00
unknown
dee26bdc07 Merge mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-bug31705
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-lastfinaltopush
2007-11-12 14:57:00 +01:00
unknown
c03f01eb56 Merge mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-bug32091
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-lastfinaltopush
2007-11-12 14:55:50 +01:00
unknown
85d1853e87 Bug#31705 Partitions: crash if varchar length > 65530
Buffer overflow due to wrong key length in partitioning

Changed to the correct key_length function.


sql/opt_range.cc:
  Bug#31705 Partitions: crash if varchar length > 65530
  Problem: buffer overflow due to wrong key-length
  
  Fix: Using correct key_length function
mysql-test/r/partition_datatype.result:
  Bug#31705 Partitions: crash if varchar length > 65530
  New test-result case for testing all column types
  used in key-partitioning.
  
  (For verifying correct key-length use)
mysql-test/t/partition_datatype.test:
  Bug#31705 Partitions: crash if varchar length > 65530 
  New test case for testing all column types
  used in key-partitioning.
  
  (For verifying correct key-length used)
2007-11-12 14:51:14 +01:00
unknown
4cb47bdd9f Bug#32091: Security breach via directory changes
Merge fix

partition_mgm did not require have_symlink.

Moved the test case to partition_symlink, which
require have_symlink, and should work on both *nix and
Windows


mysql-test/r/partition_mgm.result:
  Bug#32091: Security breach via directory changes
  
  Moved the test case to partition_symlink.
mysql-test/t/partition_mgm.test:
  Bug#32091: Security breach via directory changes
  
  Moved the test case to partition_symlink.
mysql-test/r/partition_symlink.result:
  Bug#32091: Security breach via directory changes
  
  Moved the test case to partition_symlink. It requires
  have_symlink.
mysql-test/t/partition_symlink.test:
  Bug#32091: Security breach via directory changes
  
  Moved the test case to partition_symlink. It requires
  have_symlink.
2007-11-12 13:23:45 +01:00
unknown
efa10a00ab Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
    
Post-pushbuild fix
    
Pushbuild detected yet another need for lex initialization in
embedded server.


libmysqld/lib_sql.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
                      partitioned table
  Initialized lex for later use in open_table().
2007-11-12 13:07:54 +01:00
unknown
819eaead10 Fix for a BUG#31898: 16M memory allocations for user variables
in stored procedure.

The problem was that MySQL used unnecessarily large amounts of
memory if user variables were used as an argument to CONCAT or
CONCAT_WS -- 16M per each user variable used.

Technically, it happened because MySQL used the following
allocation strategy for string functions to avoid multiple
realloc() calls: in the virtual operation fix_length_and_dec()
the attribute max_length was calculated as a sum of max_length
values for each argument.

Although this approach worked well for small (or fixed) data types,
there could be a problem if there as a user variable among
the arguments of a string function -- max_length of the function
would be 16M (as the max_length of a user variable is 16M).

Both CONCAT() and CONCAT_WS() functions suffer from this problem.

The fix is to do not use meta-data for allocating memory.
The following strategy is proposed instead: allocate the exact
length of the result string at the first record, double the amount
of memory allocated when it is required.

No test case for this bug because there is no way to test memory
consumption in a robust way with our test suite.


sql/item_strfunc.cc:
  Implement memory-wise allocation strategy.
2007-11-12 14:44:17 +03:00
unknown
e1d98e8d51 Merge mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.1-engines


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
mysys/my_symlink2.c:
  Auto merged
2007-11-12 15:26:37 +04:00
unknown
c63fd4dd32 Merge mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.0-engines


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
mysys/my_symlink2.c:
  Auto merged
2007-11-12 15:16:00 +04:00
unknown
88701b45a9 After merge fix. 2007-11-12 15:15:16 +04:00
unknown
a1e38552bb Merge mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-4.0
into  mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-4.1-engines


mysys/my_symlink2.c:
  Auto merged
mysql-test/r/symlink.result:
  SCCS merged
mysql-test/t/symlink.test:
  SCCS merged
2007-11-12 15:02:42 +04:00
unknown
c4f94b70bd BUG#31611 (Security risk with BINLOG statement):
Adding missing drop of user created for test case.


mysql-test/r/mysqlbinlog.result:
  Result file change.
mysql-test/t/mysqlbinlog.test:
  Dropping user that was added earlier in the test.
2007-11-12 11:29:55 +01:00
unknown
7642ea9ac7 Bug#30695: An apostrophe ' in the comment of the ADD PARTITION
causes the Server to crash.

Post-pushbuild fix

Pushbuild genereted valgrind warnings.

Changed function to safer variant.


sql/sql_partition.cc:
  Bug#30695: An apostrophe ' in the comment of the ADD PARTITION
      causes the Server to crash.
  
  Fix for valgrind warning in pushbuild.
  String.c_prt fcn is not as safe as comment says.
  (gives valgrind errors in this case)
2007-11-11 22:30:01 +01:00
unknown
076f2f732d Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
  
Post-pushbuild fix
  
Pushbuild detected a new need for lex initialization in
embedded server.

Fixed test for INSERT DELAYED in partitions_hash.test so that
it works with embedded server.


libmysqld/lib_sql.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
                  partitioned table
  Initialized lex for later use in open_table().
mysql-test/r/partition_hash.result:
  Bug#31210 - INSERT DELAYED crashes server when used on
                  partitioned table
  Fixed test result for embedded server.
mysql-test/t/partition_hash.test:
  Bug#31210 - INSERT DELAYED crashes server when used on
                  partitioned table
  Fixed test for embedded server.
2007-11-11 20:38:28 +01:00
unknown
da0336043b Bug#32091: Security breach via directory changes
Changed test case from GRANT to CREATE USER


mysql-test/r/partition_mgm.result:
  Bug#32091: Security breach via directory changes
  test result
mysql-test/t/partition_mgm.test:
  Bug#32091: Security breach via directory changes
  Changed test case from GRANT to CREATE USER
2007-11-10 21:29:39 +01:00
unknown
e599005d7e Bug#32091: Security breach via directory changes
small fix of test case (when running make test after
merge, it did not substitute MYSQLTEST_VARDIR in
the error)


mysql-test/r/partition_mgm.result:
  Bug#32091: Security breach via directory changes
  small fix in test result
mysql-test/t/partition_mgm.test:
  Bug#32091: Security breach via directory changes
  small fix in test case
2007-11-10 14:56:21 +01:00
unknown
bb532df558 Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table

Post-merge fix

A new need for lex initialization arose.


sql/ha_ndbcluster.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
2007-11-10 14:36:25 +01:00
unknown
8aa1c8b9e6 Bug#29368: Modified error messages
Problem: there was no standard syntax error when
         creating partitions with syntax error in
         the partitioning clause.

Solution: added "Syntax error: " to the error message


mysql-test/r/partition.result:
  Bug#29368: Incorrect error for syntax error when createing
             partition
  
  test result update
mysql-test/r/partition_error.result:
  Bug#29368: Incorrect error for syntax error when createing
             partition
  
  test result
mysql-test/t/partition_error.test:
  Bug#29368: Incorrect error for syntax error when createing
             partition
  
  test case
sql/share/errmsg.txt:
  Bug#29368: Incorrect error for syntax error when createing
             partition
  
  Modified error messages
2007-11-10 13:09:18 +01:00
unknown
4b1e7b75b1 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  stella.local:/home2/mydev/mysql-5.1-bug31210


sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_connect.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_servers.cc:
  Auto merged
sql/sql_udf.cc:
  Auto merged
sql/table.cc:
  Auto merged
2007-11-10 11:58:41 +01:00
unknown
6ac3d502d7 Bug#32091: Security breach via directory changes
Problem: the table's INDEX and DATA DIR was taken
  directly from the table's first partition.
  This allowed rename attack similar to
  bug#32111 when ALTER TABLE REMOVE PARTITIONING

Solution: Silently ignore the INDEX/DATA DIR
  for the table. (Like some other storage engines
  do). 
  Partitioned tables do not support DATA/INDEX
  DIR on the table level, only on its partitions.


mysql-test/r/partition_mgm.result:
  Bug#32091: Security breach via directory changes
  test result
mysql-test/t/partition_mgm.test:
  Bug#32091: Security breach via directory changes
  test case
sql/ha_partition.cc:
  Bug#32091: Security breach via directory changes
  
  Do not use the first partition's DATA/INDEX DIR
  as the table's DATA/INDEX DIR.
  (A partitioned table do not have support for DATA/
  INDEX DIR, only its partitions do)
2007-11-09 23:22:00 +01:00
unknown
6cc90dbb22 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  stella.local:/home2/mydev/mysql-5.1-bug22351


sql/handler.cc:
  Auto merged
2007-11-09 09:19:27 +01:00
unknown
10397af9c5 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1
into  kindahl-laptop.dnsalias.net:/home/bk/b31611-mysql-5.1-target-5.1.22


sql/sql_binlog.cc:
  Auto merged
2007-11-08 08:54:19 +01:00
unknown
15a5881c88 Merge pcg5ppc.xiphis.org:/Network/Servers/anubis.xiphis.org/home/antony/work/p1-bug30671.3
into  pcg5ppc.xiphis.org:/Network/Servers/anubis.xiphis.org/home/antony/work/p1-bug30671.3.merge-5.1
2007-11-07 13:40:55 -08:00
unknown
9e081bd2ac Bug#22351 - handler::index_next_same() call to key_cmp_if_same() uses
the wrong buffer

handler::index_next_same() did not take into account that the
internally called function key_cmp_if_same() uses the fixed
buffer table->record[0] for key comparison instead of the
buffer provided by the caller of handler::index_next_same().

Added code to temporarily redirect table->record[0] and the fields
used for the key to the record buffer provided by the caller of
handler::index_next_same().

The test case is in partition.test already.


sql/handler.cc:
  Bug#22351 - handler::index_next_same() call to key_cmp_if_same() uses
              the wrong buffer
  Added code to temporarily redirect table->record[0] and the fields
  used for the key to the record buffer provided by the caller of
  handler::index_next_same().
2007-11-07 09:30:41 +01:00
unknown
af48b26ed8 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-runtime
2007-11-06 11:31:00 -07:00
unknown
ff4b438be0 BUG#32111 - Security Breach via DATA/INDEX DIRECORY and RENAME TABLE
RENAME TABLE against a table with DATA/INDEX DIRECTORY overwrites
the file to which the symlink points.

This is security issue, because it is possible to create a table with
some name in some non-system database and set DATA/INDEX DIRECTORY
to mysql system database. Renaming this table to one of mysql system
tables (e.g. user, host) would overwrite the system table.

Return an error when the file to which the symlink points exist.


mysql-test/r/symlink.result:
  A test case for BUG#32111.
mysql-test/t/symlink.test:
  A test case for BUG#32111.
mysys/my_symlink2.c:
  Return an error when the file to which the symlink points exist.
2007-11-06 18:09:33 +04:00
unknown
a26201f84c Bug#4692 - DISABLE/ENABLE KEYS waste a space
Post-merge fix. Moved test into 5.0 section.
2007-11-06 14:47:15 +01:00
unknown
9860fd24cd Merge stella.local:/home2/mydev/mysql-5.0-axmrg
into  stella.local:/home2/mydev/mysql-5.1-axmrg


mysql-test/t/ctype_uca.test:
  Auto merged
mysql-test/r/myisam.result:
  Manual merge from 5.0.
mysql-test/t/myisam.test:
  Manual merge from 5.0.
mysql-test/t/subselect.test:
  Manual merge from 5.0.
storage/myisam/mi_check.c:
  Manual merge from 5.0.
2007-11-06 14:43:12 +01:00
unknown
c33d42eb32 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  magare.gmz:/home/kgeorge/mysql/autopush/B31974-5.1-runtime
2007-11-06 15:41:12 +02:00
unknown
31d6d018b4 Merge stella.local:/home2/mydev/mysql-5.1-amain
into  stella.local:/home2/mydev/mysql-5.1-axmrg
2007-11-06 14:35:02 +01:00
unknown
17698ca0bb Bug #31974: additional commit (test case updates)
loose index scan enabled for subqueries


mysql-test/r/group_min_max.result:
  Bug #31974: test case updates
   loose index scan enabled for subqueries
mysql-test/r/index_merge_myisam.result:
  Bug #31974: test case updates
   loose index scan enabled for subqueries
2007-11-06 15:29:55 +02:00
unknown
85425773e8 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-06 13:56:15 +01:00
unknown
1a359e1471 Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-06 13:55:42 +01:00
unknown
42829c61b6 Bug#4692 - DISABLE/ENABLE KEYS waste a space
Disabling and enabling indexes on a non-empty table grows the
index file.

Disabling indexes just sets a flag per non-unique index and does not
free the index blocks of the affected indexes. Re-enabling indexes
creates new indexes with new blocks. The old blocks remain unused
in the index file.

Fixed by dropping and re-creating all indexes if non-empty disabled
indexes exist when enabling indexes. Dropping all indexes resets
the internal end-of-file marker to the end of the index file header.
It also clears the root block pointers of every index and clears the
deleted blocks chains. This way all blocks are declared as free.


myisam/mi_check.c:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Added function mi_drop_all_indexes() to support drop of all indexes
  in case we want to re-enable non-empty disabled indexes.
  Changed mi_repair(), mi_repair_by_sort(), and mi_repair_parallel()
  to use the new function instead of duplicate drop index code.
mysql-test/r/myisam.result:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Added test result.
mysql-test/t/myisam.test:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Added test.
2007-11-06 13:41:32 +01:00