Commit graph

20298 commits

Author SHA1 Message Date
unknown
2c6a5fd27e Bug#31113 mysqldump 5.1 can't handle a dash ("-") in database names
db name should be quoted. this code does communication with the server.
it's always ok to quote names in this case.


client/mysqldump.c:
  db name should be quoted. this code does communication with the server.
  it's always ok to quote names in this case.
mysql-test/r/mysqldump.result:
  test result
mysql-test/t/mysqldump.test:
  test case
2007-11-02 12:24:45 +04:00
unknown
bc8e5574ae Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc-2
2007-11-02 02:40:23 +03:00
unknown
0c1bdcbd24 A fix for Bug#32030 "DELETE does not return an error and deletes rows if
error evaluating WHERE"

DELETE with a subquery in WHERE clause would sometimes ignore subquery
evaluation error and proceed with deletion.

The fix is to check for an error after evaluation of the WHERE clause
in DELETE.

Addressed review comments.


mysql-test/r/group_min_max.result:
  Update the test results to reflect the fix for Bug#32030.
mysql-test/r/ps.result:
  Update test results (Bug#32030)
mysql-test/t/group_min_max.test:
  Update the test case to reflect the fix for Bug#32030
mysql-test/t/ps.test:
  Add a test case for Bug#32030
sql/sql_delete.cc:
  Check for an error before calling send_ok(). Two different places are
  covered because the subquery code has slightly different execution
  paths depending on ps-protocol/old-protocol
2007-11-02 02:36:12 +03:00
unknown
fe6834439d Merge endora.local:/Users/davi/mysql/bugs/30882-5.1
into  endora.local:/Users/davi/mysql/mysql-5.1-runtime


sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-11-01 20:48:14 -02:00
unknown
611dbd0bb3 Bug#30882 Dropping a temporary table inside a stored function may cause a server crash
If a stored function that contains a drop temporary table statement
is invoked by a create temporary table of the same name may cause
a server crash. The problem is that when dropping a table no check
is done to ensure that table is not being used by some outer query
(or outer statement), potentially leaving the outer query with a
reference to a stale (freed) table.

The solution is when dropping a temporary table, always check if
the table is being used by some outer statement as a temporary
table can be dropped inside stored procedures.

The check is performed by looking at the TABLE::query_id value for
temporary tables. To simplify this check and to solve a bug related
to handling of temporary tables in prelocked mode, this patch changes
the way in which this member is used to track the fact that table is
used/unused. Now we ensure that TABLE::query_id is zero for unused
temporary tables (which means that all temporary tables which were
used by a statement should be marked as free for reuse after it's
execution has been completed).


mysql-test/include/handler.inc:
  Add test case for side effect of Bug#30882
mysql-test/r/handler_innodb.result:
  Add test case result for side effect of Bug#30882
mysql-test/r/handler_myisam.result:
  Add test case result for side effect of Bug#30882
mysql-test/r/sp-error.result:
  Add test case result for Bug#30882
mysql-test/t/sp-error.test:
  Add test case for Bug#30882
sql/event_db_repository.cc:
  Update close_thread_tables call, no more default values.
sql/mysql_priv.h:
  Remove implicit default parameters values of the close_thread_tables
  function as no callers are using it.
sql/slave.cc:
  Update close_thread_tables call, no more default values
sql/sp_head.cc:
  Update close_thread_tables call, no more default values
sql/sql_base.cc:
  Changed the approach to distinguishing currently unused temporary tables.
  Now we ensure that such tables always have TABLE::query_id set to 0 and
  use this fact to perform checks during opening and dropping of temporary
  tables. This means that we have to call close_thread_tables() even for
  statements which use only temporary tables. To make this call cheaper,
  we re-factored close_thread_tables() to not take LOCK_open unless there
  are open base tables.
sql/sql_handler.cc:
  Properly close temporary tables associated with a handler.
sql/sql_insert.cc:
  close_temporary_table is now merged into drop_temporary_table.
sql/sql_parse.cc:
  Now the condition doesn't cover all cases because close_thread_tables()
  must be called even for statements that use only temporary tables.
sql/sql_table.cc:
  Use drop_temporary_table which perform checks to verify if
  the table is not being used. Error path problem is due to
  a handler tables issue and is going to be addressed in bug
  31397.
sql/table.h:
  Rename previously unused clear_query_id and document the usage of
  query_id and open_by_handler.
2007-11-01 18:52:56 -02:00
unknown
2ebf8386a3 Merge four.local.lan:/WORK2/merge/mysql-5.0-31408
into  four.local.lan:/WORK/mysql-5.0-build/src-clean


mysql-test/t/type_datetime.test:
  Auto merged
2007-11-01 21:00:31 +01:00
unknown
aea5007d64 Bug#30671
"ALTER SERVER can cause server to crash"
  While retrieving values, it would erronously set the socket value
  to NULL and attempt to use it in strcmp().
  Ensure it is correctly set to "" so that strcmp may not crash.


mysql-test/r/federated_server.result:
  results for bug30671
  fix inconsistent result
mysql-test/t/federated_server.test:
  surplus semicolon
  test for bug30671
sql/sql_servers.cc:
  bug30671
  inside function get_server_from_table_to_cache()
    server->socket was being set to NULL instead of empty string
2007-11-01 12:30:03 -07:00
unknown
5266abb728 Merge four.local.lan:/WORK2/merge/mysql-5.0-31408
into  four.local.lan:/WORK2/merge/mysql-5.1-31408


mysql-test/t/type_datetime.test:
  Auto merged
2007-11-01 20:18:31 +01:00
unknown
4cb4a53eb4 Merge magare.gmz:/home/kgeorge/mysql/work/B31794-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B31794-5.1-opt


mysql-test/r/func_group.result:
  Auto merged
mysql-test/t/func_group.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-11-01 18:49:45 +02:00
unknown
660eb5bb40 Bug #31794: no syntax error on SELECT id FROM t HAVING count(*)>2
The HAVING clause is subject to the same rules as the SELECT list
about using aggregated and non-aggregated columns.
But this was not enforced when processing implicit grouping from
using aggregate functions.
Fixed by performing the same checks for HAVING as for SELECT.


mysql-test/r/func_group.result:
  Bug #31794: test case
mysql-test/t/func_group.test:
  Bug #31794: test case
sql/sql_select.cc:
  Bug #31794: Check HAVING in addition to SELECT list
2007-11-01 18:36:24 +02:00
unknown
81246745a9 disable test 2007-11-01 17:24:21 +01:00
unknown
27dbd3a917 Merge stella.local:/home2/mydev/mysql-5.0-axmrg
into  stella.local:/home2/mydev/mysql-5.1-axmrg


mysql-test/t/variables.test:
  Manual merge from 5.0
2007-11-01 17:12:13 +01:00
unknown
baa757d3e3 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-01 15:07:00 +01:00
unknown
7b6b909ac0 Post-merge fix 2007-11-01 15:04:23 +01:00
unknown
d787eb9541 Bug#31909 - New gis.test creates warnings files
Comment sign of -- at line begin in test files lead to warnings
from mysqltest.

Changed -- to #.


mysql-test/include/gis_keys.inc:
  Bug#31909 - New gis.test creates warnings files
  Changed -- to # at comment begin to avoid warnings files.
2007-11-01 15:03:09 +01:00
unknown
61bd5d0fec Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31866-5.1-opt
2007-11-01 14:44:30 +02:00
unknown
124af3f873 Bug #31866: MySQL Server crashes on SHOW CREATE TRIGGER statement
SHOW CREATE TRIGGER was not checking for detected errors 
opening/reading the trigger file. 
Fixed to return the already generated error.


mysql-test/r/trigger.result:
  Bug #31866: test case
mysql-test/t/trigger.test:
  Bug #31866: test case
sql/sql_show.cc:
  Bug #31866: test for error and return it.
2007-11-01 14:42:14 +02:00
unknown
cf8275e086 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/item_func.cc:
  Auto merged
2007-11-01 06:41:50 -06:00
unknown
74394b27fe Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
2007-11-01 06:35:22 -06:00
unknown
f75923b1b9 disable tests
BitKeeper/etc/ignore:
  Added libmysql_r/client_settings.h to the ignore list
2007-11-01 12:02:41 +01:00
unknown
8011819ad1 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-11-01 11:33:04 +01:00
unknown
189ec0e0af A fix for Bug#32007 select udf_function() doesn't return an error if error
during udf initialization. The bug is spotted while working on Bug 12713.

If a user-defined function was used in a SELECT statement, and an
error would occur during UDF initialization, this error would not terminate
execution of the SELECT, but rather would be converted to a warning.

The fix is to use a stack buffer to store the message from udf_init instead
of private my_error() buffer.


mysql-test/r/udf.result:
  Update the result to reflect the fix for Bug#32007 select udf_function() 
  doesn't return an error if error during udf initialization
mysql-test/t/udf.test:
  Update the test to reflect the fix for Bug #32007 select udf_function() 
  doesn't return an error if error during udf initialization
sql/item_func.cc:
  A fix for Bug#32007.
  
  net.last_error buffer was used to store the temporary message from udf_init.
  Then, when my_error() was called, net.last_error was not empty so 
  my_error() would conclude that there is already an error in the error stack, 
  and not "overwrite" it.
  However, thd->net.report_error was not set, so the the 
  SELECT was not aborted.
  
  The fix is to use a stack buffer instead of thd->net.last_error
  to store the message from udf_init. The message will end up in
  thd->net.last_error anyway after a call to my_error.
2007-11-01 00:31:57 +03:00
unknown
6224001c4f Fix for
Bug#29290 type_datetime.test failure in 5.1


mysql-test/t/type_datetime.test:
  - If we are too close to midnight sleep till we reach 
    at least midnight + 1 second.
  - Replace error numbers with error names.
2007-10-31 17:40:29 +01:00
unknown
1603139dd5 Merge stella.local:/home2/mydev/mysql-5.1-amain
into  stella.local:/home2/mydev/mysql-5.1-axmrg


mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
sql/ha_partition.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
2007-10-31 13:13:20 +01:00
unknown
ee4452dba4 Bug #31893 Partitions: crash if subpartitions and engine change.
The new default database engine for altered table was reassigned to
the old one. That's wrong thing by itself, and (as the engine
for a subpartition gets that new value) leads to DBUG_ASSERTION
in mysql_unpack_partition()


mysql-test/r/partition.result:
  Bug #31893 Partitions: crash if subpartitions and engine change.
  
  test result
mysql-test/t/partition.test:
  Bug #31893 Partitions: crash if subpartitions and engine change.
  
  test case
sql/sql_partition.cc:
  Bug #31893 Partitions: crash if subpartitions and engine change.
  
  Don't change part_info->default_engine_type if it's already set
2007-10-31 16:01:29 +04:00
unknown
c4f35d7c23 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
sql/item_func.cc:
  Auto merged
2007-10-31 12:31:36 +01:00
unknown
47d17e5d7f Fix for a BUG#31649: events.test fails: NULL "state" field of
SHOW PROCESSLIST.

The problem was a race condition: if the Event Scheduler was not
quick enough, the following scenario happens:
  - The Event Scheduler picks up the created event;
  - The event is executed;
  - event_scheduler_thread->proc_info is set to NULL;
  - The client issues SELECT FROM I_S.

The fix is to wait for the Event Scheduler to reach 'Waiting
for next activation' state. 


mysql-test/t/events.test:
  Wait for the Event Scheduler to start waiting for the activation.
2007-10-31 12:04:19 +03:00
unknown
77c8c76f8d Fix result files after patch for BUG#31035.
mysql-test/r/group_min_max.result:
  Update result file.
mysql-test/r/index_merge_myisam.result:
  Update result file.
2007-10-31 09:53:58 +03:00
unknown
967c06df13 Merge stella.local:/home2/mydev/mysql-4.1-amain
into  stella.local:/home2/mydev/mysql-4.1-axmrg
2007-10-31 00:50:03 +01:00
unknown
bf18f6d4b8 Bug#30904 SET PASSWORD statement is non-transactional
The SET PASSWORD statement is non-transactional (no explicit transaction
boundaries) in nature and hence is forbidden inside stored functions and
triggers, but it weren't being effectively forbidden.

The implemented fix is to issue a implicit commit with every SET PASSWORD
statement, effectively prohibiting these statements in stored functions
and triggers. 


mysql-test/r/sp-error.result:
  Add test case result for Bug#30904
mysql-test/t/sp-error.test:
  Add test case for Bug#30904
sql/sql_lex.h:
  Add variable to set that a statement with SET PASSWORD causes a implicit
  commit.
sql/sql_parse.cc:
  End active transaction in SET PASSWORD.
sql/sql_yacc.yy:
  Set the correct flag on SET PASSWORD if inside a SP, thus effectively
  prohibiting SET PASSWORD statements in stored functions and triggers.
2007-10-30 20:51:04 -02:00
unknown
173d8d7926 Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build


mysql-test/mysql-test-run.pl:
  Auto merged
2007-10-30 15:39:02 +01:00
unknown
e3b246d6e8 Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-10-30 15:37:48 +01:00
unknown
0ca87f8e69 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build-work


mysql-test/mysql-test-run.pl:
  Auto merged
2007-10-30 15:24:17 +01:00
unknown
b0bc908cbf bug#30630 2007-10-30 15:22:52 +01:00
unknown
abdb052bae Merge magare.gmz:/home/kgeorge/mysql/work/B31884-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B31884-5.1-opt


sql/item_subselect.h:
  Auto merged
mysql-test/r/subselect.result:
  merged the fix for bug 31884 to 5.1-opt
mysql-test/t/subselect.test:
  merged the fix for bug 31884 to 5.1-opt
2007-10-30 16:21:17 +02:00
unknown
95acd426eb Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31884-5.0-opt
2007-10-30 16:18:56 +02:00
unknown
bec59619ce correct result file 2007-10-30 14:52:12 +01:00
unknown
145403fd35 correct manual merge 2007-10-30 14:04:41 +01:00
unknown
6bbdacae20 Bug #31884: Assertion + crash in subquery in the SELECT clause.
Item_in_subselect's only externally callable method is val_bool().
However the nullability in the wrapper class (Item_in_optimizer) is 
established by calling the "forbidden" method val_int().

Fixed to use the correct method (val_bool() ) to establish nullability 
of Item_in_subselect in Item_in_optimizer.


mysql-test/r/subselect.result:
  Bug #31884: test case
mysql-test/t/subselect.test:
  Bug #31884: test case
sql/item_subselect.h:
  Bug #31884: Use the correct method to establish nullability
2007-10-30 14:27:21 +02:00
unknown
5f4783cf4b Make sure rpl.rpl_innodb_mixed_dml passes even if rpl_mixed.dat is read-only.
This is important for a development environment where not all source files
are checked out.
2007-10-30 15:25:39 +03:00
unknown
dd3abf5046 Post-merge fix 2007-10-30 12:03:44 +01:00
unknown
b698b6fd94 BUG#11392 - fulltext search bug
Fulltext boolean mode phrase search may crash server on platforms
where size of pointer is not equal to size of unsigned integer
(in other words some 64-bit platforms).

The problem was integer overflow.

Affects 4.1 only.


myisam/ft_boolean_search.c:
  my_match_t::beg is unsigned int, that means type of expression
  (m[0].beg - 1) has unsigned type too. It may happen that instr()
  finds substring in the beggining of passed string, returning
  m[0].beg equal to 0. In this case value of expression (m[0].beg - 1)
  is equal to MAX_UINT.
  
  This is not a problem on platforms where sizeof(pointer) equals to
  sizeof(uint). That means ptr[(uint)-1] = ptr[(uint)MAX_UINT] = ptr - 1.
  
  On some 64-bit platforms where sizeof(pointer) is 8 and sizeof(uint)
  is 4, wrong address gets accessed. In other words ptr[(uint)-1] is
  equal to ptr + MAX_UINT.
mysql-test/r/fulltext.result:
  A test case for BUG#11392.
mysql-test/t/fulltext.test:
  A test case for BUG#11392.
2007-10-30 14:46:43 +04:00
unknown
c84d4b2139 Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


mysql-test/suite/rpl/r/rpl_bug31076.result:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
storage/ndb/include/ndbapi/Ndb.hpp:
  Auto merged
mysql-test/suite/rpl/t/rpl_bug31076.test:
  manual merge
2007-10-30 11:28:19 +01:00
unknown
9fa501f0a9 Merge stella.local:/home2/mydev/mysql-5.0-bug4692
into  stella.local:/home2/mydev/mysql-5.1-bug4692


mysql-test/r/myisam.result:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Manual merge
mysql-test/t/myisam.test:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Manual merge
storage/myisam/mi_check.c:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Manual merge
2007-10-30 09:51:05 +01:00
unknown
e722393f51 Bug #31758 inet_ntoa, oct crashes server with null+filesort
Item_func_inet_ntoa and Item_func_conv inherit 'maybe_null' flag from an
argument, which is wrong.
Both can be NULL with notnull arguments, so that's fixed.


mysql-test/r/func_str.result:
  Bug #31758 inet_ntoa, oct crashes server with null+filesort
  
  test case
mysql-test/t/func_str.test:
  Bug #31758 inet_ntoa, oct crashes server with null+filesort
  
  test result
sql/item_strfunc.h:
  Bug #31758 inet_ntoa, oct crashes server with null+filesort
  
  missing maybe_null flags set for Item_func_inet_ntoa and Item_func_conv
2007-10-30 12:35:03 +04:00
unknown
bd00ccb710 Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  trift2.:/MySQL/M51/push-5.1
2007-10-29 23:13:28 +01:00
unknown
f139033063 Merge lambda.weblab:/home/malff/TREE/mysql-5.1-base
into  lambda.weblab:/home/malff/TREE/mysql-5.1-rt-merge


mysql-test/include/mix1.inc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-10-29 08:07:27 -06:00
unknown
24ede323cc Merge lambda.weblab:/home/malff/TREE/mysql-5.0-base
into  lambda.weblab:/home/malff/TREE/mysql-5.0-rt-merge


sql/sql_table.cc:
  Auto merged
2007-10-29 07:53:15 -06:00
unknown
7c92f118e4 Fix for BUG#27610: ALTER TABLE ROW_FORMAT=... does not
rebuild the table.

The problem was that ROW_FORMAT clause in ALTER TABLE did not trigger
table reconstruction.

The fix is to rebuild a table if ROW_FORMAT is specified.


mysql-test/include/mix1.inc:
  Add a test case for BUG#27610: ALTER TABLE ROW_FORMAT=... does not
  rebuild the table.
mysql-test/r/innodb_mysql.result:
  Update result file.
sql/sql_table.cc:
  Rebuild a table if ROW_FORMAT was specified in ALTER TABLE.
2007-10-29 15:42:49 +03:00
unknown
a861c70d6b Merge trift2.:/MySQL/M51/mysql-5.1
into  trift2.:/MySQL/M51/push-5.1


configure.in:
  Auto merged
mysql-test/suite/funcs_1/r/innodb__datadict.result:
  Auto merged
mysql-test/suite/funcs_1/r/memory__datadict.result:
  Auto merged
mysql-test/suite/funcs_1/r/myisam__datadict.result:
  Auto merged
mysql-test/r/partition.result:
  Ensure test for bug number 27816 is in the merged tree.
mysql-test/t/partition.test:
  Ensure test for bug number 27816 is in the merged tree.
2007-10-29 12:56:48 +01:00