Commit graph

10440 commits

Author SHA1 Message Date
evgen@moonbone.local
28cf3c3e64 Manually merged 2006-06-17 00:58:36 +04:00
dlenev@mysql.com
59d20e26d5 Fix for bug#13479 "REPLACE activates UPDATE trigger, not the DELETE and
INSERT triggers".

In cases when REPLACE was internally executed via update and table had
on update (on delete) triggers defined we exposed the fact that such
optimization used by callng on update (not calling on delete) triggers.
Such behavior contradicts our documentation which describes REPLACE as
INSERT with optional DELETE.

This fix just disables this optimization for tables with on delete triggers.
The optimization is still applied for tables which have on update but have
no on delete triggers, we just don't invoke on update triggers in this case
and thus don't expose information about optimization to user.

Also added test coverage for values returned by ROW_COUNT() function (and
thus for values returned by mysql_affected_rows()) for various forms of
INSERT.
2006-06-16 20:21:25 +04:00
msvensson@neptunus.(none)
104748ddaf Merge bk-internal:/home/bk/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-06-16 17:30:03 +02:00
msvensson@neptunus.(none)
0a15f9d0bf Set default valgrind options to "-v --show-reachable=yes" and make it possible to override that with --valgrind-options 2006-06-16 15:56:08 +02:00
ramil@mysql.com
10914578f1 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/mysql-5.0
2006-06-16 16:43:44 +05:00
ramil@mysql.com
7e8a2ec6bb Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/mysql-5.0
2006-06-16 15:27:04 +05:00
ramil@mysql.com
f2899063ee after-merge fixes. 2006-06-16 14:05:58 +05:00
serg@serg.mylan
816bd73362 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2006-06-16 10:01:13 +02:00
serg@serg.mylan
16861b2e3b Bug#14708: Inconsistent treatment of NULLs in LEFT JOINed FULLTEXT matching without index
Don't rely on table->null_row when no index is used - it may be a multi-table search
2006-06-16 09:49:18 +02:00
igor@rurik.mysql.com
ee2e2d0c6d Post_merges fixes. 2006-06-15 20:29:05 -07:00
igor@rurik.mysql.com
1241d86787 Merge rurik.mysql.com:/home/igor/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-06-15 18:40:18 -07:00
igor@rurik.mysql.com
9b7ecb5553 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-06-15 18:36:46 -07:00
knielsen@mysql.com
061bdf919f BUG#19940: Add Valgrind suppression for false alarm report. 2006-06-15 22:02:26 +02:00
evgen@moonbone.local
4dfd3af232 Merge moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
into moonbone.local:/work/18175-bug-5.0-opt
2006-06-15 22:10:47 +04:00
evgen@moonbone.local
0fb6b044e0 Fixed bug#18175: The nest_level counter wasn't decremented for union parts which
resulted in a wrong error message.

The nest_level counter indicates the depth of nesting for a subselect. It is
needed to properly resolve aggregate functions in nested subselects. Obviously 
it shouldn't be incremented for UNION parts because they have the same level of
nesting. This counter was incremented by 1 in the mysql_new_select() function
for any new select and wasn't decremented for UNION parts. This resulted in
wrongly reported error messages.

Now the nest_level counter is decremented by 1 for any union part.
2006-06-15 22:09:58 +04:00
lars@mysql.com
70214ffd5b Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge
2006-06-15 15:54:50 +02:00
evgen@moonbone.local
d22c082b87 Merge moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
into moonbone.local:/work/16377-4.1-after
2006-06-15 16:41:26 +04:00
evgen@moonbone.local
2877b5ef64 item_cmpfunc.h, cast.result:
Post fix for bug#16377
2006-06-15 16:39:18 +04:00
ramil@mysql.com
c15a5a2b26 Merge mysql.com:/usr/home/ram/work/mysql-4.1
into  mysql.com:/usr/home/ram/work/mysql-5.0
2006-06-15 17:37:47 +05:00
gluh@eagle.intranet.mysql.r18.ru
00fcdf8c00 Fix for bug#19667 group by a decimal expression yields wrong result 2006-06-15 16:24:02 +05:00
evgen@moonbone.local
d3502181c0 Merge moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
into moonbone.local:/work/19789-bug-5.0-opt-mysql
2006-06-15 15:01:37 +04:00
evgen@moonbone.local
b669852866 Merge moonbone.local:/work/15351-bug-4.1-mysql
into moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
2006-06-15 14:57:53 +04:00
lars@mysql.com
1d1c42e0a7 BUG#17201: Removed version number from test case output 2006-06-15 11:55:53 +02:00
ramil@mysql.com
26fa98a2cb Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b15558
2006-06-15 11:15:56 +05:00
evgen@moonbone.local
a2261d57be Many files:
After merge fix
2006-06-15 01:48:41 +04:00
evgen@moonbone.local
e35a0ca4b7 Manually merged 2006-06-14 23:54:08 +04:00
tomas@poseidon.ndb.mysql.com
0c805b3f0d Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
2006-06-14 20:27:32 +02:00
tomas@poseidon.ndb.mysql.com
01046bb756 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
2006-06-14 20:25:51 +02:00
tomas@poseidon.ndb.mysql.com
220345d3c8 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
2006-06-14 20:18:01 +02:00
tomas@poseidon.ndb.mysql.com
2fcf737feb Bug #19493 NDB does not ignore duplicate keys when using LOAD DATA LOCAL
- make sure to disable bulk insert when check for duplicate key is needed
2006-06-14 20:16:32 +02:00
gkodinov@mysql.com
36fae7be63 Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean
into  mysql.com:/home/kgeorge/mysql/5.0/B18895
2006-06-14 17:37:26 +03:00
gkodinov@mysql.com
7385e7c72a Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean
into  mysql.com:/home/kgeorge/mysql/5.0/B18895
2006-06-14 17:35:14 +03:00
evgen@moonbone.local
043da83a09 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
2006-06-14 17:18:42 +04:00
gkodinov@mysql.com
476d728a8d Bug #18895: BIT values cause joins to fail
The Field::eq() considered instances of Field_bit that differ only in 
bit_ptr/bit_ofs equal. This caused equality conditions optimization 
(build_equal_items_for_cond()) to make bad field substitutions that result
in wrong predicates. 
Field_bit requires an overloaded eq() function that checks the bit_ptr/bit_ofs
in addition to Field::eq().
2006-06-14 15:57:23 +03:00
evgen@moonbone.local
4c3108fc10 Merge moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
into moonbone.local:/work/15962-bug-5.0-opt-mysql
2006-06-14 15:27:27 +04:00
gkodinov@mysql.com
5bd4966345 Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean
into  mysql.com:/home/kgeorge/mysql/5.0/B20195
2006-06-14 10:41:35 +03:00
igor@rurik.mysql.com
5cdd1eb62d Post-review corrections of the fix for bug #18206. 2006-06-13 22:38:00 -07:00
igor@rurik.mysql.com
fc46017c2d Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-4.1-opt
2006-06-13 22:33:38 -07:00
igor@rurik.mysql.com
3f5f33d8f8 Merge rurik.mysql.com:/home/igor/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-06-13 20:04:48 -07:00
igor@rurik.mysql.com
355753baa4 Fixed bug #14896.
This bug in Field_string::cmp resulted in a wrong comparison 
with keys in partial indexes over multi-byte character fields.
Given field a is declared as 
  a varchar(16) collate utf8_unicode_ci
INDEX(a(4)) gives us an example of such an index.

Wrong key comparisons could lead to wrong result sets if 
the selected query execution plan used a range scan by 
a partial index over a utf8 character field.
This also caused wrong results in many other cases.
2006-06-13 19:57:50 -07:00
pekka@clam.ndb.mysql.com
e071bbcb0b ndb - bug#20406 multi-platform testing - not FIX 2006-06-14 00:38:34 +02:00
evgen@moonbone.local
111dc92786 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
2006-06-13 22:53:30 +04:00
gkodinov@mysql.com
8d94b8cacf Bug #20195: INSERT DELAYED with auto_increment is assigned wrong values
The INSERT DELAYED should not maintain its own private auto-increment
counter, because this is assuming that other threads cannot insert
into the table while the INSERT DELAYED thread is inserting, which is
a wrong assumption.

So the start of processing of a batch of INSERT rows in the 
INSERT DELAYED thread must be treated as a start of a new statement
and cached next_insert_id must be cleared.
2006-06-13 18:18:32 +03:00
evgen@moonbone.local
d4942a2635 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into moonbone.local:/work/16377-bug-4.1-opt-mysql
2006-06-13 19:10:27 +04:00
evgen@moonbone.local
67de8c46a5 Fixed bug#16377: result of DATE/TIME functions were compared as strings which
can lead to a wrong result.

All date/time functions has the STRING result type thus their results are
compared as strings. The string date representation allows a user to skip 
some of leading zeros. This can lead to wrong comparison result if a date/time 
function result is compared to such a string constant.

The idea behind this bug fix is to compare results of date/time functions
and data/time constants as ints, because that date/time representation is 
more exact. To achieve this the agg_cmp_type() is changed to take in the
account that a date/time field or an date/time item should be compared 
as ints.

This bug fix is partially back ported from 5.0.

The agg_cmp_type() function now accepts THD as one of parameters. 
In addition, it now checks if a date/time field/function is present in the
list. If so, it tries to coerce all constants to INT to make date/time
comparison return correct result. The field for the constant coercion is
taken from the Item_field or constructed from the Item_func. In latter case
the constructed field will be freed after conversion of all constant items.
Otherwise the result is same as before - aggregated with help of the
item_cmp_type() function.

From the Item_func_between::fix_length_and_dec() function removed the part
which was converting date/time constants to int if possible. Now this is 
done by the agg_cmp_type() function.

The new function result_as_longlong() is added to the Item class. 
It indicates that the item is a date/time item and result of it can be
compared as int. Such items are date/time fields/functions.

Correct val_int() methods are implemented for classes Item_date_typecast, 
Item_func_makedate, Item_time_typecast, Item_datetime_typecast. All these
classes are derived from Item_str_func and Item_str_func::val_int() converts
its string value to int without regard to the date/time type of these items.

Arg_comparator::set_compare_func() and Arg_comparator::set_cmp_func()
functions are changed to substitute result type of an item with the INT_RESULT
if the item is a date/time item and another item is a constant. This is done
to get a correct result of comparisons like date_time_function() = string_constant.
2006-06-13 19:09:24 +04:00
gkodinov@mysql.com
df358201e8 Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B20363
2006-06-12 18:28:04 +03:00
gkodinov@mysql.com
eb693dcc7b Bug #20363: Create view on just created view is now denied
There was a wrong determination of the DB name (witch is 
not always the one in TABLE_LIST because derived tables
may be calculated using temp tables that have their db name
set to "").
The fix determines the database name according to the type 
of table reference, and calls the function check_access() 
with the correct db name so the correct set of grants is found.
2006-06-12 18:15:08 +03:00
mskold@mysql.com
69d52db924 Added order by 2006-06-12 15:36:12 +02:00
mskold@mysql.com
4242beb31d Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/marty/MySQL/mysql-5.0
2006-06-12 15:36:10 +02:00
mskold@mysql.com
47bb569979 Added order by 2006-06-12 15:35:47 +02:00