Commit graph

39085 commits

Author SHA1 Message Date
kroki/tomash@moonlight.intranet
0d457976ea Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug21354
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21354
2006-10-10 17:18:36 +04:00
mats@romeo.(none)
6c3b1f6eb0 BUG#21474 (There is a rotation before the last table map):
Removing code to step the group log position and just stepping
the event log position.  If the group log position were stepped
one time too many, it might be that the group starts at a position
that is not possible, e.g., at a Rows_log_event, or between an
Intvar_log_event and the following associated Query_log_event.
2006-10-10 15:18:21 +02:00
kroki/tomash@moonlight.intranet
fbf6507cf7 BUG#21354: (COUNT(*) = 1) not working in SELECT inside prepared
statement.

The problem was that during statement re-execution if the result was
empty the old result could be returned for group functions.

The solution is to implement proper cleanup() method in group
functions.
2006-10-10 17:08:47 +04:00
mats@romeo.(none)
799585c5ac Fixes to make replication team tree build on Windows. 2006-10-10 14:58:40 +02:00
joerg@trift2.
c1e351abdf Merge trift2.:/MySQL/M50/clone-5.0
into  trift2.:/MySQL/M50/push-5.0
2006-10-10 13:25:55 +02:00
mats@romeo.(none)
0b6ff112b2 Fix to make it build on all platforms.
Replacing C++ code with C code in a C file.
2006-10-10 12:29:24 +02:00
kroki/tomash@moonlight.intranet
588e8df592 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug19111
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-bug19111
2006-10-10 14:00:49 +04:00
kroki/tomash@moonlight.intranet
4a28f8f1a0 Bug#19111: TRIGGERs selecting from a VIEW on the firing base table fail.
In a trigger or a function used in a statement it is possible to do
SELECT from a table being modified by the statement.  However,
encapsulation of such SELECT into a view and selecting from a view
instead of direct SELECT was not possible.

This happened because tables used by views (which in their turn
were used from functions/triggers) were not excluded from checks
in unique_table() routine as it happens for the rest of tables
added to the statement table list for prelocking.

With this fix we ignore all such tables in unique_table(), thus
providing consistency: inside a trigger or a functions SELECT from
a view may be used where plain SELECT is allowed.  Modification of
the same table from function or trigger is still disallowed.  Also,
this patch doesn't affect the case where SELECT from the table being
modified is done outside of function of trigger, such SELECTs are
still disallowed (this limitation and visibility problem when function
select from a table being modified are subjects of bug 21326).  See
also bug 22427.
2006-10-10 13:44:04 +04:00
jonas@perch.ndb.mysql.com
e600a3d394 Merge perch.ndb.mysql.com:/home/jonas/src/mysql-5.1
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2006-10-10 11:25:24 +02:00
jonas@perch.ndb.mysql.com
fe61968dc8 Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2006-10-10 11:08:23 +02:00
jonas@perch.ndb.mysql.com
5590e99d2e Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-work
2006-10-10 11:06:51 +02:00
jonas@perch.ndb.mysql.com
c301735962 ndb - bug#23107
fix bug in test prg
2006-10-10 09:47:30 +02:00
jonas@perch.ndb.mysql.com
d25765d116 ndb - bug#23107
fix bug in handling of inactive timeout for scan, when all is delivered
2006-10-10 09:37:54 +02:00
istruewing@chilla.local
b15a23a79e Merge chilla.local:/home/mydev/mysql-5.0-bug8283
into  chilla.local:/home/mydev/mysql-5.1-bug8283
2006-10-09 22:24:55 +02:00
istruewing@chilla.local
014c1c885e Bug#8283 - OPTIMIZE TABLE causes data loss
After merge fix. MyISAM version 10.
2006-10-09 22:16:22 +02:00
istruewing@chilla.local
c299de14ee Merge chilla.local:/home/mydev/mysql-4.1-bug8283-one
into  chilla.local:/home/mydev/mysql-5.0-bug8283
2006-10-09 20:03:12 +02:00
istruewing@chilla.local
1daa6a710d Merge chilla.local:/home/mydev/mysql-4.1-bug8283
into  chilla.local:/home/mydev/mysql-4.1-bug8283-one
2006-10-09 19:40:16 +02:00
istruewing@chilla.local
5f08a83186 Bug#8283 - OPTIMIZE TABLE causes data loss
OPTIMIZE TABLE with myisam_repair_threads > 1 performs a non-quick 
parallel repair. This means that it does not only rebuild all 
indexes, but also the data file.

Non-quick parallel repair works so that there is one thread per 
index. The first of the threads rebuilds also the new data file.

The problem was that all threads shared the read io cache on the
old data file. If there were holes (deleted records) in the table,
the first thread skipped them, writing only contiguous, non-deleted
records to the new data file. Then it built the new index so that
its entries pointed to the correct record positions. But the other
threads didn't know the new record positions, but put the positions
from the old data file into the index.

The new design is so that there is a shared io cache which is filled
by the first thread (the data file writer) with the new contiguous
records and read by the other threads. Now they know the new record
positions.

Another problem was that for the parallel repair of compressed
tables a common bit_buff and rec_buff was used. I changed it so
that thread specific buffers are used for parallel repair.

A similar problem existed for checksum calculation. I made this
multi-thread safe too.
2006-10-09 19:26:55 +02:00
gkodinov/kgeorge@macbook.local
5367793e8b Merge bk-internal:/home/bk/mysql-5.0-opt
into  macbook.local:/Users/kgeorge/mysql/work/B22781-5.0-opt
2006-10-09 19:53:07 +04:00
gkodinov/kgeorge@macbook.local
13633864bb Bug #22781: SQL_BIG_RESULT fails to influence sort plan
Currently SQL_BIG_RESULT is checked only at compile time.
 However, additional optimizations may take place after
 this check that change the sort method from 'filesort'
 to sorting via index. As a result the actual plan
 executed is not the one specified by the SQL_BIG_RESULT
 hint. Similarly, there is no such test when executing
 EXPLAIN, resulting in incorrect output.
 The patch corrects the problem by testing for
 SQL_BIG_RESULT both during the explain and execution
 phases.
2006-10-09 19:51:41 +04:00
mats@romeo.(none)
b8941bbc8f Post-merge fixes. 2006-10-09 13:47:06 +02:00
svoj@mysql.com/april.(none)
7683b297cf Merge mysql.com:/home/svoj/devel/mysql/engines/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/engines/mysql-5.0-engines
2006-10-08 22:40:25 +05:00
svoj@april.(none)
cab855cac1 Merge mysql.com:/home/svoj/devel/mysql/engines/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/engines/mysql-5.1-engines
2006-10-08 22:35:27 +05:00
svoj@mysql.com/april.(none)
0830486836 After merge fix. 2006-10-08 22:34:32 +05:00
svoj@may.pils.ru
0ea6959d78 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1
into  may.pils.ru:/home/svoj/devel/bk/mysql-5.1-engines
2006-10-08 15:32:00 +05:00
svoj@may.pils.ru
8cfef42f72 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  may.pils.ru:/home/svoj/devel/bk/mysql-5.0-engines
2006-10-08 15:14:53 +05:00
svoj@may.pils.ru
b7f016dbd3 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into  may.pils.ru:/home/svoj/devel/bk/mysql-4.1-engines
2006-10-08 15:11:17 +05:00
mats@romeo.(none)
d4d26ba7d5 Merge romeo.(none):/home/bkroot/mysql-5.1-new-rpl
into  romeo.(none):/home/bk/b19459-mysql-5.1-new
2006-10-06 15:31:05 +02:00
svoj@april.(none)
1b5c111cf8 Merge mysql.com:/home/svoj/devel/mysql/BUG22937/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG22937/mysql-5.1-engines
2006-10-06 15:31:11 +05:00
svoj@mysql.com/april.(none)
8f4b0d946a Merge mysql.com:/home/svoj/devel/mysql/BUG22937/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG22937/mysql-5.0-engines
2006-10-06 15:29:30 +05:00
svoj@mysql.com/april.(none)
09b2a2a056 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG22937/mysql-4.1-engines
2006-10-06 15:18:25 +05:00
svoj@mysql.com/april.(none)
1e82044cd6 BUG#22937 - Valgrind failure in 'merge' test (ha_myisammrg.cc:329)
This is addition to fix for bug21617. Valgrind reports an error when
opening merge table that has underlying tables with less indexes than
in a merge table itself.

Copy at most min(file->keys, table->key_parts) elements from rec_per_key array.
This fixes problems when merge table and subtables have different number of keys.
2006-10-06 15:17:42 +05:00
svoj@april.(none)
c2f1876816 Merge mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.1-engines
2006-10-06 14:55:57 +05:00
svoj@mysql.com/april.(none)
60ba9f2b63 Merge mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.0-engines
2006-10-06 14:49:21 +05:00
svoj@mysql.com/april.(none)
6a1a765b5d Per discussion with pekka removed non-deterministic test case for bug#21381. 2006-10-06 14:47:58 +05:00
kroki/tomash@moonlight.intranet
ee0cebf9a7 BUG#21726: Incorrect result with multiple invocations of LAST_INSERT_ID.
Note: bug#21726 does not directly apply to 4.1, as it doesn't have stored
procedures.  However, 4.1 had some bugs that were fixed in 5.0 by the
patch for bug#21726, and this patch is a backport of those fixes.
Namely, in 4.1 it fixes:

  - LAST_INSERT_ID(expr) didn't return value of expr (4.1 specific).

  - LAST_INSERT_ID() could return the value generated by current
    statement if the call happens after the generation, like in

      CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
      INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());

  - Redundant binary log LAST_INSERT_ID_EVENTs could be generated.
2006-10-06 13:34:07 +04:00
mats@romeo.(none)
e762328b54 BUG#19459 (BINLOG RBR command does not lock tables correctly causing
crash for, e.g., NDB):

Before, mysqlbinlog printed table map events as a separate statement, so
when executing the event, the opened table was subsequently closed
when the statement ended. Instead, the row-based events that make up
a statement are now printed as *one* BINLOG statement, which means
that the table maps and the following *_rows_log_event events are
executed fully before the statement ends.

Changing implementation of BINLOG statement to be able to read the 
emitted format, which now consists of several chunks of BASE64-encoded
data.
2006-10-06 10:17:02 +02:00
mats@romeo.(none)
cb1fdf5165 Fix to build on 64-bit systems where sizeof(unsigned long long)
> sizeof(unsigned long).
2006-10-06 08:41:34 +02:00
svoj@mysql.com/april.(none)
dad1283cc8 Addition to fix for bug#10974. Fixed spelling. 2006-10-06 11:11:47 +05:00
svoj@april.(none)
ad85dccae4 Merge mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-5.1-engines
2006-10-06 11:09:58 +05:00
svoj@mysql.com/april.(none)
ee4080f9f9 Addition to fix for bug#10974. Fixed spelling. 2006-10-06 11:03:14 +05:00
svoj@mysql.com/april.(none)
94040c54b3 Merge mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-5.0-engines
2006-10-06 11:01:39 +05:00
svoj@mysql.com/april.(none)
c67aa031d6 Addition to fix for bug#10974. Fixed spelling. 2006-10-06 10:54:47 +05:00
mats@romeo.(none)
93ea3261eb Post-merge fixes. 2006-10-05 22:16:19 +02:00
svoj@mysql.com/april.(none)
5d096b89f2 After merge fix. 2006-10-06 00:22:41 +05:00
svoj@april.(none)
77cb275b70 Merge mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.1-engines
2006-10-05 21:15:12 +05:00
svoj@mysql.com/april.(none)
d41340516f Merge mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.0-engines
2006-10-05 19:02:29 +05:00
svoj@mysql.com/april.(none)
16c13a588f Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-4.1-engines
2006-10-05 18:56:10 +05:00
svoj@mysql.com/april.(none)
b141a7c1b9 BUG#21381 - Engine not notified about multi-table UPDATE IGNORE
Though this is not storage engine specific problem, I was able to
repeat this problem with BDB and NDB engines only. That was the
reason to add a test case into ndb_update.test. As a result
different bad things could happen.

BDB has removed duplicate rows which is not expected.
NDB returns an error.

For multi table update notify storage engine about UPDATE IGNORE
as it is done in single table UPDATE.
2006-10-05 18:23:53 +05:00
mats@romeo.(none)
fe97fd4bdb Merge romeo.(none):/home/bkroot/mysql-5.1-new-rpl
into  romeo.(none):/home/bk/b20265-mysql-5.1-new-rpl
2006-10-05 15:22:41 +02:00