Commit graph

14032 commits

Author SHA1 Message Date
ramil/ram@ramil.myoffice.izhnet.ru
e2d216450a Merge mysql.com:/home/ram/work/b28464.new/b28464.new.5.0
into  mysql.com:/home/ram/work/b28464.new/b28464.new.5.1
2007-05-24 18:42:38 +05:00
msvensson@pilot.blaudden
7327f42060 Merge pilot.blaudden:/home/msvensson/mysql/bug28521/my51-bug28521
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-05-24 12:31:48 +02:00
msvensson@pilot.blaudden
cca2c53113 Merge pilot.blaudden:/home/msvensson/mysql/bug27438/my51-bug27438
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-05-24 12:05:04 +02:00
msvensson@pilot.blaudden
4698a61ec4 Merge pilot.blaudden:/home/msvensson/mysql/bug27438/my50-bug27438
into  pilot.blaudden:/home/msvensson/mysql/bug27438/my51-bug27438
2007-05-24 12:03:55 +02:00
ramil/ram@ramil.myoffice.izhnet.ru
3d940b1478 Merge mysql.com:/home/ram/work/b28509/b28509.5.0
into  mysql.com:/home/ram/work/b28509/b28509.5.1
2007-05-23 13:47:34 +05:00
tsmith@quadxeon.mysql.com
672237f5b5 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/51
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
2007-05-21 20:51:31 +02:00
msvensson@pilot.blaudden
3ad9c30039 Bug#27438 rpl_rotate_logs fails on Windows
- Fix test case to work also when filesystem time differs
   from mysqld' time. I.e when running with data files on a
   network share.
2007-05-21 11:33:58 +02:00
msvensson@pilot.blaudden
4215eb8a50 Bug#28521 Upgrade from 5.1.17 to 5.1.18 breaks events
- Add test for upgrading from 5.1.17 - it's a beta but anyway
   good to have a check oif upgrading new system tables for 5.1
 - Always put the "originator" column after "comment" to get correct
  order of columns in "events" table
2007-05-19 18:55:38 +02:00
msvensson@pilot.blaudden
a3bd588435 Merge pilot.blaudden:/home/msvensson/mysql/bug28401/my50-bug28401
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-19 18:22:08 +02:00
msvensson@pilot.blaudden
45c202a3a3 Merge pilot.blaudden:/home/msvensson/mysql/bug28401/my50-bug28401
into  pilot.blaudden:/home/msvensson/mysql/bug28401/my51-bug28401
2007-05-19 18:15:40 +02:00
msvensson@pilot.blaudden
bc69d072f3 Bug #28401 mysql_upgrade Failed with STRICT_ALL_TABLES, ANSI_QUOTES and NO_ZERO_DATE
- The SQL commands used by mysql_upgrade are written to be run
    with sql_mode set to '' - thus the scripts should change sql_mode
    for the session to make sure the SQL is legal.
2007-05-19 18:15:08 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
e04000ec21 merging 2007-05-18 23:21:34 +05:00
holyfoot/hf@hfmain.(none)
44331376e7 Merge mysql.com:/d2/hf/mrg/mysql-5.0-opt
into  mysql.com:/d2/hf/mrg/mysql-5.1-opt
2007-05-18 22:12:06 +05:00
serg@sergbook.mysql.com
c7a4547361 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0
2007-05-18 18:22:38 +02:00
serg@sergbook.mysql.com
11e5fa8f71 added cleanup to some tests 2007-05-18 17:48:44 +02:00
holyfoot/hf@hfmain.(none)
783c7071bf Merge bk@192.168.21.1:mysql-5.1
into  mysql.com:/d2/hf/mrg/mysql-5.1-opt
2007-05-18 20:04:01 +05:00
holyfoot/hf@hfmain.(none)
85d5dfedf6 Merge mysql.com:/d2/hf/mrg/mysql-5.0-opt
into  mysql.com:/d2/hf/mrg/mysql-5.1-opt
2007-05-18 20:00:49 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
11a2fd422b Fox for bug #28509: strange behaviour: passing a decimal value to PS
Set parameter's type to Item::DECIMAL_ITEM assigning a decimal value.
2007-05-18 18:16:51 +05:00
msvensson@pilot.blaudden
cdef920866 Merge bk-internal:/home/bk/mysql-5.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-05-18 13:01:05 +02:00
msvensson@pilot.blaudden
01ae08078e Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-18 12:58:28 +02:00
msvensson@pilot.blaudden
cea8860583 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-05-18 12:58:05 +02:00
msvensson@pilot.blaudden
c3f407a07a Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-18 12:56:52 +02:00
msvensson@pilot.blaudden
e05aa94353 WL#2247 mysqltest: add option for sorting results
- Final touchups
2007-05-18 12:50:23 +02:00
evgen@moonbone.local
835189cb85 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
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
63b2e8d9df Fix for bug #28464: a string argument to 'limit ?' PS - replication fails
Problem: we may get syntactically incorrect queries in the binary log 
if we use a string value user variable executing a PS which 
contains '... limit ?' clause, e.g.
prepare s from "select 1 limit ?"; 
set @a='qwe'; execute s using @a;
  
Fix: raise an error in such cases.
2007-05-18 12:08:07 +05:00
igor@olga.mysql.com
2189c571b2 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28337
2007-05-17 16:06:57 -07:00
tsmith@siva.hindu.god
4a4590cd49 Merge siva.hindu.god:/home/tsmith/m/bk/51
into  siva.hindu.god:/home/tsmith/m/bk/maint/51
2007-05-17 14:21:35 -06:00
tsmith@siva.hindu.god
30bc713c77 Merge siva.hindu.god:/home/tsmith/m/bk/50
into  siva.hindu.god:/home/tsmith/m/bk/maint/50
2007-05-17 14:17:50 -06:00
evgen@moonbone.local
0e3c4f6729 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).
2007-05-17 23:09:45 +04:00
igor@olga.mysql.com
8c34ae268c Fixed bug #28337: wrong results for grouping queries with correlated
subqueries in WHERE conditions.
This bug was introduced by the patch for bug 27321.
2007-05-16 23:42:10 -07:00
holyfoot/hf@mysql.com/hfmain.(none)
4ac1e98630 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/8663/my50-8663
2007-05-17 00:10:39 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
28eddbe12b Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/8663/my50-8663
2007-05-17 00:09:43 +05:00
holyfoot/hf@hfmain.(none)
cd4fbe116e Merge mysql.com:/home/hf/work/8663/my50-8663
into  mysql.com:/home/hf/work/8663/my51-8663
2007-05-16 23:01:21 +05:00
msvensson@pilot.blaudden
d5676f2feb WL#2247 mysqltest: add option for sorting results
- Change from "query_sorted <query>" to "sorted_results"
2007-05-16 17:19:36 +02:00
thek@adventure.(none)
6d6674e71f Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-05-16 14:54:47 +02:00
thek@adventure.(none)
06ce477223 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-05-16 14:51:01 +02:00
thek@adventure.(none)
0e82ce84c9 Merge adventure.(none):/home/thek/Development/cpp/bug27415/my50-bug27415
into  adventure.(none):/home/thek/Development/cpp/bug27415/my51-bug27415
2007-05-16 14:48:31 +02:00
thek@adventure.(none)
ed43ceb178 Bug#27415 Text Variables in stored procedures
- Problem was reported as a SP variable using itself as 
   right value inside SUBSTR caused corruption of data. 
 - This bug could not be verified in either 5.0bk or 5.1bk
 - Added test case to prevent future regressions.
2007-05-16 14:25:38 +02:00
kostja@vajra.(none)
35ad681618 An attempt to fix event_bugs.test failure on Debian
(Bug#26338 "events_bugs.test fail on Debian")
2007-05-16 16:01:14 +04:00
msvensson@pilot.blaudden
623d936038 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-05-16 12:50:24 +02:00
mhansson/martin@linux-st28.site
364014e455 Merge mhansson@bk-internal:/home/bk/mysql-5.0-opt
into  linux-st28.site:/home/martin/mysql/src/5.0o-bug27573
2007-05-16 12:22:20 +03:00
msvensson@pilot.blaudden
a65d12a830 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)"
2007-05-16 10:44:59 +02:00
kostja@vajra.(none)
e1218d0e75 Merge vajra.(none):/opt/local/work/mysql-5.0-21483
into  vajra.(none):/opt/local/work/mysql-5.1-21483
2007-05-16 10:21:39 +04:00
kostja@vajra.(none)
f10effe402 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  vajra.(none):/opt/local/work/mysql-5.0-21483
2007-05-16 09:52:01 +04:00
kostja@vajra.(none)
747842e10b A fix and a test case for
Bug#21483 "Server abort or deadlock on INSERT DELAYED with another
implicit insert"
Also fixes and adds test cases for bugs:
20497 "Trigger with INSERT DELAYED causes Error 1165"
21714 "Wrong NEW.value and server abort on INSERT DELAYED to a
table with a trigger".
Post-review fixes.

Problem:
In MySQL INSERT DELAYED is a way to pipe all inserts into a
given table through a dedicated thread. This is necessary for
simplistic storage engines like MyISAM, which do not have internal
concurrency control or threading and thus can not
achieve efficient INSERT throughput without support from SQL layer.
DELAYED INSERT works as follows:
For every distinct table, which can accept DELAYED inserts and has
pending data to insert, a dedicated thread is created to write data
to disk. All user connection threads that attempt to
delayed-insert into this table interact with the dedicated thread in
producer/consumer fashion: all records to-be inserted are pushed
into a queue of the dedicated thread, which fetches the records and 
writes them.
In this design, client connection threads never open or lock
the delayed insert table.
This functionality was introduced in version 3.23 and does not take 
into account existence of triggers, views, or pre-locking.
E.g. if INSERT DELAYED is called from a stored function, which,
in turn, is called from another stored function that uses the delayed
table, a deadlock can occur, because delayed locking by-passes
pre-locking. Besides:
 * the delayed thread works directly with the subject table through
   the storage engine API and does not invoke triggers
 * even if it was patched to invoke triggers, if triggers,
   in turn, used other tables, the delayed thread would
   have to open and lock involved tables (use pre-locking).
 * even if it was patched to use pre-locking, without deadlock
   detection the delayed thread could easily lock out user 
   connection threads in case when the same table is used both
   in a trigger and on the right side of the insert query: 
   the delayed thread would not release locks until all inserts 
   are complete, and user connection can not complete inserts 
   without having locks on the tables used on the right side of the
   query.

Solution:

These considerations suggest two general alternatives for the
future of INSERT DELAYED:
 * it is considered a full-fledged alternative to normal INSERT
 * it is regarded as an optimisation that is only relevant 
   for simplistic engines.
Since we missed our chance to provide complete support of new
features when 5.0 was in development, the first alternative
currently renders infeasible.
However, even the second alternative, which is to detect
new features and convert DELAYED insert into a normal insert, 
is not easy to implement.
The catch-22 is that we don't know if the subject table has triggers
or is a view before we open it, and we only open it in the
delayed thread. We don't know if the query involves pre-locking
until we have opened all tables, and we always first create
the delayed thread, and only then open the remaining tables.
This patch detects the problematic scenarios and converts
DELAYED INSERT to a normal INSERT using the following approach:
 * if the statement is executed under pre-locking (e.g. from
   within a stored function or trigger) or the right
   side may require pre-locking, we detect the situation
   before creating a delayed insert thread and convert the statement
   to a conventional INSERT.
  * if the subject table is a view or has triggers, we shutdown
   the delayed thread and convert the statement to a conventional
   INSERT.
2007-05-16 09:51:05 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
bb089cea38 bug #8663 cant use bigint unsigned as input to cast
in the case of the overflow in the decimal->integer conversion
we didn't return the proper boundary value, but just the result
of the conversion we calculated on the moment of the error
2007-05-16 10:12:49 +05:00
igor@olga.mysql.com
8b829fb1ae Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28272
2007-05-15 14:14:52 -07:00
evgen@moonbone.local
fbb2332628 Bug#28208: Wrong result of a non-const STRING function with a const DATETIME
function.

A wrong  condition was used to check that the
Arg_comparator::can_compare_as_dates() function calculated the value of the
string constant. When comparing a non-const STRING function with a constant
DATETIME function it leads to saving an arbitrary value as a cached value of
the DATETIME function.

Now the Arg_comparator::set_cmp_func() function initializes the const_value
variable to the impossible DATETIME value (-1) and this const_value is
cached only if it was changed by the Arg_comparator::can_compare_as_dates()
function.
2007-05-16 00:30:12 +04:00
igor@olga.mysql.com
fea67e6868 Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug28272
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28272
2007-05-15 13:16:10 -07:00
kostja@vajra.(none)
0a061c902b Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  vajra.(none):/opt/local/work/mysql-5.1-runtime
2007-05-15 17:54:11 +04:00