Commit graph

16794 commits

Author SHA1 Message Date
unknown
7d944077fa Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt


mysql-test/r/view.result:
  Auto merged
2007-05-30 17:09:16 +05:00
unknown
11b084102d backport of Bug#11491 Misleading error message if not NULL column set to NULL, SQL mode TRADITIONAL
mysql-test/r/auto_increment.result:
  result fix
mysql-test/r/create.result:
  result fix
mysql-test/r/insert.result:
  result fix
mysql-test/r/insert_select.result:
  result fix
mysql-test/r/insert_update.result:
  result fix
mysql-test/r/key.result:
  result fix
mysql-test/r/null.result:
  result fix
mysql-test/r/null_key.result:
  result fix
mysql-test/r/ps_2myisam.result:
  result fix
mysql-test/r/ps_3innodb.result:
  result fix
mysql-test/r/ps_4heap.result:
  result fix
mysql-test/r/ps_5merge.result:
  result fix
mysql-test/r/ps_6bdb.result:
  result fix
mysql-test/r/ps_7ndb.result:
  result fix
mysql-test/r/strict.result:
  result fix
mysql-test/r/view.result:
  result fix
mysql-test/r/warnings.result:
  result fix
mysql-test/t/strict.test:
  test fix
2007-05-30 17:04:04 +05:00
unknown
6e330800a8 Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28716
2007-05-30 16:41:16 +05:00
unknown
01f205049b sql_update.cc:
Fixed bug #28716: additional patch to eliminate compilation
  error under Windows.


sql/sql_update.cc:
  Fixed bug #28716: additional patch to eliminate compilation
  error under Windows.
2007-05-30 16:39:25 +05:00
unknown
6fa44b38e6 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt


mysql-test/r/view.result:
  Auto merged
2007-05-30 15:46:23 +05:00
unknown
a5c232a0e0 Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28716


sql/sql_class.h:
  Auto merged
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
2007-05-30 14:34:52 +05:00
unknown
98b5043a3d Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28492-5.0-opt


mysql-test/r/sp.result:
  Auto merged
2007-05-30 11:23:39 +03:00
unknown
94507ee756 Fixed bug #28716.
The result of the CHECK OPTION condition evaluation over an
updated record and records of merged tables was arbitrary and
dependant on the order of records in the merged tables during
the execution of SELECT statement.

The CHECK OPTION expression was evaluated over expired record
buffers (with arbitrary data in the fields).

Rowids of tables used in the CHECK OPTION expression were
added to temporary table rows. The multi_update::do_updates()
method was modified to restore necessary record buffers
before evaluation of the CHECK OPTION condition.


sql/sql_class.h:
  Fixed bug #29716.
  The multi_update::unupdatable_check_opt_tables variable
  has been added.
sql/sql_update.cc:
  Fixed bug #29716.
  Rowids of tables used in the CHECK OPTION expression were
  added to temporary table rows. The multi_update::do_updates()
  method was modified to restore necessary record buffers
  before evaluation of the CHECK OPTION condition.
mysql-test/t/view.test:
  Updated test case for bug #28716.
mysql-test/r/view.result:
  Updated test case for bug #28716.
2007-05-30 12:21:39 +05:00
unknown
5462e46bf5 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28605-5.0-opt
2007-05-30 10:02:22 +03:00
unknown
4e9cef545c Bug #28492: subselect returns LONG in >5.0.24a and LONGLONG in <=5.0.24a
Integer values with 10 digits may or may not fit into an int column 
(e.g. 2147483647 vs 6147483647).
Thus when creating a temp table column for such an int we must
use bigint instead.
Fixed to use bigint.
Also subsituted a "magic number" with a named constant.


mysql-test/r/analyse.result:
  Bug #28492: Adjusted the results after having fixed the bug
mysql-test/r/metadata.result:
  Bug #28492: test case
mysql-test/r/olap.result:
  Bug #28492: Adjusted the results after having fixed the bug
mysql-test/r/sp.result:
  Bug #28492: Adjusted the results after having fixed the bug
mysql-test/r/view.result:
  Bug #28492: Adjusted the results after having fixed the bug
mysql-test/t/metadata.test:
  Bug #28492: test case
sql/field.h:
  Bug #28492: Replaced a magic number with a constant
sql/sql_select.cc:
  Bug #28492: Treat integers with 10 and more digits as 
  bigint.
2007-05-30 09:55:38 +03:00
unknown
d393c9e666 Bug#28450: The Item_date_add_interval in select list may fail the field
type assertion.

The bug was introduced by the patch for bug #16377.
The "+ INTERVAL" (Item_date_add_interval) function detects its result type
by the type of its first argument. But in some cases it returns STRING
as the result type. This happens when, for example, the first argument is a 
DATE represented as string. All this makes the get_datetime_value()
function misinterpret such result and return wrong DATE/DATETIME value.
To avoid such cases in the fix for #16377 the code that detects correct result
field type on the first execution was added to the
Item_date_add_interval::get_date() function. Due to this the result
field type of the Item_date_add_interval item stored by the send_fields()
function differs from item's result field type at the moment when
the item is actually sent. It causes an assertion failure.

Now the get_datetime_value() detects that the DATE value is returned by
some item not only by checking the result field type but also by comparing
the returned value with the 100000000L constant - any DATE value should be
less than this value.
Removed result field type adjusting code from the
Item_date_add_interval::get_date() function.


sql/item_cmpfunc.cc:
  Bug#28450: The Item_date_add_interval in select list may fail the field 
  type assertion.
  Now the get_datetime_value() detects that the DATE value is returned by
  some item not only by checking the result field type but also by comparing
  the returned value with the 100000000L constant - any DATE value should be
  less than this value.
mysql-test/r/func_date_add.result:
  Added a test case for the bug#28450: The Item_date_add_interval in select list may fail the field
  type assertion.
sql/item_timefunc.cc:
  Bug#28450: The Item_date_add_interval in select list may fail the field 
  type assertion.
  Removed result field type adjusting code from the
  Item_date_add_interval::get_date() function.
mysql-test/t/func_date_add.test:
  Added a test case for the bug#28450: The Item_date_add_interval in select list may fail the field
  type assertion.
2007-05-30 00:33:12 +04:00
unknown
9e06efb45c Bug #28605: SHOW CREATE VIEW with views using stored_procedures no
longer showing SP names.
SHOW CREATE VIEW uses Item::print() methods to reconstruct the 
statement text from the parse tree.
The print() method for stored procedure calls needs allocate 
space to print the function's quoted name.
It was incorrectly calculating the length of the buffer needed 
(was too short).
Fixed to reflect the actual space needed.


mysql-test/r/sp.result:
  Bug #28605: test case
mysql-test/t/sp.test:
  Bug #28605: test case
sql/item_func.cc:
  Bug #28605: fixed the string length calculation
2007-05-29 14:45:30 +03:00
unknown
d7a90fa172 Post-merge fix. 2007-05-27 20:14:50 -07:00
unknown
11dd353e12 Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt


client/mysqldump.c:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/ps_2myisam.result:
  Auto merged
mysql-test/r/ps_3innodb.result:
  Auto merged
mysql-test/r/ps_4heap.result:
  Auto merged
mysql-test/r/ps_5merge.result:
  Auto merged
mysql-test/r/ps_6bdb.result:
  Auto merged
mysql-test/r/ps_7ndb.result:
  Auto merged
sql/field.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/my_decimal.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-05-28 00:05:38 +02:00
unknown
5f99cf963e Avoided warnings on Windows. 2007-05-26 13:19:36 -07:00
unknown
faf03194f8 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28571
2007-05-26 11:30:23 -07:00
unknown
90484de3f7 Fixed bug #28571. Outer join queries with ON conditions over
constant outer tables did not return null complemented
rows when conditions were evaluated to FALSE.
Wrong results were returned because the conditions over constant
outer tables, when being pushed down, were erroneously enclosed 
into the guard function used for WHERE conditions.


mysql-test/r/join_outer.result:
  Added a test case for bug #28571.
mysql-test/t/join_outer.test:
  Added a test case for bug #28571.
sql/sql_select.cc:
  Fixed bug #28571. Outer join queries with ON conditions over
  constant outer tables did not return null complemented
  rows when conditions were evaluated to FALSE.
  Wrong results were returned because the conditions over constant
  outer tables, when being pushed down, were erroneously enclosed 
  into the guard function used for WHERE conditions.
  The problem is fixed in the function make_join_select. Now the
  conditions over constant tables from ON expressions are pushed
  down after the conditions from WHERE has been pushed down.
2007-05-26 10:33:01 -07:00
unknown
5a5c256ffd field.h:
Warnings elimination.


sql/field.h:
  Warnings elimination.
2007-05-26 00:44:13 +05:00
unknown
33f40d86e1 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28561
2007-05-24 16:16:19 -07:00
unknown
48af05a8e9 Fixed bug #28561: assertion abort for update on multi-table view with
CHECK OPTION and a subquery in WHERE condition.
The abort was triggered by setting the value of join->tables for
subqueries in the function JOIN::cleanup. This function was called
after an invocation of the JOIN::join_free method for subqueries
used in WHERE condition.


mysql-test/r/view.result:
  Added a test case for bug #28561.
mysql-test/t/view.test:
  Added a test case for bug #28561.
sql/sql_select.cc:
  Fixed bug #28561: assertion abort for update on multi-table view with
  CHECK OPTION and a subquery in WHERE condition.
  The abort was triggered by setting the value of join->tables for
  subqueries in the function JOIN::cleanup. This function was called
  after an invocation of the JOIN::join_free method for subqueries
  used in WHERE condition.
  Setting the value of join->tables to for a subquery created serious
  problems for checking WHERE condition after update of the multi-table
  view as this check is performed in the do_select function right
  after a call of the JOIN::join_free method.
  In fact setting join->tables to 0 in JOIN::cleanup is not needed 
  anywhere in the current code.
2007-05-23 19:04:12 -07:00
unknown
c57d6f729d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/27563-bug-5.0-opt-mysql


sql/item_func.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-05-23 23:31:33 +04:00
unknown
1734b4e990 Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
If a stored function or a trigger was killed it had aborted but no error
was thrown. This allows the caller statement to continue without a notice.
This may lead to a wrong data being inserted/updated to/deleted as in such
cases the correct result of a stored function isn't guaranteed. In the case
of triggers it allows the caller statement to ignore kill signal and to
waste time because of re-evaluation of triggers that always will fail
because thd->killed flag is still on.

Now the Item_func_sp::execute() and the sp_head::execute_trigger() functions
check whether a function or a trigger were killed during execution and
throws an appropriate error if so.
Now the fill_record() function stops filling record if an error was reported
through thd->net.report_error.


sql/item_func.cc:
  Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
  Now the Item_func_sp::execute() function checks whether a trigger was killed
  during execution and throws an appropriate error if so.
sql/sp_head.cc:
  Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
  Now the sp_head::execute_trigger() function checks whether a function was
  killed during execution and throws an appropriate error if so.
sql/sql_base.cc:
  Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
  Now the fill_record() function stops filling record if an error was reported
  through thd->net.report_error.
mysql-test/r/kill.result:
  Added a test case for the bug#27563: Stored functions and triggers wasn't
  throwing an error when killed.
mysql-test/t/kill.test:
  Added a test case for the bug#27563: Stored functions and triggers wasn't
  throwing an error when killed.
2007-05-23 23:24:16 +04:00
unknown
adef673652 Merge mysql.com:/home/svoj/devel/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-05-23 12:39:33 +05:00
unknown
f529d18ba6 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-22 23:20:40 +02:00
unknown
f7f593ae7d Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/users/mhansson/mysql/autopush/mysql-5.0o-pushee


sql/sql_select.cc:
  Auto merged
2007-05-22 18:30:23 +02:00
unknown
13cf5bddd8 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28476-5.0-opt


sql/sql_base.cc:
  Auto merged
sql/table.h:
  Auto merged
2007-05-22 17:05:33 +03:00
unknown
3332b80130 Bug #28476: force index on a disabled myisam index gives error 124
When processing the USE/FORCE index hints
the optimizer was not checking if the indexes 
specified are enabled (see ALTER TABLE).
Fixed by:
 Backporting the fix for bug 20604 to 5.0


mysql-test/r/key.result:
  Test for BUG 20604.
  The important part of the test is the explain output that 
  tests what indexes are used.
mysql-test/r/myisam.result:
  Bug #28476: test cases
mysql-test/t/key.test:
  Bug 20604: 
  The minimal test case that reveals the bug. The optimizer for 
  aggregates relies on keys disabled with ALTER TABLE ... DISABLE KEYS
  not being in the set TABLE::keys_in_use_for_query.
  When the execution engine tries to use a disabled index, MyISAM
  returns an error.
mysql-test/t/myisam.test:
  Bug #28476: test cases
sql/sql_base.cc:
  Bug #28476: 
   - Ignore disabled indexes in USE/FORCE index
sql/sql_select.cc:
  Bug 20604 : The intersection operation between table->s->keys_in_use 
  and table->keys_in_use_for_query is no longer necessary.
  We can trust that the latter is a subset of the former.
sql/table.h:
  Bug 20604:
  Added comments to TABLE_SHARE::keys_in_use and
  TABLE::keys_in_use_for_query.
2007-05-22 15:58:30 +03:00
unknown
3c76d36956 Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my50-bug23856
into  dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/mysql-5.0o-pushee


sql/item_sum.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/func_gconcat.result:
  Bug#23856: Manually merged
mysql-test/t/func_gconcat.test:
  Bug#23856: Manually merged
2007-05-22 14:48:49 +02:00
unknown
14cb59d8bb Added initializations to avoid compiler warnings. 2007-05-21 16:44:36 -07:00
unknown
f3b78f34e5 Bug#27507: Wrong DATETIME value was allowed by ALTER TABLE in the NO_ZERO_DATE
mode.

When a new DATE/DATETIME field without default value is being added by the
ALTER TABLE the '0000-00-00' value is used as the default one. But it wasn't
checked whether such value was allowed by the set sql mode. Due to this
'0000-00-00' values was allowed for DATE/DATETIME fields even in the
NO_ZERO_DATE mode.

Now the mysql_alter_table() function checks whether the '0000-00-00' value
is allowed for DATE/DATETIME fields by the set sql mode.
The new error_if_not_empty flag is used in the mysql_alter_table() function
to indicate that it should abort if the table being altered isn't empty.
The new new_datetime_field field is used in the mysql_alter_table() function
for error throwing purposes. 
The new error_if_not_empty parameter is added to the copy_data_between_tables()
function to indicate the it should return error if the source table isn't empty.


mysql-test/t/alter_table.test:
  Added a test case for the bug#27507: Wrong DATETIME value was allowed by
  ALTER TABLE in the NO_ZERO_DATE mode.
mysql-test/r/alter_table.result:
  Added a test case for the bug#27507: Wrong DATETIME value was allowed by
  ALTER TABLE in the NO_ZERO_DATE mode.
sql/sql_table.cc:
  Bug#27507: Wrong DATETIME value was allowed by ALTER TABLE in the NO_ZERO_DATE
  mode.
  Now the mysql_alter_table() function checks whether the '0000-00-00' value
  is allowed for DATE/DATETIME fields by the set sql mode.
  The new error_if_not_empty flag is used in the mysql_alter_table() function
  to indicate that it should abort if the table being altered isn't empty.
  The new new_datetime_field field is used in the mysql_alter_table() function
  for error throwing purposes. 
  The new error_if_not_empty parameter is added to the copy_data_between_tables()
  function to indicate the it should return error if the source table isn't empty.
2007-05-22 00:22:53 +04:00
unknown
221e23ad72 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50


configure.in:
  Auto merged
mysql-test/r/strict.result:
  Auto merged
mysql-test/r/type_datetime.result:
  Auto merged
mysql-test/t/type_datetime.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
2007-05-21 20:50:08 +02:00
unknown
84966af9fc bug#23856 2007-05-21 10:27:33 +02:00
unknown
330a82f066 Merge macbook:mysql/work/B22855-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B22855-5.0-opt


sql/item_subselect.cc:
  Auto merged
mysql-test/r/subselect3.result:
  manual merge
mysql-test/t/subselect3.test:
  manual merge
2007-05-21 10:21:55 +03:00
unknown
66dc33eed2 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-21 08:49:49 +02:00
unknown
59a7e066e3 bug #28361 Buffer overflow in DECIMAL code on Windows
my_decimal in some cases can contain more decimal digits than
is officially supported (DECIMAL_MAX_PRECISION), so we need to
prepare bigger buffer for the resulting string.


mysql-test/r/type_newdecimal.result:
  bug #28361 Buffer overflow in DECIMAL code on Windows
  test result
mysql-test/t/type_newdecimal.test:
  bug #28361 Buffer overflow in DECIMAL code on Windows
  test case
  This test case doesn't fall in most cases even without the fix
  Still valgrind shows the problemn
sql/my_decimal.h:
  bug #28361 Buffer overflow in DECIMAL code on Windows
  DECIMAL_MAX_POSSIBLE_PRECISION introduced to be used in places,
  when we need to check for the number of digits technicaly possible
  in my_decimal.
  DECIMAL_MAX_STR_LENGTH fixed as it has to fit for the MAX_POSSIBLE_PRECISION
2007-05-20 21:22:57 +05:00
unknown
caf045dbeb Merge bk@192.168.21.1:mysql-5.0
into  mysql.com:/d2/hf/mrg/mysql-5.0-opt


mysql-test/r/ps.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
sql/item.cc:
  Auto merged
2007-05-18 20:02:27 +05:00
unknown
507ad360d7 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/28261-bug-5.0-opt-mysql
2007-05-18 13:39:34 +04:00
unknown
c2d3fb6b20 Bug #27119 server crash with integer division by zero during filesort on huge result
Fixed a problem and compiler warning on 64bit platforms so that they only allocated UINT_MAX number of BUFFPEKS.


sql/filesort.cc:
   Fixed a problem and compiler warning on 64bit platforms so that they only allocated UINT_MAX number of BUFFPEKS.
2007-05-17 20:45:33 -04:00
unknown
8494cd5bb6 Merge damien-katzs-computer.local:/Users/dkatz/mysql50
into  damien-katzs-computer.local:/Users/dkatz/50_div_zero
2007-05-17 18:02:03 -04:00
unknown
9d3e7ea664 Bug #27119 server crash with integer division by zero during filesort on huge result
Fixed a compiler warning on platforms where uint != ulong from the first pushed fix.


sql/filesort.cc:
  fixed a compiler warning on platforms where uint != ulong
2007-05-17 17:54:31 -04:00
unknown
82db6cc68c Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  siva.hindu.god:/home/tsmith/m/bk/maint/50
2007-05-17 14:24:52 -06:00
unknown
ce5f0d1bc3 Merge siva.hindu.god:/home/tsmith/m/bk/50
into  siva.hindu.god:/home/tsmith/m/bk/maint/50


mysql-test/r/type_datetime.result:
  Auto merged
mysql-test/t/outfile.test:
  Auto merged
mysql-test/t/type_datetime.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/my_decimal.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
2007-05-17 14:17:50 -06:00
unknown
c4a4df5aa4 Bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function
is involved.

The Arg_comparator::compare_datetime() comparator caches its arguments if
they are constants i.e. const_item() returns true. The
Item_func_get_user_var::const_item() returns true or false based on
the current query_id and the query_id where the variable was created.
Thus even if a query can change its value its const_item() still will return
true. All this leads to a wrong comparison result when an object of the
Item_func_get_user_var class is involved.

Now the Arg_comparator::can_compare_as_dates() and the
get_datetime_value() functions never cache result of the GET_USER_VAR()
function (the Item_func_get_user_var class).


mysql-test/t/type_datetime.test:
  A test case is added for the bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function
  is involved.
mysql-test/r/type_datetime.result:
  A test case is added for the bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function
  is involved.
sql/item_cmpfunc.cc:
  Bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function
  is involved.
  Now the Arg_comparator::can_compare_as_dates() and the
  get_datetime_value() functions never cache result of the GET_USER_VAR()
  function (the Item_func_get_user_var class).
2007-05-17 23:09:45 +04:00
unknown
455352b0b8 Bug#22855:
Conversion errors when constructing the condition for an
IN predicates were treated as if the affected column contains
NULL. If such a IN predicate is inside NOT we get wrong 
results.
Corrected the handling of conversion errors in an IN predicate 
that is resolved by unique_subquery (through 
subselect_uniquesubquery_engine).


mysql-test/r/subselect3.result:
  Bug#22855: test case
mysql-test/t/subselect3.test:
  Bug#22855: test case
sql/item_subselect.cc:
  Bug#22855: corrected the handling of conversion errors and
  NULL key values in IN predicate that is resolved by index
  lookup.
2007-05-17 19:38:34 +03:00
unknown
dd1a118000 Fixed bug #28337: wrong results for grouping queries with correlated
subqueries in WHERE conditions.
This bug was introduced by the patch for bug 27321.


mysql-test/r/subselect.result:
  Added a test case for bug #28337.
mysql-test/t/subselect.test:
  Added a test case for bug #28337.
sql/item.cc:
  Fixed bug #28337: wrong results for grouping queries with correlated
  subqueries in WHERE conditions.
  This bug was introduced by the patch for bug 27321.
  
  Now in the Item_field::fix_outer_field function we create an Item_outer_ref
  object for an outer reference only if it is used in the SELECT list or
  in the HAVING clause of the subquery against which the reference is resolved.
2007-05-16 23:42:10 -07:00
unknown
3770083b5b Bug #27119 server crash with integer division by zero during filesort on huge result
Added checks to detect integer overflow and fixed other bugs on the error path.


myisam/sort.c:
  Replaced a break statement with a goto statement so that a failure will instead break
sql/filesort.cc:
  Fixed an allocation routine to detect integer overflow, and as an optimization a check that prevents the number of buffpeks being larger than can possibly fit into memory.
      
  Fixed several unchecked error codes.
      
  Changed an index variable from int to uint to the match the type of the variable it's
  being compared with.
      
      Replaced a break statement with a goto statement so that a failure will instead break
  out of the higher level while-loop, instead of just the nested for-loop.
2007-05-16 16:14:13 -04:00
unknown
418a2983c0 Merge mhansson@bk-internal:/home/bk/mysql-5.0-opt
into  linux-st28.site:/home/martin/mysql/src/5.0o-bug27573


mysql-test/r/func_group.result:
  Auto merged
mysql-test/t/func_group.test:
  bug#27573: hand merged test case
2007-05-16 12:22:20 +03:00
unknown
b5e4f54a53 Backport of TIME->MYSQL_TIME / Y2K fixset
Made year 2000 handling more uniform
Removed year 2000 handling out from calc_days()
The above removes some bugs in date/datetimes with year between 0 and 200
Now we get a note when we insert a datetime value into a date column
For default values to CREATE, don't give errors for warning level NOTE
Fixed some compiler failures
Added library ws2_32 for windows compilation (needed if we want to compile with IOCP support)
Removed duplicate typedef TIME and replaced it with MYSQL_TIME

Better (more complete) fix for: Bug#21103 "DATE column not compared as DATE"
Fixed properly Bug#18997 "DATE_ADD and DATE_SUB perform year2K autoconversion magic on 4-digit year value"
Fixed Bug#23093 "Implicit conversion of 9912101 to date does not match cast(9912101 as date)"
 


include/my_time.h:
  Removed not used define YY_MAGIC_BELOW
  Added prototype for year_2000_handling()
mysql-test/r/date_formats.result:
  Updated results (fixed bug in date_format() with year < 99
mysql-test/r/func_sapdb.result:
  Added more testing of make_date()
mysql-test/r/ps_2myisam.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_3innodb.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_4heap.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_5merge.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_7ndb.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/strict.result:
  zero-year in str_to_date() throws warning in strict
mysql-test/r/type_date.result:
  Added test for date conversions
mysql-test/r/type_datetime.result:
  Added testcase for datetime to date conversion.
mysql-test/t/date_formats.test:
  Added testing of dates < 200
mysql-test/t/func_sapdb.test:
  More testing of makedate()
mysql-test/t/type_date.test:
  Added test for date conversions
mysql-test/t/type_datetime.test:
  Added testcase for datetime to date conversion
sql/field.cc:
  Give note if we insert a datetime value in a date field
  Don't give notes if we are doing internal test conversions (like from convert_constant_item())
  More documentation (store functions can now return '3' to inform that the function did return a NOTE (not warning or error))
  Revert some changes in Field_newdate::store() to get more optimal code
  Field::set_warning() will now ignore notes if CHECK_FIELD_IGNORE is set.
  New parameters to make_truncated_value_warning()
sql/field.h:
  Give note if we insert a datetime value in a date field
  Don't give notes if we are doing internal test conversions (like from convert_constant_item())
  More documentation (store functions can now return '3' to inform that the function did return a NOTE (not warning or error))
  Revert some changes in Field_newdate::store() to get more optimal code
  Field::set_warning() will now ignore notes if CHECK_FIELD_IGNORE is set.
  New parameters to make_truncated_value_warning()
sql/item.cc:
  Give note if we insert a datetime value in a date field
  Don't give notes if we are doing internal test conversions (like from convert_constant_item())
  More documentation (store functions can now return '3' to inform that the function did return a NOTE (not warning or error))
  Revert some changes in Field_newdate::store() to get more optimal code
  Field::set_warning() will now ignore notes if CHECK_FIELD_IGNORE is set.
  New parameters to make_truncated_value_warning()
sql/item.h:
  TIME -> MYSQL_TIME
sql/item_cmpfunc.cc:
  Don't print notes in convert_constant_item()
sql/item_func.h:
  TIME -> MYSQL_TIME
sql/item_timefunc.cc:
  New parameters to make_truncated_value_warning()
  Moved year 2000 handling out from calc_days()
sql/item_timefunc.h:
  TIME -> MYSQL_TIME
sql/my_decimal.cc:
  TIME -> MYSQL_TIME
sql/my_decimal.h:
  TIME -> MYSQL_TIME
sql/mysql_priv.h:
  Added error level to make_truncated_value_warning()
sql/protocol.cc:
  TIME -> MYSQL_TIME
sql/protocol.h:
  TIME -> MYSQL_TIME
sql/sp.cc:
  TIME -> MYSQL_TIME
sql/sql_base.cc:
  Make testing of result value of save_in_field() uniform
sql/sql_class.h:
  TIME -> MYSQL_TIME
sql/sql_show.cc:
  TIME -> MYSQL_TIME
sql/structs.h:
  TIME -> MYSQL_TIME
sql/time.cc:
  Added error level to make_truncated_value_warning()
sql/tztime.cc:
  TIME -> MYSQL_TIME
sql/tztime.h:
  TIME -> MYSQL_TIME
sql/unireg.cc:
  For default values to CREATE, don't give errors for warning level NOTE
  (Fixed failed CREATE when we give a datetime value to a date field)
sql-common/my_time.c:
  Added year_2000_handling()
  Removed year 2000 handling from calc_daynr()
2007-05-16 10:44:59 +02:00
unknown
7703b67659 Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-16 10:15:21 +02:00
unknown
9e1585ab8f Fix for bug #28240: "isinf()" cannot be used in C++ for lack of prototype
- Since isinf() portability across various platforms and
  compilers is a complicated question, we should not use
  it directly. Instead, the my_isinf() macro should be used,
  which is defined as an alias to the system-defined isinf()
  if it is safe to use, or a workaround implementation otherwise


configure.in:
  Added a check to define HAVE_ISINF only if it can be used
  in C++ code as well.
include/my_global.h:
  Define my_isinf() as an alias to isinf(), if it is available
  in both C and C++ code. Otherwise, define it to a workaround
  implementation.
sql/item_func.cc:
  Replaced isinf() with my_isinf().
strings/strtod.c:
  Replaced isinf() with my_isinf().
2007-05-16 10:10:02 +02:00