Commit graph

37283 commits

Author SHA1 Message Date
evgen@moonbone.local
975d22327e Extended fix for the bug#29555.
The get_time_value function is added. It is used to obtain TIME values both
from items the can return time as an integer and from items that can return
time only as a string.
The Arg_comparator::compare_datetime function now uses pointer to a getter
function to obtain values to compare. Now this function is also used for
comparison of TIME values.
The get_value_func variable is added to the Arg_comparator class.
It points to a getter function for the DATE/DATETIME/TIME comparator.
2007-07-15 21:51:36 +04:00
kostja@bodhi.(none)
5466b0df14 Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in
Linux Debug build (possible deadlock)"

The bug is not repeatable any more.
2007-07-15 13:34:35 +04:00
evgen@moonbone.local
1baf8a9301 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/29729-bug-5.0-opt-mysql
2007-07-14 23:30:07 +04:00
evgen@moonbone.local
e717f9d2eb Bug#29729: Wrong conversion error led to an empty result set.
The Field_newdate::store when storing a DATETIME value was returning the
'value was cut' error even if the thd->count_cuted_fields flag is set to
CHECK_FIELD_IGNORE. This made range optimizr think that there is no
appropriate data in the table and thus to return an empty set.

Now the Field_newdate::store function returns conversion error only if the
thd->count_cuted_fields flag isn't set to CHECK_FIELD_IGNORE.
2007-07-14 22:43:58 +04:00
sergefp@mysql.com
ecfa8da35c BUG#29740: Make the test result deterministic 2007-07-14 22:02:10 +04:00
sergefp@pylon64.mylan
a452cbff79 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/psergey/mysql-5.0-bug29740
2007-07-14 20:31:59 +04:00
istruewing@chilla.local
aceded7c0e Merge chilla.local:/home/mydev/mysql-4.1-axmrg
into  chilla.local:/home/mydev/mysql-5.0-axmrg
2007-07-14 17:51:52 +02:00
istruewing@chilla.local
23dbf09798 Merge chilla.local:/home/mydev/mysql-5.0-amain
into  chilla.local:/home/mydev/mysql-5.0-axmrg
2007-07-14 17:51:00 +02:00
istruewing@chilla.local
4874e18dab Merge chilla.local:/home/mydev/mysql-4.1-amain
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-07-14 16:19:17 +02:00
svoj@mysql.com/april.(none)
c5608c9db2 BUG#29734 - thread_id=0 in binary log which leads to temporary table conflicts
pseudo_thread_id was reset to zero via mysql_change_user() handling
whereas there is no reason to do that.  Moreover, having two
concurrent threads that change user and create a namesake temp tables
leads to recording the dup pair of queries:

   set @@session.pseudo_thread_id = 0;
   CREATE temporary table `the namesake`;

which will stall the slave as the second instance can not be created.
And that is the bug case.

Fixed by correcting pseudo_thread_id value after mysql_change_user().
2007-07-14 17:58:39 +05:00
igor@olga.mysql.com
d40c4aaa67 Merge olga.mysql.com:/home/igor/mysql-5.0-rpl
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-merge
2007-07-13 19:05:30 -07:00
tnurnberg@sin.intern.azundris.com
5cbe511f3b Bug#27198: Error returns from time() are ignored
gettimeofday() can fail and presumably, so can time().
Keep an eye on it.

Since we have no data on this at all so far, we just
retry on failure (and log the event), assuming that
this is just an intermittant failure. This might of
course hang the threat until we succeed. Once we know
more about these failures, an appropriate more clever
scheme may be picked (only try so many times per thread,
etc., if that fails, return last "good" time() we got or
some such).  Using sql_print_information() to log as this
probably only occurs in high load scenarios where the debug-
trace likely is disabled (or might interfere with testing
the effect).  No test-case as this is a non-deterministic
issue.
2007-07-13 17:50:58 +02:00
gshchepa/uchum@gleb.loc
92b65b8a4b Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-13 20:49:21 +05:00
sergefp@mysql.com
8bba908915 BUG#29740: Wrong query results for index_merge/union over HEAP table.
- return HA_KEY_SCAN_NOT_ROR flag for HASH indexes;
- Fix ha_heap::cmp_ref() to work with BTREE index scans.
2007-07-13 19:13:40 +04:00
tomas@whalegate.ndb.mysql.com
4fde2c2072 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-maint
2007-07-13 15:59:43 +02:00
tomas@whalegate.ndb.mysql.com
af75c3eeec Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-07-13 15:53:58 +02:00
gkodinov/kgeorge@magare.gmz
d6ad4e6eb9 disabled the output of the full path in tesing bug 29325 2007-07-13 16:32:29 +03:00
gkodinov/kgeorge@magare.gmz
2b8e462637 Bug 29325: moved the test from create_not_windows to symlink. 2007-07-13 13:56:22 +03:00
dkatz@damien-katzs-computer.local
0a30874589 When opening a new connecgtion, changed mysqltest to prefer a brand new connection slot over an existing, closed slot. Fixes a problem with reused slots that can cause tests to fail. bug#29579 2007-07-13 01:55:04 -04:00
dkatz@damien-katzs-computer.local
d2e45f205c Minor fixes for test failures and compiler warnings for Bug #29579. 2007-07-13 00:45:54 -04:00
dkatz@damien-katzs-computer.local
a55c8bef49 Merge damien-katzs-computer.local:/Users/dkatz/mysql50
into  damien-katzs-computer.local:/Users/dkatz/50
2007-07-12 22:19:07 -04:00
dkatz@damien-katzs-computer.local
899aaa6bb2 Bug #29579 Clients using SSL can hang the server
Added an option to yassl to allow "quiet shutdown" like openssl does. This option causes the SSL libs to NOT perform the close_notify handshake during shutdown. This fixes a hang we experience because we hold a lock during socket shutdown.
2007-07-12 22:06:33 -04:00
kostja@bodhi.(none)
6c152b29f2 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
2007-07-12 23:22:17 +04:00
kostja@bodhi.(none)
366b761f91 Apply community contributed fix for Bug#13326 SQLPS statement logging is
incomplete in 5.0 (and review fixes).

When in 5.0.13 I introduced class Prepared_statement and methods
::prepare and ::execute, general logging was left out of this class.
This was good for stored procedures, since in stored procedures
we do not log sub-statements, but introduced a regression in case of SQL
syntax for prepared statements, as previously we would log the actual
statements to the log, and after the change we would log only
COM_QUERY text.

Restore the old behavior, but still suppress logging if inside a stored 
procedure.

Based on a community contributed patch from Vladimir Shebordaev.

No test case since we do not have a mechanism to test output
of the general log.
2007-07-12 23:14:00 +04:00
evgen@moonbone.local
1b1464ba30 Bug#29739: Incorrect time comparison in BETWEEN.
Time values were compared by the BETWEEN function as strings. This led to a
wrong result in cases when some of arguments are less than 100 hours and other
are greater.

Now if all 3 arguments of the BETWEEN function are of the TIME type then
they are compared as integers.
2007-07-12 23:09:55 +04:00
kostja@bodhi.(none)
675a4e8f7b Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  bodhi.(none):/opt/local/work/mysql-5.0-26141-final
2007-07-12 22:28:13 +04:00
kostja@bodhi.(none)
5ab4b6f1ac A fix and a test case for Bug#26141 mixing table types in trigger
causes full table lock on innodb table.
Also fixes Bug#28502 Triggers that update another innodb table 
will block on X lock unnecessarily (duplciate).
Code review fixes.

Both bugs' synopses are misleading: InnoDB table is
not X locked. The statements, however, cannot proceed concurrently, 
but this happens due to lock conflicts for tables used in triggers,
not for the InnoDB table. 

If a user had an InnoDB table, and two triggers, AFTER UPDATE and 
AFTER INSERT, competing for different resources (e.g. two distinct
MyISAM tables), then these two triggers would not be able to execute
concurrently. Moreover, INSERTS/UPDATES of the InnoDB table would
not be able to run concurrently. 
The problem had other side-effects (see respective bug reports).

This behavior was a consequence of a shortcoming of the pre-locking
algorithm, which would not distinguish between different DML operations
(e.g. INSERT and DELETE) and pre-lock all the tables
that are used by any trigger defined on the subject table.

The idea of the fix is to extend the pre-locking algorithm to keep track,
for each table, what DML operation it is used for and not
load triggers that are known to never be fired.
2007-07-12 22:26:41 +04:00
thek@adventure.(none)
825b5096ad Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-07-12 15:38:23 +02:00
thek@adventure.(none)
2a5e7fe592 Merge adventure.(none):/home/thek/Development/cpp/bug28249/my50-bug28249
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-07-12 15:30:34 +02:00
gkodinov/kgeorge@magare.gmz
c118fe53a6 Bug 29325: test suite is not applicable on windows 2007-07-12 15:12:56 +03:00
thek@adventure.(none)
8ee7e48de8 Bug#28249 Query Cache returns wrong result with concurrent insert / certain lock
A race condition in the integration between MyISAM and the query cache code 
caused the query cache to fail to invalidate itself on concurrently inserted
data.

This patch fix this problem by using the existing handler interface which, upon
each statement cache attempt, compare the size of the table as viewed from the 
cache writing thread and with any snap shot of the global table state. If the
two sizes are different the global table size is unknown and the current
statement can't be cached.
2007-07-12 13:29:51 +02:00
igor@olga.mysql.com
5fea580f07 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29604
2007-07-11 21:05:09 -07:00
igor@olga.mysql.com
7f64144bf0 Fixed bug #29604.
A bug in the restore_prev_nj_state function allowed interleaving 
inner tables of outer join operations with outer tables. With the
current implementation of the nested loops algorithm it could lead
to wrong result sets for queries with nested outer joins.
Another bug in this procedure effectively blocked evaluation of some
valid execution plans for queries with nested outer joins.
2007-07-11 18:45:35 -07:00
kostja@bodhi.(none)
3364066e29 A fix and a test case for Bug#25859 ALTER DATABASE works w/o parameters.
Fix the parser to make the database options not optional.
2007-07-12 01:10:29 +04:00
gshchepa/uchum@gleb.loc
b7bb96dd5a Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-12 01:00:30 +05:00
gshchepa/uchum@gleb.loc
b0496c8967 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt-29360
2007-07-12 00:58:23 +05:00
gshchepa/uchum@gleb.loc
b01237b9cb field_conv.cc:
Additional fix for bug #29360.
2007-07-12 00:55:40 +05:00
evgen@moonbone.local
6c985ff921 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/29555-bug-5.0-opt-mysql
2007-07-11 23:37:02 +04:00
evgen@moonbone.local
df9c376e72 Bug#29555: Comparing time values as strings may lead to a wrong result.
Time values were compared as strings. This led to a wrong comparison
result when comparing values one of which is under 100 hours and another is
over 100 hours.

Now when the Arg_comparator::set_cmp_func function sees that both items to
compare are of the TIME type it sets the comparator to the
Arg_comparator::compare_e_int or the Arg_comparator::compare_int_unsigned
functions.
2007-07-11 23:18:02 +04:00
gshchepa/uchum@gleb.loc
13513be628 Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29360
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-12 00:15:01 +05:00
gshchepa/uchum@gleb.loc
13844b2533 Fixed bug #29360.
The special `zero' enum value was coerced to the normal
empty string enum value during a field-to-field copy.
This bug affected CREATE ... SELECT statements and
SELECT aggregate GROUP BY enum field statements.

Also this bug made unnecessary warnings during
the execution of CREATE ... SELECT statements:
Warning       1265    Data truncated for column...
2007-07-12 00:03:08 +05:00
kaa@polly.local
43286bf4a5 Merge polly.local:/home/kaa/src/maint/bug24192/my50-bug24192
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2007-07-11 19:29:11 +04:00
gkodinov/kgeorge@magare.gmz
b5aa55e107 Addendum to bug 29325:
test if TRUNCATE TABLE works with keep_files_on_create
2007-07-11 18:02:47 +03:00
kaa@polly.local
b270fa6736 Fix for bug #24192 "MySQL replication does not exit server when running out of memory"
In case of out-of-memory error received from the master, print the corresponding message to the error log and stop slave I/O thread to avoid reconnecting with a wrong binary log position.
2007-07-11 18:38:45 +04:00
gkodinov/kgeorge@magare.gmz
1e4d690476 fixed uninitialized variable introduced by the fix for bug 29325 2007-07-11 12:37:47 +03:00
gkodinov/kgeorge@magare.gmz
1f7a28bda1 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29325-5.0-opt
2007-07-11 11:59:46 +03:00
gkodinov/kgeorge@magare.gmz
015e1290a1 Bug #29325:
By default MyISAM overwrites .MYD and .MYI files no 
DATA DIRECTORY option is used. This can lead to two tables
using the same .MYD and .MYI files (that can't be dropped).

To prevent CREATE TABLE from overwriting a file a new option
is introduced : keep_files_on_create
When this is on the CREATE TABLE throws an error if either
the .MYD or .MYI exists for a MyISAM table.
The option is off by default (resulting in compatible behavior).
2007-07-11 10:49:54 +03:00
tnurnberg@sin.intern.azundris.com
9b4c3d0db4 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/tnurnberg/22540/50-22540
2007-07-10 18:33:20 +02:00
tsmith@sita.local
ccea97fa6f NULL MERGE UP to 5.1.
Apply innodb-5.0-* snapshots:  ss1489 and ss1547.

Fixes:
Bug#9709:  InnoDB inconsistensy causes "Operating System Error 32/33"
Bug#22819: SHOW INNODB STATUS crashes the server with an assertion failure under high load
Bug#25645: Assertion failure in file srv0srv.c
Bug#27294: insert into ... select ... causes crash with innodb_locks_unsafe_for_binlog=1
Bug#28138: indexing column prefixes produces corruption in InnoDB
2007-07-10 08:16:51 -06:00
gkodinov/kgeorge@magare.gmz
f3d270df69 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29070-5.0-opt
2007-07-10 11:58:36 +03:00