client code and replication slave code, as far as LOAD DATA INFILE and
other queries' execution is concerned. Duplication of code leads to
replication bugs, because the replication duplicate lags much behind.
Fix for 2 Valgrind errors on slave replicating LOAD DATA INFILE
- one serious (causing a random test failure in rpl_loaddata in 5.0)
- one not serious (theoretically a bug but not dangerous): uninited thd->row_count
sql/log_event.cc:
Fix for 2 Valgrind errors:
- one serious (causing a random test failure in rpl_loaddata in 5.0): uninited lex in replic of LOAD DATA INFILE on slave
- one not serious (theoretically a bug but not dangerous): uninited thd->row_count in replication of LOAD DATA INFILE on slave.
Sanja is likely to rework the fix to the 1st problem tomorrow.
was changed in the SHOW STORAGE ENGINES results)
mysql-test/r/ps_1general.result:
SHOW STORAGE ENGINES now has different text ("type" -> "engine", etc.)
next-key locking. Using this option the locks InnoDB sets on index
records do not affect the ``gap'' before that index record. Thus, this option
allows phantom problem.
innobase/include/srv0srv.h:
Added srv_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option.
innobase/row/row0sel.c:
If innodb_locks_unsafe_for_binlog option is used, we lock only the record, i.e.
next-key locking is not used. Therefore, setting lock to the index record
do not affect the ``gap'' before that index record. Thus, this option
allows phantom problem, because concurrent insert operations are allowed inside
the select range.
innobase/srv/srv0srv.c:
Added srv_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option.
sql/ha_innodb.cc:
Added innobase_locks_unsafe_for_binlog and srv_locks_unsafe_for_binlog for
innodb_locks_unsafe_for_binlog option.
sql/ha_innodb.h:
Added innobase_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option.
sql/mysqld.cc:
Added OPT_INNODB_LOCKS_UNSAFE_FOR_BINLOG, innobase_locks_unsafe_for_binlog for
innodb_locks_unsafe_for_binlog option.
sql/set_var.cc:
Added innodb_locks_unsafe_for_binlog and innobase_locks_unsafe_for_binlog for
innodb_locks_unsafe_for_binlog option.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Build-tools/Do-compile:
Auto merged
Docs/Makefile.am:
Auto merged
innobase/btr/btr0cur.c:
Auto merged
innobase/include/lock0lock.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/include/srv0srv.h:
Auto merged
innobase/include/sync0arr.h:
Auto merged
innobase/include/trx0trx.h:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/sync/sync0arr.c:
Auto merged
innobase/trx/trx0trx.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
mysql-test/r/innodb.result:
to be fixed after the merge
Ensures that the node doesn't crash by overflowing the UNDO log buffer
at local checkpoints. Inserts a real-time break after 512 operations
and when low on UNDO log buffer.
don't be confused if new privilege - ENUM ('N','Y') - columns are added (mostly because of downgrade)
don't expect NOT NULL fields to never contain a NULL :) - somebody may've changed table definition, or we may be reading the wrong column
mysql-test/mysql-test-run.sh:
Change to diskless
mysql-test/ndb/ndb_config_2_node.ini:
Change to diskless
mysql-test/ndb/ndbcluster.sh:
Change to diskless
ndb/src/common/mgmcommon/ConfigInfo.cpp:
Making Discless deprecated, so it still can be used but a warning will be printed if used.
Adde possibilty to transform a value of type ConfigInfo::BOOL, neede for depicated Discless
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1-ndb
mysql-test/mysql-test-run.sh:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
sql/sql_insert.cc:
Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
And it led to the above bug, because the binlogging of CREATE SELECT is done by select_insert::send_eof() (same function
as INSERT SELECT) and so, if the table is transactional and there is a failure, the statement is considered as rolled
back and so nothing is written in the binlog. So temp table MUST be deleted.
BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
which does not display the "# at" lines.
client/mysqlbinlog.cc:
Fix for BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines"
when reading a remote binlog, the start position is not always BIN_LOG_HEADER_SIZE (4).
sql/sql_table.cc:
Fix for BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table"
we must my_error() _before_ we write to the binlog, so that a meaningful error code is available
in thd->net.last_errno for storage of the DROP TABLE statement into the binlog.
when copying a small index file because the value returned
for $length is < 1024. This can happen if the filehandle
was open()ed as an UTF-8 encoded file with Unicode characters
(In this case read() returns characters not bytes)
(Thanks to Mike Bethune) for this hint)
(Bug #4446)
innobase/row/row0ins.c:
row_ins_foreign_check_on_constraint(): limit recursion for UPDATE too
mysql-test/r/innodb.result:
Add test for recursion depth limit
mysql-test/t/innodb.test:
Add test for recursion depth limit
ndb/include/kernel/GlobalSignalNumbers.h:
Remove unused signal number for GSN_SCAN_TABINFO
ndb/include/kernel/signaldata/ScanTab.hpp:
Remove definition of old signal ScanTabInfo
ndb/src/common/debugger/signaldata/ScanTab.cpp:
Removed old print function for SCAN_TABINFO
ndb/src/common/debugger/signaldata/SignalNames.cpp:
Removed name for GSN_SCAN_TABINFO
ndb/src/ndbapi/NdbApiSignal.cpp:
Removed SCAN_TABINFO and old comment
ndb/src/ndbapi/NdbConnectionScan.cpp:
Removed duplicate definition of WAIFOR_SCAN_TIMEOUT, real one is in NdbScanOperation.cpp
ndb/src/ndbapi/NdbScanOperation.cpp:
Removed duplicate debug printout
ndb/src/ndbapi/Ndbif.cpp:
Removed SCAN_TABINFO
Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1
innobase/btr/btr0cur.c:
Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1