Commit graph

36631 commits

Author SHA1 Message Date
unknown
e4cd7e985f Merge bk-internal:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28992-5.0-opt
2007-06-12 14:37:14 +03:00
unknown
030bb02b69 Bug #28992: trigger fails in pushbuild
- fixed wrong test case for bug 20903
 - closed the dangling connections in trigger.test
 - GET_LOCK() and RELEASE_LOCK() now produce more detailed log
 - fixed an omission in GET_LOCK() : assign the thread_id when
    acquiring the lock.


mysql-test/r/trigger.result:
  Bug #28992: test case updated
mysql-test/t/trigger.test:
  Bug #28992: test case updated. dangling connections closed.
sql/item_func.cc:
  Bug #28992: 
   - GET_LOCK() and RELEASE_LOCK() now produce more detailed log
   - fixed an omission in GET_LOCK() : assign the thread_id when
      acquiring the lock.
2007-06-12 14:35:36 +03:00
unknown
e43380e8b7 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28934-5.0-opt
2007-06-12 11:11:12 +03:00
unknown
e164c08eaf Bug #28934: server crash when receiving malformed com_execute packets
Sometimes a parameter slot may not get a value because of the protocol
 data being plain wrong.
 Such cases should be detected and handled by returning an error.
 Fixed by checking data stream constraints where possible (like maximum
 length) and reacting to the case where a value cannot be constructed.


sql/sql_prepare.cc:
  Bug #28934: 
   - check for a parameter slot not being set because 
      of wrong data
   - check if the length read from the stream is not
      greater than the maximum length of the field
tests/mysql_client_test.c:
  Bug #28934: test case
2007-06-12 11:02:34 +03:00
unknown
ccf393b67a Bug#28904: INSERT .. ON DUPLICATE was silently updating rows when it shouldn't.
When the INSERT .. ON DUPLICATE KEY UPDATE has to update a matched row but
the new data is the same as in the record then it returns as if
no rows were inserted or updated. Nevertheless the row is silently
updated. This leads to a situation when zero updated rows are reported 
in the case when data has actually been changed.

Now the write_record function updates a row only if new data differs from
that in the record.


sql/sql_insert.cc:
  Bug#28904: INSERT .. ON DUPLICATE was silently updating rows when it shouldn't.
  Now the write_record function updates a row only if new data differs from
  that in the record.
mysql-test/r/insert_update.result:
  Added a test case for the bug#28904: INSERT .. ON DUPLICATE was silently
  updating rows when it shouldn't.
mysql-test/t/insert_update.test:
  Added a test case for the bug#28904: INSERT .. ON DUPLICATE was silently
  updating rows when it shouldn't.
2007-06-12 01:41:23 +04:00
unknown
59d139eb29 compiler warning fix 2007-06-09 18:18:34 +05:00
unknown
9c93c5b992 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2007-06-09 17:46:34 +05:00
unknown
71aa571d09 Bug#28149 overflow in some "SHOW STATUS"-variables
changed bytes_received, bytes_sent status variables to longlong


sql/mysqld.cc:
  changed bytes_received, bytes_sent status variables to longlong
sql/sql_class.h:
  changed bytes_received, bytes_sent status variables to longlong
sql/sql_show.cc:
  changed bytes_received, bytes_sent status variables to longlong
sql/structs.h:
  changed bytes_received, bytes_sent status variables to longlong
2007-06-09 17:46:09 +05:00
unknown
6329053f95 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/28333/my50-28333
2007-06-09 16:52:38 +05:00
unknown
ce4e9f7580 Bug#28266 IS_UPDATABLE field on VIEWS table in I_S database is wrong
IS_UPDATABLE flag is set to 'yes' when the view has at least one updatable column and
the algorithm is not 'temporary'.


mysql-test/r/information_schema.result:
  test result
mysql-test/r/view.result:
  test result
mysql-test/t/information_schema.test:
  test case
mysql-test/t/view.test:
  test case
sql/sql_show.cc:
  IS_UPDATABLE flag is set to 'yes' when the view has at least one updatable column and
  the algorithm is not 'temporary'.
2007-06-09 16:52:37 +05:00
unknown
cb460d88b9 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/28333/my50-28333
2007-06-09 15:56:04 +05:00
unknown
d1a8d7f431 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28754-5.0-opt
2007-06-09 09:02:21 +03:00
unknown
99b4321ac5 Bug #28333 Test "flush" tries to create a new thread - on only one platform
on PPC/Debian Linux default stack size for a thread is too big.
As we use default thread settings in mysqltest, the
thread creation fails if we create lots of threads (as it
happens in flush.test). So now stack size is explicitly specified
for the mysqltest


client/mysqltest.c:
  Bug #28333 Test "flush" tries to create a new thread - on only one platform
  
  specify appropriate stack size for the 'query' thread
2007-06-09 00:39:23 +05:00
unknown
22d488e42b Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28811
2007-06-08 09:59:07 -07:00
unknown
2b274a60d5 Bug #28754: RPM builds differ from tar.gz in "ALTER ... RENAME" on views
When constructing the path to the original .frm file ALTER .. RENAME
 was unnecessary (and incorrectly) lowercasing the whole path when not 
 on a case-insensitive filesystem.
 This path should not be modified because of lower_case_table_names
 as it is already in the correct case according to that setting.
 Fixed by removing the lowercasing.
 Unfortunately testing this would require running the tests on a case
 sensitive filesystem in a directory that has uppercase letters.
 This cannot be guaranteed in all setups so no test case added.


sql/sql_table.cc:
  Bug #28754: don't downcase the .frm path
2007-06-08 13:42:10 +03:00
unknown
5031a418e5 Bug#18660 Can't grant any privileges on single table in database with underscore char
In case of database level grant the database name may be a pattern,
in case of table|column level grant the database name can not be a pattern.
We use 'dont_check_global_grants' as a flag to determine
if it's database level grant command 
(see SQLCOM_GRANT case, mysql_execute_command() function) and
set db_is_pattern according to 'dont_check_global_grants' value.


mysql-test/r/grant2.result:
  test result
mysql-test/t/grant2.test:
  test case
sql/sql_parse.cc:
  In case of database level grant the database name may be a pattern,
  in case of table|column level grant the database name can not be a pattern.
  We use 'dont_check_global_grants' as a flag to determine
  if it's database level grant command 
  (see SQLCOM_GRANT case, mysql_execute_command() function) and
  set db_is_pattern according to 'dont_check_global_grants' value.
2007-06-08 14:42:08 +05:00
unknown
d8e2f2622d Fixed bug #28811: crash for a query containing a subquery with
ORDER BY and LIMIT 1. 
The bug was introduced by the patch for bug 21727. The patch
erroneously skipped initialization of the array of headers
for sorted records for non-first evaluations of the subquery.

To fix the problem a new parameter has been added to the
function make_char_array that performs the initialization.
Now this function is called for any invocation of the 
filesort procedure. Yet it allocates the buffer for sorted
records only if this parameter is NULL.


mysql-test/r/subselect.result:
  Added a test case for bug #28811.
mysql-test/t/subselect.test:
  Added a test case for bug #28811.
2007-06-07 22:35:31 -07:00
unknown
88d5c0146b Correction to remove compilee warnings and compiler errors on Windows. 2007-06-07 15:04:39 -07:00
unknown
5a148ba5fa Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/28763-bug-5.0-opt-mysql
2007-06-08 00:58:31 +04:00
unknown
18310fabf4 Bug#28763: Selecting geometry fields in UNION caused server crash.
This bug was introduced by the fix for the bug#27300. In this fix a section
of code was added to the Item::tmp_table_field_from_field_type method.
This section intended to create Field_geom fields for the Item_geometry_func
class and its descendants. In order to get the geometry type of the current
item it casted "this" to the Item_geometry_func* type. But the
Item::tmp_table_field_from_field_type method is also used for creation of
fields for UNION and in this case this method is called for an object of the
Item_type_holder class and the cast to the Item_geometry_func* type causes 
a server crash.

Now the Item::tmp_table_field_from_field_type method correctly works when it's
called for both the Item_type_holder and the Item_geometry_func classes.
The new geometry_type variable is added to the Item_type_holder class.
The new method called get_geometry_type is added to the Item_field
and the Field classes. It returns geometry type from the field for the
Item_field and the Field_geom classes and fails an assert for other Field
descendants.


sql/field.h:
  Bug#28763: Selecting geometry fields in UNION caused server crash.
  The new method called get_geometry_type is added to the Field class.
  It returns geometry type of the field for the Field_geom class
  and fails an assert for other Field descendants.
sql/item.cc:
  Bug#28763: Selecting geometry fields in UNION caused server crash.
  Now the Item::tmp_table_field_from_field_type method correctly works when it's
  called for both the Item_type_holder and the Item_geometry_func classes.
mysql-test/r/gis.result:
  Added a test case for the bug#28763: Selecting geometry fields in UNION caused server crash.
mysql-test/t/gis.test:
  Added a test case for the bug#28763: Selecting geometry fields in UNION caused server crash.
sql/item.h:
  Bug#28763: Selecting geometry fields in UNION caused server crash.
  The new method called get_geometry_type is added to the Item_field class.
  It returns geometry type from the field.
  The new geometry_type variable is added to the Item_type_holder class.
2007-06-08 00:33:03 +04:00
unknown
2ad832032b Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28449
2007-06-07 10:26:38 -07:00
unknown
89d96dd48e Fixed bug #28449: a crash may happen at some rare conditions when
a temporary table has grown out of heap memory reserved for it and 
the remaining disk space is not big enough to store the table as
a MyISAM table.

The crash happens because the function create_myisam_from_heap
does not handle safely the mem_root structure associated 
with the converted table in the case when an error has occurred.


sql/sql_select.cc:
  Fixed bug #28449: a crash may happen at some rare conditions when
  a temporary table has grown out of heap memory reserved for it and 
  the remaining disk space is not big enough to store the table as
  a MyISAM table.
  
  The crash happens because the function create_myisam_from_heap
  does not handle safely the mem_root structure associated 
  with the converted table in the case when an error has occurred.
  
  As it's hard to create a sitiation that would throw an error 
  a special code has been added that raises an error for a newly 
  created test called error_simulation.
mysql-test/r/error_simulation.result:
  New BitKeeper file ``mysql-test/r/error_simulation.result''
  
  Added a test case for bug #28449.
mysql-test/t/error_simulation-master.opt:
  New BitKeeper file ``mysql-test/t/error_simulation-master.opt''
mysql-test/t/error_simulation.test:
  New BitKeeper file ``mysql-test/t/error_simulation.test''
  
  Added a test case for bug #28449.
2007-06-07 00:59:08 -07:00
unknown
81d32d9a87 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28878-5.0-opt
2007-06-07 10:10:18 +03:00
unknown
970b26e679 Bug#28878: InnoDB tables with UTF8 character set and indexes cause
wrong result for DML
When making key reference buffers over CHAR fields whitespace (0x20) 
must be used to fill in the remaining space in the field's buffer.
This is what Field_string::store() does.
Fixed Field_string::get_key_image() to do the same.


mysql-test/r/innodb_mysql.result:
  Bug#28878: test case
mysql-test/t/innodb_mysql.test:
  Bug#28878: test case
sql/field.cc:
  Bug#28878: Fill with space instead of binary zeros.
2007-06-07 10:08:44 +03:00
unknown
8d0d27b5a4 Bug#28505: mysql_affected_rows() may return wrong result if CLIENT_FOUND_ROWS
flag is set.

When the CLIENT_FOUND_ROWS flag is set then the server should return
found number of rows independently whether they were updated or not.
But this wasn't the case for the INSERT statement which always returned
number of rows that were actually changed thus providing wrong info to
the user.

Now the select_insert::send_eof method and the mysql_insert function
are sending the number of touched rows if the CLIENT_FOUND_ROWS flag is set.


tests/mysql_client_test.c:
  Added a test case for the bug#28505: mysql_affected_rows() may return wrong result
  if CLIENT_FOUND_ROWS flag is set.
sql/sql_insert.cc:
  Bug#28505: mysql_affected_rows() may return wrong result if CLIENT_FOUND_ROWS
  flag is set.
  Now the select_insert::send_eof method and the mysql_insert function
  are sending the number of touched rows if the CLIENT_FOUND_ROWS flag is set.
2007-06-07 00:30:00 +04:00
unknown
64c6a91d40 after merge fix 2007-06-06 18:55:21 +05:00
unknown
98c7c87e45 Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt


mysql-test/r/subselect.result:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/t/subselect.test:
  manual merge
2007-06-06 18:33:04 +05:00
unknown
593afb6a73 Bug#28553 mysqld crash in "purge master log before(select time from information_schema)"
forbid the use of subselect in PURGE LOGS BEFORE command


mysql-test/r/subselect.result:
  test result
mysql-test/t/subselect.test:
  test case
sql/sql_yacc.yy:
  forbid the use of subselect in PURGE LOGS BEFORE command
2007-06-06 18:29:15 +05:00
unknown
0304a13ee7 Bug#28778: Wrong result of BETWEEN when comparing a DATETIME field with an
integer constants.

This bug is introduced by the fix for bug#16377. Before the fix the 
Item_func_between::fix_length_and_dec method converted the second and third
arguments to the type of the first argument if they were constant and the first
argument is of the DATE/DATETIME type. That approach worked well for integer
constants and sometimes produced bad result for string constants. The fix for
the bug#16377 wrongly removed that code at all and as a result of this the
comparison of a DATETIME field and an integer constant was carried out in a
wrong way and sometimes led to wrong result sets.

Now the Item_func_between::fix_length_and_dec method converts the second and
third arguments to the type of the first argument if they are constant, the
first argument is of the DATE/DATETIME type and the DATETIME comparator isn't
applicable.


sql/item_cmpfunc.cc:
  Bug#28778: Wrong result of BETWEEN when comparing a DATETIME field with an
  integer constants.
  Now the Item_func_between::fix_length_and_dec method converts the second and
  third arguments to the type of the first argument if they are constant, the
  first argument is of the DATE/DATETIME type and the DATETIME comparator isn't
  applicable.
mysql-test/r/type_datetime.result:
  Added a test case for the bug#28778: Wrong result of BETWEEN when comparing a DATETIME
  field with an integer constants.
mysql-test/t/type_datetime.test:
  Added a test case for the bug#28778: Wrong result of BETWEEN when comparing a DATETIME
  field with an integer constants.
2007-06-06 00:25:06 +04:00
unknown
e409a8a5c0 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/dev/shm/mhansson/my50-bug27741


mysql-test/mysql-test-run.pl:
  Auto merged
2007-06-04 09:26:54 +02:00
unknown
7b8af0f555 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
2007-06-03 07:58:07 -07:00
unknown
eb958affe3 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
2007-06-03 16:00:04 +04:00
unknown
e19dcfa91f user_var.result:
Corrected test case result for the bug#28494.
item_func.h, item_func.cc:
  Corrected function names after fix for the bug#28494.


mysql-test/r/user_var.result:
  Corrected test case result for the bug#28494.
sql/item_func.h:
  Corrected function names after fix for the bug#28494.
sql/item_func.cc:
  Corrected function names after fix for the bug#28494.
2007-06-03 15:56:48 +04:00
unknown
a6f1d558f1 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
2007-06-03 14:46:37 +04:00
unknown
4ef028600a user_var.result, user_var.test:
Extended test case for the bug#28494.


mysql-test/t/user_var.test:
  Extended test case for the bug#28494.
mysql-test/r/user_var.result:
  Extended test case for the bug#28494.
2007-06-03 14:46:09 +04:00
unknown
6c403ec920 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
2007-06-03 00:21:42 -07:00
unknown
b313fe1352 Merge bk-internal:/home/bk/mysql-5.0-opt
into  macbook.gmz:/Users/kgeorge/mysql/work/B26162-5.0-opt


mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-06-03 10:03:37 +03:00
unknown
f9a41f9f35 Bug #26162: Trigger DML ignores low_priority_updates setting
The value of "low-priority-updates" option and the LOW PRIORITY
prefix was taken into account at parse time.
This caused triggers (among others) to ignore this flag (if
supplied for the DML statement).
Moved reading of the LOW_PRIORITY flag at run time.
Fixed an incosistency when handling
SET GLOBAL LOW_PRIORITY_UPDATES : now it is in effect for
delayed INSERTs.
Tested by checking the effect of LOW_PRIORITY flag via a 
trigger.


include/thr_lock.h:
  Bug #26162: moved reading of the LOW PRIORITY flag at run time
mysql-test/r/trigger.result:
  Bug #26162: test case
mysql-test/t/trigger.test:
  Bug #26162: test case
sql/set_var.cc:
  Bug #26162: fixed the handling of the "low-priority-updates" option
sql/sql_base.cc:
  Bug #26162: moved reading of the LOW PRIORITY flag at run time
sql/sql_yacc.yy:
  Bug #26162: moved reading of the LOW PRIORITY flag at run time
2007-06-03 09:40:00 +03:00
unknown
04e2d15257 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
2007-06-02 14:37:42 -07:00
unknown
8ded1e817b Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
2007-06-03 01:25:24 +04:00
unknown
684653b89e item_func.cc:
Post fix for bug#28494.
  The Item_func_set_user_var::check method now silently doesn't use result_field
  if it isn't defined.


sql/item_func.cc:
  Post fix for bug#28494.
  The Item_func_set_user_var::check method now silently doesn't use result_field
  if it isn't defined.
2007-06-03 01:24:56 +04:00
unknown
5c23a1c7f8 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
2007-06-02 12:46:48 -07:00
unknown
bce9860dcb Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
2007-06-02 23:20:54 +04:00
unknown
8ab1830f9a Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
This is an additional fix.
Item::val_xxx methods are supposed to use original data source and
Item::val_xxx_result methods to use the item's result field. But for the
Item_func_set_user_var class val_xxx_result methods were mapped to val_xxx
methods. This leads, in particular, to producing bad sort keys and thus
wrong order of the result set of queries with group by/order by clauses.

The set of val_xxx_result methods is added to the Item_func_set_user_var
class. It's the same as the val_xxx set of method but uses the result_field
to return a value.


mysql-test/t/user_var.test:
  Corrected test case for hte bug#28494.
mysql-test/r/user_var.result:
  Corrected test case for hte bug#28494.
sql/item_func.cc:
  Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
  The set of val_xxx_result methods is added to the Item_func_set_user_var
  class. It's the same as the val_xxx set of method but uses the result_field
  to return a value.
sql/item_func.h:
  Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
  The set of val_xxx_result methods is added to the Item_func_set_user_var
  class.
2007-06-02 23:17:46 +04:00
unknown
8c4ff24b56 Fixed bug #28728: a crash when executing EXPLAIN EXTENDED for a query
using a derived table over a grouping subselect.

This crash happens only when materialization of the derived tables 
requires creation of auxiliary temporary table, for example when
a grouping operation is carried out with usage of a temporary table.

The crash happened because EXPLAIN EXTENDED when printing the query
expression made an attempt to use the objects created in the mem_root
of the temporary table which has been already freed by the moment
when printing is called.

This bug appeared after the method Item_field::print() had been 
introduced.    


mysql-test/r/subselect.result:
  Added a test case for bug #28728.
mysql-test/t/subselect.test:
  Added a test case for bug #28728.
sql/sql_select.cc:
  Fixed bug #28728: a crash when executing EXPLAIN EXTENDED for a query
  using a derived table over a grouping subselect.
  The crash happened because EXPLAIN EXTENDED when printing the query
  expression made an attempt to use the objects created in the mem_root
  of the temporary table which has been already freed by the moment
  when printing is accomplished.
  The fix in JOIN::exec() ensures using existing objects when printing 
  subselects for a derived tables by EXPLAIN EXTENDED.
2007-06-02 11:44:16 -07:00
unknown
0ec40a459e Post-merge fix. 2007-06-01 17:58:46 -07:00
unknown
5697c0c10c Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/strict.test:
  Auto merged
mysql-test/t/subselect3.test:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Manual merge
2007-06-02 00:57:25 +02:00
unknown
e21076463c Fix more mysqltest warnings. 2007-06-01 20:05:34 +04:00
unknown
a00e5c6896 Do not ignore mysqltest language interpreter warnings. 2007-06-01 18:06:40 +04:00
unknown
68cc0a34b7 Fix a typo in the test case.
mysql-test/r/rpl_loaddata.result:
  Update result.
mysql-test/t/rpl_loaddata.test:
  Fix a typo in the test file.
2007-06-01 18:04:25 +04:00