1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-29 21:42:28 +03:00

22184 Commits

Author SHA1 Message Date
mikael@dator6.(none)
f09169670b Fixed ndbcluster_rollback 2007-09-15 23:33:04 +02:00
mikael@dator6.(none)
0f18ff3350 BUG#30996: Committed too early when autocommit and lock table
Moved out a lot of code into functions from external_lock and
start_stmt
Fixed a crashing bug at memory alloc failure
Merged the stmt and all variables into one trans variable
Always register start of statement as according to the
interface of the handlers.
Also register for start of transaction when not statement commit
== not autocommit AND no begin - commit ongoing
Now that we registered in a proper manner we also needed to handle
the commit call when end of statement and transaction is ongoing
Added start_stmt_count to know when we have start of statement
for first table
2007-09-14 00:10:47 +02:00
mskold/marty@linux.site
d4e84e13b0 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
2007-09-13 10:06:42 +02:00
mskold/marty@linux.site
2ea6d3d680 Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
2007-09-13 10:00:14 +02:00
mskold/marty@mysql.com/linux.site
44b6c2edad bug#27494 An invalid subselect crashes mysql server: Added check for missing arguments 2007-09-13 09:47:21 +02:00
tomas@whalegate.ndb.mysql.com
63648db422 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-bj
2007-09-12 13:55:45 +02:00
tomas@whalegate.ndb.mysql.com
35bddfecf7 Bug #11313 confusing/erroneous 4006 message 2007-09-07 11:15:07 +02:00
tomas@whalegate.ndb.mysql.com
b5e7c8dbd3 change printout to be a warning 2007-09-05 19:39:13 +02:00
tomas@whalegate.ndb.mysql.com
1657c2d88a getting rid of flush altogether, fix with post_epoch hendeling and/or changes in Rows_log_event
- problem is the database name accessed in Rows_log_event write... get_db() which is a pointer to the share string...
- point to table map instead?
- or copy it?
- or make sure that anything interacting with the share happens _after_ the epoch

Problem with flush is that STMT_END_F may not be included as it shoudld...
2007-09-05 11:43:42 +02:00
tomas@whalegate.ndb.mysql.com
39edaf9f8d this flush with flag TRUE causes spurious errors in the binlog... as it will insert a STMT_END_F... and hence an invalid binlog (missing table mappings) 2007-09-05 09:22:58 +02:00
tomas@whalegate.ndb.mysql.com
29af14afa2 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
2007-09-04 22:25:23 +02:00
tomas@whalegate.ndb.mysql.com
08b8d6aeaf Bug#20872 master*.err: miscellaneous error messages 2007-08-30 11:46:30 +02:00
tomas@whalegate.ndb.mysql.com
dfc1e0cc79 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
2007-08-30 10:46:32 +02:00
tomas@whalegate.ndb.mysql.com
a7921ab61d Bug#20872 master*.err: miscellaneous error messages 2007-08-30 10:41:19 +02:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
f8a85abf3c Merge jhe@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into  dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb-bj.merge
2007-08-30 16:17:32 +08:00
mats@kindahl-laptop.dnsalias.net
f85fa9c06f Merge kindahl-laptop.dnsalias.net:/home/bk/b29968-merge-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/merge-5.1-target-5.1.22
2007-08-29 16:12:54 +02:00
mats@kindahl-laptop.dnsalias.net
65399a4bb5 BUG#29968 (rpl_ndb_circular.test and rpl_ndb_log.test fail):
Removing unguarded read of slave_running field from inside
terminate_slave_threads(). This could cause premature exit in the event
that the slave thread already were shutting down, but isn't finished yet.

The fields slave_running, io_thd, and sql_thread are guarded by an
associated run_lock. A read of these fields were not guarded inside
terminate_slave_threads(), which caused an assertion to fire. The
assertion was removed, and the code reorganized slightly.
2007-08-29 16:06:59 +02:00
tomas@whalegate.ndb.mysql.com
8ea0a23978 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-08-29 12:51:25 +02:00
tomas@whalegate.ndb.mysql.com
53eaf05bb2 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
- reverting patch as there where unknows sideeffects that we do not have time to follow up on just now
2007-08-29 09:44:37 +02:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
56902d5251 Merge dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb
into  dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb-bj.merge
2007-08-29 10:49:31 +08:00
tomas@whalegate.ndb.mysql.com
5ea9174c50 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-08-28 15:47:12 +02:00
tomas@whalegate.ndb.mysql.com
803228a1a8 Bug #30667 ndb table discovery does not work correcly with information schema
- the listed file_names are not necessarily on disk, so we need to discover them if they aren't
2007-08-28 15:43:06 +02:00
tomas@whalegate.ndb.mysql.com
c2a2267ba1 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-08-28 11:22:24 +02:00
rafal@quant.(none)
88b8ad10c5 A fix for handling endianess in Field_blob::unpack(). 2007-08-28 10:37:29 +02:00
rafal@quant.(none)
7d72a132b6 Merge quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22
into  quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22-merge
2007-08-28 10:24:40 +02:00
rafal@quant.(none)
c55627e9e2 BUG#21842: Exclude Rows_log_event members used in event application if
not compiled as a replication server - a fix from rpl clone now applied
to 5.1.22 tree.
2007-08-28 10:14:45 +02:00
tomas@whalegate.ndb.mysql.com
17f751ed05 correct compile error 2007-08-28 07:55:07 +02:00
tomas@whalegate.ndb.mysql.com
148bd2158a Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
2007-08-28 07:45:14 +02:00
tomas@whalegate.ndb.mysql.com
037f79a43c Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue 2007-08-28 07:42:43 +02:00
rafal@quant.(none)
0924d086f7 Merge quant.(none):/ext/mysql/bkroot/mysql-5.1-target-5.1.22
into  quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22-merge
2007-08-27 22:51:13 +02:00
tsmith@ramayana.hindu.god
2c44def1ee Bug #30389: connection_id() always return 0 in embedded server
Initialize thd->variables.pseudo_thread_id when a new embedded
thd is created.
2007-08-27 14:31:27 -06:00
tsmith@ramayana.hindu.god
c0fd09224b Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  ramayana.hindu.god:/home/tsmith/m/bk/51-target22-X
2007-08-27 14:23:02 -06:00
rafal@quant.(none)
95bece5d11 Merge quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22
into  quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22-merge
2007-08-27 21:15:20 +02:00
rafal@quant.(none)
3584a4d400 BUG#21842: There was an inconsistency in the use of table->record[0] and
table->record[1] buffers inside Rows_log_event::find_row() function. 
The patch fixes this.
2007-08-27 20:22:04 +02:00
tsmith@ramayana.hindu.god
549ed88635 Bug #30648: Partition handler may not initialize variable used w/ autoincrement
A local variable may be used uninitialized in 
ha_partition::get_auto_increment().  Initialize it properly.
2007-08-27 11:46:34 -06:00
tomas@whalegate.ndb.mysql.com
7d23f75534 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
2007-08-27 15:41:24 +02:00
tomas@whalegate.ndb.mysql.com
e1f827da84 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue 2007-08-27 15:40:49 +02:00
gkodinov/kgeorge@magare.gmz
240e9329e7 portation fixes for bug 29536 and 29325 in
re-pushing for 5.1.22.
2007-08-27 15:01:29 +03:00
gkodinov/kgeorge@magare.gmz
424e70353f re-push of Bug 29536 for 5.1.22: timestamp inconsistent in replication around 1970
MySQL replicates the time zone only when operations that involve
it are performed. This is controlled by a flag. But this flag
is set only on successful operation.
The flag must be set also when there is an error that involves
a timezone (so the master would replicate the error to the slaves).
2007-08-27 12:33:57 +03:00
gkodinov/kgeorge@magare.gmz
682258a699 recommit of Addendum to bug #29325 to 5.1.22 tree
keep_files_on_create made a startup option
2007-08-27 12:15:01 +03:00
rafal@quant.(none)
f8b64e17f9 BUG#21842 (Cluster fails to replicate to innodb or myisam with err 134
using TPC-B):
 
Problem: A RBR event can contain incomplete row data (only key value and
fields which have been changed). In that case, when the row is unpacked
into record and written to a table, the missing fields get incorrect NULL
values leading to master-slave inconsistency.
 
Solution: Use values found in slave's table for columns which are not given
in the rows event. The code for writing a single row uses the following 
algorithm: 

1. unpack row_data into table->record[0],
2. try to insert record,
3. if duplicate record found, fetch it into table->record[0],
4. unpack row_data into table->record[0],
5. write table->record[0] into the table.

Where row_data is the row as stored in the data area of a rows event. 
Thus:

a) unpacking of row_data happens at the time when row is written into 
 a table,

b) when unpacking (in step 4), only columns present in row_data are 
 overwritten - all other columns remain as they were found in the table.
 
Since all data needed for the above algorithm is stored inside 
Rows_log_event class, functions which locate and write rows are turned 
into methods of that class.

replace_record()     -> Rows_log_event::write_row()
find_and_fetch_row() -> Rows_log_event::find_row()

Both methods take row data from event's data buffer - the row being 
processed is pointed by m_curr_row. They unpack the data as needed into 
table's record buffers record[0] or record[1]. When row is unpacked, 
m_curr_row_end is set to point at next row in the data buffer.

Other changes introduced in this changeset:

- Change signature of unpack_row(): don't report errors and don't
setup table's rw_set here. Errors can happen only when setting default 
values in prepare_record() function and are detected there.
 
- In Rows_log_event and derived classes, don't pass arguments to
the execution primitives (do_...() member functions) but use class
members instead.

- Move old row handling code into log_event_old.cc to be used by 
*_rows_log_event_old classes.

Also, a new test rpl_ndb_2other is added which tests basic replication 
from master using ndb tables to slave storing the same tables using 
(possibly) different engine (myisam,innodb).
  
Test is based on existing tests rpl_ndb_2myisam and rpl_ndb_2innodb. 
However, these tests doesn't work for various reasons and currently are 
disabled (see BUG#19227).
  
The new test differs from the ones it is based on as follows:
  
1. Single test tests replication with different storage engines on slave 
(myisam, innodb, ndb).
  
2. Include file extra/rpl_tests/rpl_ndb_2multi_eng.test containing 
original tests is replaced by extra/rpl_tests/rpl_ndb_2multi_basic.test 
which doesn't contain tests using partitioned tables as these don't work 
currently. Instead, it tests replication to a slave which has more or 
less columns than master.
  
3. Include file include/rpl_multi_engine3.inc is replaced with 
include/rpl_multi_engine2.inc. The later differs by performing slightly 
different operations (updating more than one row in the table) and 
clearing table with "TRUNCATE TABLE" statement instead of "DELETE FROM" 
as replication of "DELETE" doesn't work well in this setting.
  
4. Slave must use option --log-slave-updates=0 as otherwise execution of 
replication events generated by ndb fails if table uses a different 
storage engine on slave (see BUG#29569).
2007-08-26 14:31:10 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
eb6651b017 ha_partition.cc, ha_partition.h:
bug fixed
partition_pruning.result:
  test fixed
2007-08-24 21:36:51 +05:00
tomas@whalegate.ndb.mysql.com
7f429ecc7f Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
2007-08-24 09:51:41 +02:00
gshchepa/uchum@gleb.loc
4a7fdf8611 Fixed bug #30396.
Recommit to 5.1.22.
The bug caused memory corruption for some queries with top OR level
in the WHERE condition if they contained equality predicates and 
other sargable predicates in disjunctive parts of the condition.

The corruption happened because the upper bound of the memory
allocated for KEY_FIELD and SARGABLE_PARAM internal structures
containing info about potential lookup keys was calculated incorrectly
in some cases. In particular it was calculated incorrectly when the
WHERE condition was an OR formula with disjuncts being AND formulas
including equalities and other sargable predicates.
2007-08-24 02:23:49 +05:00
gshchepa/uchum@gleb.loc
6e76e82e8b Fixed bug #30201.
Recommit to 5.1.22.
Killing a SELECT query with KILL QUERY or KILL CONNECTION
causes a server crash if the query cache is enabled.

Normal evaluation of a query may be interrupted by the
KILL QUERY/CONNECTION statement, in this case the mysql_execute_command
function returns TRUE, and the thd->killed flag has true value.
In this case the result of the query may
be cached incompletely (omitting call to query_cache_insert inside
the net_real_write function), and next call to query_cache_end_of_result
may lead to server crash.
Thus, the query_cache_end_of_result function has been modified to abort
query cache in the case of killed thread.
2007-08-24 01:59:48 +05:00
gshchepa/uchum@gleb.loc
e543c7436e Fixed bug #30287.
Recommit to 5.1.22.
The server created temporary tables for filesort in the working directory
instead of the specified tmpdir directory.
2007-08-24 01:54:18 +05:00
tomas@whalegate.ndb.mysql.com
5b042fb611 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-08-23 16:23:55 +02:00
tomas@whalegate.ndb.mysql.com
8fb593b840 BUG#30017 log-slave-updates incorrect behavior for cluster
- let the receiving injector thread decide what to do
(recommit for 5.1.22 target)
2007-08-23 16:13:21 +02:00
tomas@whalegate.ndb.mysql.com
0c38530b82 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-08-23 15:15:35 +02:00
tomas@whalegate.ndb.mysql.com
166849188d manual merge 2007-08-21 14:41:50 +02:00