Commit graph

38521 commits

Author SHA1 Message Date
unknown
5d385571d1 Merge mysql.com:/home/hf/work/32063/my41-32063
into  mysql.com:/home/hf/work/31868/my41-31868
2007-11-20 14:47:39 +04:00
unknown
aa4b42ff96 Raise version number after cloning 5.0.52 2007-11-20 11:26:16 +01:00
unknown
f97e4d319d BUG#27850 "mysqldump --single-transaction does not work if TRUNCATE/DROP/RENAME/ALTER":
this has already been closed by a note in the manual, now we
complete this by a note in "mysqldump --help"


client/mysqldump.c:
  mention, in "mysqldump --help", of limitations reported as BUG#27850
  "mysqldump --single-transaction does not work if TRUNCATE/DROP/RENAME/ALTER"
  The new text is inspired from what the "mysqldump" section of the
  manual now says about --single-transaction:
  http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
2007-11-20 10:25:07 +01:00
unknown
524e1cd93d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/31048-bug-5.0-opt-mysql
2007-11-19 21:28:50 +00:00
unknown
b3347a6a98 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/31048-bug-5.0-opt-mysql


sql/item_subselect.cc:
  Auto merged
mysql-test/r/subselect.result:
  Manual merge
mysql-test/t/subselect.test:
  Manual merge
2007-11-19 21:15:53 +00:00
unknown
1c232504a9 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/30384-bug-5.0-opt-mysql


sql/sql_class.h:
  Auto merged
2007-11-19 21:06:03 +00:00
unknown
4addb6b717 Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
led to creating corrupted index.

Corrected fix. The new method called prepare2 is added to the select_create
class. As all preparations are done by the select_create::prepare function
it doesn't do anything. Slightly changed algorithm of calling the 
start_bulk_insert function. Now it's called from the select_insert::prepare2
function when the SQL_BUFFER_RESULT flags is set.
The is_bulk_insert_mode flag is removed as it is not needed anymore.


sql/sql_class.h:
  Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
  led to creating corrupted index.
  Corrected fix. The new method called prepare2 is added to the select_create
  class. As all preparetions are done by the select_create::prepare function
  it doesn't do anything.
  The is_bulk_insert_mode flag is removed as it is not needed anymore.
sql/sql_insert.cc:
  Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
  led to creating corrupted index. Slightly changed algorithm of calling the
  start_bulk_insert function. Now it's called from the select_insert::prepare2
  function when the SQL_BUFFER_RESULT flags is set.
  Corrected fix. The is_bulk_insert_mode flag is removed as it is not needed
  anymore.
2007-11-19 21:05:17 +00:00
unknown
29d7b2456c Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  ramayana.hindu.god:/home/tsmith/m/bk/build/50
2007-11-19 13:17:58 -07:00
unknown
13105534fa Bug#31048: Many nested subqueries may cause server crash.
This bug is actually two. The first one manifests itself on an EXPLAIN
SELECT query with nested subqueries that employs the filesort algorithm.
The whole SELECT under explain is marked as UNCACHEABLE_EXPLAIN to preserve
some temporary structures for explain. As a side-effect of this values of
nested subqueries weren't cached and subqueries were re-evaluated many
times. Each time buffer for filesort was allocated but wasn't freed because
freeing occurs at the end of topmost SELECT. Thus all available memory was
eaten up step by step and OOM event occur.
The second bug manifests itself on SELECT queries with conditions where
a subquery result is compared with a key field and the subquery itself also
has such condition. When a long chain of such nested subqueries is present
the stack overrun occur. This happens because at some point the range optimizer
temporary puts the PARAM structure on the stack. Its size if about 8K and
the stack is exhausted very fast.

Now the subselect_single_select_engine::exec function allows subquery result
caching when the UNCACHEABLE_EXPLAIN flag is set.
Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
function for stack checking purposes to prevent server crash.


mysql-test/t/subselect.test:
  Added a test case for the bug#31048: Many nested subqueries may cause server crash.
mysql-test/r/subselect.result:
  Added a test case for the bug#31048: Many nested subqueries may cause server crash.
sql/opt_range.cc:
  Bug#31048: Many nested subqueries may cause server crash.
  Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
  function for stack checking purposes to preven server crash.
sql/item_subselect.cc:
  Bug31048: Many nested subqueries may cause server crash.
  Now the subselect_single_select_engine::exec function allows subquery result
  caching when the UNCACHEABLE_EXPLAIN flag is set.
2007-11-19 20:00:25 +00:00
unknown
ea73989828 Fixed bug #32282: TEXT silently truncates when value is exactly 65536
bytes length.

The server has been modified to report warnings on truncation to
65536 bytes as usual.



sql/sql_string.cc:
  Fixed bug #32282.
  The well_formed_copy_nchars function returned an incorrect value
  of copied bytes of the truncated input string: extra length of
  the first truncated character added to the *from_end_pos pointer.
  That has been fixed.
mysql-test/r/type_blob.result:
  Added test case for bug #32282.
mysql-test/t/type_blob.test:
  Added test case for bug #32282.
2007-11-19 21:34:21 +04:00
unknown
bb681dbc88 Bug #31153 calling stored procedure crashes server if available memory is low
When the server was out of memory it crashed because of invalid memory access.

This patch adds detection for failed memory allocations and make the server
output a proper error message.


sql/mysqld.cc:
  Don't try to push_warning from within push_warning. It will cause a recursion
  until the stack is consumed.
  
  If my_net_init fails (for example: because of OOM) the temporary vio object 
  might have been attached to the thd object already. This will cause a double
  free on the vio object when the thd object is deleted later on and the server
  will crash.
sql/sp_head.cc:
  Added check for out-of-memory on a 'new' operation.
  Refactored reset_lex method to return a error state code instead of void.
  Initialize the mem-root with init_sql_alloc to get a basic error handler for
  memory allocation problems. This alone won't prevent the server from crashing,
  NULL pointers have to be accounted for as well.
sql/sp_head.h:
  Use the throw() clause in operator new, to indicate to the compiler that
  memory allocation can fail and return NULL, so that the compiler should
  generate code to check for NULL before invoking C++ constructors, to be
  crash safe.
sql/sql_base.cc:
  Use init_sql_alloc to get basic out-of-memory error handling.
sql/sql_lex.h:
  Use the throw() clause in operator new, to indicate to the compiler that
  memory allocation can fail and return NULL, so that the compiler should
  generate code to check for NULL before invoking C++ constructors, to be
  crash safe.
sql/sql_prepare.cc:
  Use init_sql_alloc to get basic out-of-memory error handling.
sql/sql_yacc.yy:
  Check for memory allocation failures where it matters.
2007-11-19 17:59:44 +01:00
unknown
c4d0901d00 Fix for bug #32221: bug25714, mytest, mysql_client_test complaints and
crashes.

MySQL distributions contain a number of programs that are used only by
the MySQL test suite internally, i.e. they are not indended to be
invoked directly by a user. As a result, such programs are not
documented, do not have any built-in help or proper error reporting,
which may confuse users.

This patch fixes the problem with the following changes:
- mytest, libmysqltest and all references to them were removed from the
distribution since they are not used anymore
- bug25714 now displays an error message when run with incorrect
arguments or with the --help option
- mysql_client_test now does not call abort() in case of errors,
instead it does a clean exit() with a proper error status.


BitKeeper/deleted/.del-mytest.c:
  Delete: libmysql/mytest.c
BitKeeper/deleted/.del-myTest-package.dsp:
  Delete: VC++Files/libmysqltest/myTest-package.dsp
BitKeeper/deleted/.del-myTest-package_ia64.dsp:
  Delete: VC++Files/libmysqltest/myTest-package_ia64.dsp
BitKeeper/deleted/.del-myTest.dsp~4a8c480769193952:
  Delete: VC++Files/libmysqltest/myTest.dsp
BitKeeper/deleted/.del-myTest.vcproj:
  Delete: VC++Files/libmysqltest/myTest.vcproj
BitKeeper/deleted/.del-myTest_ia64.dsp:
  Delete: VC++Files/libmysqltest/myTest_ia64.dsp
BitKeeper/deleted/.del-mytest.c~9a99338689e5de8:
  Delete: VC++Files/libmysqltest/mytest.c
BitKeeper/deleted/.del-mytest.dsw~2324698861155335:
  Delete: VC++Files/libmysqltest/mytest.dsw
VC++Files/copy_mysql_files.bat:
  Removed references to libmysqltest.
libmysql/CMakeLists.txt:
  Removed rules for myTest.
libmysql/Makefile.am:
  Removed mytest.c from EXTRA_DIST.
tests/bug25714.c:
  Display a meaningful error message when run incorrectly or with the --help option.
tests/mysql_client_test.c:
  In case of error, don't cause abnormal program termination, do a clean exit() with an error status.
2007-11-19 18:59:25 +03:00
unknown
dd433ff1ff Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-18431
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-11-19 15:42:12 +01:00
unknown
17146fc93d Update readline to version 5.2. This fixes bug#18431.
cmd-line-utils/readline/INSTALL:
  update readline to version 5.2
cmd-line-utils/readline/README:
  update readline to version 5.2
cmd-line-utils/readline/bind.c:
  update readline to version 5.2
cmd-line-utils/readline/callback.c:
  update readline to version 5.2
cmd-line-utils/readline/chardefs.h:
  update readline to version 5.2
cmd-line-utils/readline/compat.c:
  update readline to version 5.2
cmd-line-utils/readline/complete.c:
  update readline to version 5.2
cmd-line-utils/readline/configure.in:
  update readline to version 5.2
cmd-line-utils/readline/display.c:
  update readline to version 5.2
cmd-line-utils/readline/funmap.c:
  update readline to version 5.2
cmd-line-utils/readline/histexpand.c:
  update readline to version 5.2
cmd-line-utils/readline/histfile.c:
  update readline to version 5.2
cmd-line-utils/readline/history.c:
  update readline to version 5.2
cmd-line-utils/readline/histsearch.c:
  update readline to version 5.2
cmd-line-utils/readline/input.c:
  update readline to version 5.2
cmd-line-utils/readline/isearch.c:
  update readline to version 5.2
cmd-line-utils/readline/keymaps.c:
  update readline to version 5.2
cmd-line-utils/readline/kill.c:
  update readline to version 5.2
cmd-line-utils/readline/macro.c:
  update readline to version 5.2
cmd-line-utils/readline/mbutil.c:
  update readline to version 5.2
cmd-line-utils/readline/misc.c:
  update readline to version 5.2
cmd-line-utils/readline/nls.c:
  update readline to version 5.2
cmd-line-utils/readline/parens.c:
  update readline to version 5.2
cmd-line-utils/readline/readline.c:
  update readline to version 5.2
cmd-line-utils/readline/readline.h:
  update readline to version 5.2
cmd-line-utils/readline/rlconf.h:
  update readline to version 5.2
cmd-line-utils/readline/rldefs.h:
  update readline to version 5.2
cmd-line-utils/readline/rlmbutil.h:
  update readline to version 5.2
cmd-line-utils/readline/rlprivate.h:
  update readline to version 5.2
cmd-line-utils/readline/rltty.c:
  update readline to version 5.2
cmd-line-utils/readline/savestring.c:
  update readline to version 5.2
cmd-line-utils/readline/search.c:
  update readline to version 5.2
cmd-line-utils/readline/shell.c:
  update readline to version 5.2
cmd-line-utils/readline/signals.c:
  update readline to version 5.2
cmd-line-utils/readline/terminal.c:
  update readline to version 5.2
cmd-line-utils/readline/text.c:
  update readline to version 5.2
cmd-line-utils/readline/tilde.c:
  update readline to version 5.2
cmd-line-utils/readline/tilde.h:
  update readline to version 5.2
cmd-line-utils/readline/undo.c:
  update readline to version 5.2
cmd-line-utils/readline/util.c:
  update readline to version 5.2
cmd-line-utils/readline/vi_keymap.c:
  update readline to version 5.2
cmd-line-utils/readline/vi_mode.c:
  update readline to version 5.2
cmd-line-utils/readline/xmalloc.c:
  update readline to version 5.2
2007-11-19 14:38:08 +01:00
unknown
ac0612f559 Merge polly.(none):/home/kaa/src/opt/bug32376/my50-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


client/mysql.cc:
  Auto merged
2007-11-19 16:14:05 +03:00
unknown
1f7678fe52 Changed the help text for --comments to make it clear which option
disables the option explicitely.
Changed the option location in code so that --help will show it in
lexical option order.

This is for bug #26215: mysql command line client should not strip
comments from SQL statements


client/mysql.cc:
  Changed the help text for --comments to make it clear which option
  disables the option explicitely.
  Changed the option location in code so that --help will show it in
  lexical option order.
2007-11-19 15:27:44 +03:00
unknown
da1efa3387 Bug #30284 spatial key corruption.
SPATIAL key is fine actually, but the chk_key() function
mistakenly returns error. It tries to compare checksums
of btree and SPATIAL keys while the checksum for the SPATIAL isn't
calculated (always 0). Same thing with FULLTEXT keys is handled
using full_text_keys counter, so fixed by counting both
SPATIAL and FULLTEXT keys in that counter.


myisam/mi_check.c:
  Bug #30284 spatial key corruption
  
  full_text_keys counts both FULL_TEXT and SPATIAL keys
mysql-test/r/gis.result:
  Bug #30284 spatial key corruption
  
  test result
mysql-test/t/gis.test:
  Bug #30284 spatial key corruption.
  
  test case
2007-11-19 11:03:03 +04:00
unknown
f978c7cd86 Merge gleb.loc:/work/bk/5.0-opt-32335
into  gleb.loc:/work/bk/5.0-opt
2007-11-18 00:08:41 +04:00
unknown
99054db64c Fixed bug #32335.
Comparison of a BIGINT NOT NULL column with a constant arithmetic
expression that evaluates to NULL caused error 1048: "Column '...'
cannot be null".

Made convert_constant_item() check if the constant expression is NULL
before attempting to store it in a field. Attempts to store NULL in a
NOT NULL field caused query errors.


sql/item_cmpfunc.cc:
  Fixed bug #32335.
  1. Made convert_constant_item() check if the constant expression is NULL
     before attempting to store it in a field. Attempts to store NULL in
     a NOT NULL field caused query errors.
  
  2. Also minor bug has been fixed: the thd->count_cuted_fields value
     was not restored in case of successful conversion.
mysql-test/t/select.test:
  Added test case for bug #32335.
mysql-test/r/select.result:
  Added test case for bug #32335.
2007-11-18 00:02:55 +04:00
unknown
8a3e1a5568 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/misc/mysql/24907/50-24907


sql/sql_select.cc:
  Auto merged
2007-11-17 19:13:27 +01:00
unknown
748446b99c Bug#24907: unpredictable (display) precission, if input precission increases
Server failed in assert() when we tried to create a DECIMAL() temp field
with a scale of more than the allowed 30. Now we limit the scale to the
allowed maximum. A truncation warning is thrown as necessary.


mysql-test/r/type_newdecimal.result:
  Show that out of range DECIMAL temp fields will no longer
  stop the server with an assert.
mysql-test/t/type_newdecimal.test:
  Show that out of range DECIMAL temp fields will no longer
  stop the server with an assert.
sql/sql_select.cc:
  When creating DECIMAL() temp field, ascertain we stay within allowed
  limits. If not, truncate and warn.
2007-11-17 19:05:31 +01:00
unknown
71232b16d4 Merge mysql.com:/home/hf/work/31158/my41-31158
into  mysql.com:/home/hf/work/31158/my50-31158
2007-11-17 20:27:13 +04:00
unknown
d28ae94e2a Merge bk@192.168.21.1:mysql-4.1-opt
into  mysql.com:/home/hf/work/31158/my41-31158
2007-11-17 20:24:22 +04:00
unknown
dd07707b0c Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/31158/my50-31158


sql/field.cc:
  Auto merged
2007-11-17 20:23:15 +04:00
unknown
8a8d634b23 merging 2007-11-17 17:11:05 +04:00
unknown
75b8713b48 Merge mysql.com:/home/hf/work/31158/my41-31158
into  mysql.com:/home/hf/work/31158/my50-31158


mysql-test/t/gis.test:
  Auto merged
sql/field.h:
  Auto merged
sql/item_geofunc.cc:
  Auto merged
mysql-test/r/gis.result:
  merging
sql/field.cc:
  merging
2007-11-17 16:48:57 +04:00
unknown
8309c197fa Merge mysql.com:/misc/mysql/mysql-5.0-opt
into  mysql.com:/misc/mysql/32180/50-32180


sql-common/my_time.c:
  Auto merged
2007-11-17 05:57:21 +01:00
unknown
7f99a2db29 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  ramayana.hindu.god:/home/tsmith/m/bk/build/50
2007-11-16 14:57:47 -07:00
unknown
975731aa32 Eliminate 'unused variable' warnings when compiling non-debug build 2007-11-16 14:56:37 -07:00
unknown
5e9933d7ff Bug #32180: DATE_ADD treats datetime numeric argument as DATE instead of DATETIME
This is a regression from 2007-05-18 when code to zero out the returned struct was
added to number_to_datetime(); zero for time_type corresponds to MYSQL_TIMESTAMP_DATE.
We now explicitly set the type we return (MYSQL_TIMESTAMP_DATETIME).


mysql-test/r/func_time.result:
  show that DATE_ADD() behaves the same for YYYYMMDDhhmmss given
  as string and as integer.
mysql-test/t/func_time.test:
  show that DATE_ADD() behaves the same for YYYYMMDDhhmmss given
  as string and as integer.
sql-common/my_time.c:
  explictly set return type in number_to_datetime()
2007-11-16 17:43:15 +01:00
unknown
9395439cfa In the "spec" file for RPM builds, handle the debug server tests different from the standard server.
support-files/mysql.spec.sh:
  Don't use the "test-bt" target to run the tests on the debug server,
  rather use "test-bt-debug".
  
  There are two reasons for this:
  1) Consistency with the "tar.gz" builds.
  2) The tool that evaluates the build logs needs unique "--comment=" options in the log,
     or else it will fail when it generates the test status summary.
2007-11-16 17:36:13 +01:00
unknown
3f43b07b4a Merge stella.local:/home2/mydev/mysql-4.1-axmrg
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-16 13:27:58 +01:00
unknown
36fc6f564c Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


sql/mysql_priv.h:
  Auto merged
2007-11-16 13:27:23 +01:00
unknown
5f28ecad97 Merge trift2.:/MySQL/M41/push-4.1
into  trift2.:/MySQL/M50/push-5.0
2007-11-16 13:07:21 +01:00
unknown
425478bad3 Merge stella.local:/home2/mydev/mysql-4.1-amain
into  stella.local:/home2/mydev/mysql-4.1-axmrg
2007-11-16 13:04:17 +01:00
unknown
4b48eb6f1e Merge polly.(none):/home/kaa/src/opt/bug32241/my50-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


sql/sql_select.cc:
  Auto merged
2007-11-16 14:24:06 +03:00
unknown
1c1dd1f25c Fix for bug #32241: memory corruption due to large index map in 'Range
checked for each record'

The problem was in incorrectly calculated length of the buffer used to
store a hexadecimal representation of an index map in
select_describe(). This could result in buffer overrun and stack
corruption under some circumstances.

Fixed by correcting the calculation.


mysql-test/r/explain.result:
  Added a test case for bug #32241.
mysql-test/t/explain.test:
  Added a test case for bug #32241.
sql/sql_select.cc:
  Corrected the buffer length calculation. Count one hex digit as 4 bits,
  not 8.
2007-11-16 13:58:09 +03:00
unknown
0372747a3e Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2007-11-16 14:53:54 +04:00
unknown
0cfa3267fb Bug#30294 blackhole engine causes 100% with 2 alter table statements running
Implement neccessary shared lock structure for table locks.
This is the backport of bug26241 fix.


sql/ha_blackhole.cc:
  Implement neccessary shared lock structure for table locks.
sql/ha_blackhole.h:
  Declare shared structure for table locks
sql/handler.cc:
  added BLACKHOLE_DB case
2007-11-16 14:46:36 +04:00
unknown
d7ed25385e Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge
2007-11-16 11:26:29 +01:00
unknown
0b7dad09ac Bug#32429 ssl_cipher setting in my.cnf not read by libmysqlclient
sql-common/client.c:
  Store ssl_cipher setting read from my.cnf into "option->ssl_cipher"
2007-11-16 10:43:59 +01:00
unknown
1f373cb146 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0
2007-11-16 10:42:32 +01:00
unknown
ee85ee6218 Merge trift2.:/MySQL/M41/mysql-4.1
into  trift2.:/MySQL/M41/push-4.1
2007-11-16 10:34:36 +01:00
unknown
dbd0f06981 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31928-5.0-opt


mysql-test/r/type_date.result:
  Auto merged
mysql-test/t/type_date.test:
  Auto merged
2007-11-15 17:30:08 +02:00
unknown
4fa7902f2e Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-14 20:05:52 +01:00
unknown
1490691e31 after merge fix 2007-11-14 18:56:14 +04:00
unknown
1140bed510 Merge trift2.:/MySQL/M41/push-4.1
into  trift2.:/MySQL/M50/push-5.0
2007-11-14 15:48:44 +01:00
unknown
5a3baf3d05 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
2007-11-14 15:41:33 +01:00
unknown
e3c7265135 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0


include/my_sys.h:
  Auto merged
2007-11-14 15:26:38 +01:00
unknown
a0708969d4 Merge trift2.:/MySQL/M40/mysql-4.0
into  trift2.:/MySQL/M41/push-4.1
2007-11-14 15:22:55 +01:00