Add checking of REDO to earlier during SR
so take-over of node can be performed
if it can't be restarted using logs
(which btw is really weird...as it _should_ be able to use logs of other node in node group)
Otherwise cluster could be started and 1 fragment on one node could not have been restored
Making the cluster inconsisten, VERY BAD
ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Break-out methods which searches for REDO for a fragment, so it can be used earlier during SR
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Add checking of REDO to earlier during SR
so take-over of node can be performed
if it can't be restarted using logs
(which btw is really weird...as it _should_ be able to use logs of other node in node group)
Make sure checkKeepGci is also run on oldStoredReplicas
to prevent keepgci to move backwards when crash node restarts
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Make sure checkKeepGci is also run on oldStoredReplicas
to prevent keepgci to move backwards when crash node restarts
handle also CS_CONNECTED as "abort" in handleFailedApi to keep from falling on assertion in releaseApiCon
in case of committed dirtyRead
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
handle also CS_CONNECTED as "abort" to keep from falling on assertion in releaseApiCon
in case of committed dirtyRead
Fix occational LCP hang!!!
Make sure only to consider alive nodes in startNextChkpt
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Make sure only to consider alive nodes in startNextChkpt
ndb/tools/restore/consumer.hpp:
added a function to judge whether there is temporary error.
ndb/tools/restore/consumer_restore.cpp:
record when temporary error occured in restore.
ndb/tools/restore/consumer_restore.hpp:
added a member to record temporary error in restore.
ndb/tools/restore/restore_main.cpp:
report temporary error in restore.
and other commands related to ndb. For all of these, the help screen contains
"Ndb.cfg" string. Now i change the "Ndb.cfg" to "my.cnf" because "Ndb.cfg" is obsolete.
ndb/include/util/ndb_opts.h:
Change help info from Ndb.cfg to my.cnf in the header file.
ndb/test/ndbapi/flexScan.cpp:
Change help info from Ndb.cfg to my.cnf.
ndb/tools/ndb_config.cpp:
Change help info from Ndb.cfg to my.cnf
almost useless for any kind of shell script automation.
Now add the return value that indicates the execution whether or not success
for many methods.
ndb/src/mgmclient/CommandInterpreter.cpp:
Many methods add the return value that indicates whether the execution of operatioin succeeds.
This can make ndb_mgm management client set the exit status on errors.
Fix for alter table when node is down...that could cause pain and misery
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Make sure to check table version before retriving from disk
fix deadlock if master switches log file in parallell with "show master logs"
sql/log.cc:
add raw_get_current_log which dont take log mutex
sql/sql_class.h:
add raw_get_current_log which dont take log mutex
sql/sql_repl.cc:
Fix lock order i.e first log_lock then index_lock
The problem was due to a prior fix for BUG 9676, which limited
the rows stored in a temporary table to the LIMIT clause. This
optimization is not applicable to non-group queries with aggregate
functions. The fix disables the optimization in this case.
mysql-test/r/limit.result:
Test case for BUG#21787
mysql-test/t/limit.test:
Test case for BUG#21787
sql/sql_select.cc:
If there is an aggregate function in a non-group query,
materialize all rows in the temporary table no matter if
there is a LIMIT clause. This is necessary, since the
aggregate functions must be computed over all result rows,
not just the first LIMIT rows.
- Dont test "encrypt" in ctype_ucs
mysql-test/r/ctype_ucs.result:
Don't test "encrypt" function in ctype_ucs.test
mysql-test/t/ctype_ucs.test:
Don't test "encrypt" function in ctype_ucs.test
Fixed the cluster logfile rotation code, let the cluster logfile be renamed correctly when the main logfile exceeds the configured maximum size.
ndb/include/util/File.hpp:
Fix for BUG#21345, Error in cluster logfile rotation.
ndb/src/common/logger/FileLogHandler.cpp:
Fix for BUG#21345, Error in cluster logfile rotation.
ndb/src/common/util/File.cpp:
Fix for BUG#21345, Error in cluster logfile rotation.
single file is a bad practice.
tests/mysql_client_test.c:
Replace literal characters which don't make sense in UTF8 with ubiquitously-
understood numbers.
event' from master"
Since there is no repeatable test case, and this is obviously wrong, this is
the most conservative change that might possibly work.
The syscall read() wasn't checked for a negative return value for an
interrupted read. The kernel sys_read() returns -EINTR, and the "library"
layer maps that to return value of -1 and sets errno to EINTR. It's
impossible (on Linux) for read() to set errno EINTR without the return
value being -1 .
So, if we're checking for EINTR behavior, we should not require that the
return value be zero.
mysys/my_read.c:
The read() syscall should check for negative one, since that (usually) signals
errors (like being interrupted) and zero (usually) signals end-of-file .
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
include/mysql_com.h:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
added new constants NAME_BYTE_LEN, USERNAME_BYTE_LENGTH, SYSTEM_CHARSET_MBMAXLEN
mysql-test/r/ctype_utf8.result:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
test case
mysql-test/t/ctype_utf8.test:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
test case
sql-common/client.c:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
increased buffers for user name & db
sql/sql_acl.cc:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
check that user name is not longer than USERNAME_LENGTH symbols
sql/sql_parse.cc:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
increased buffers for user name & db
sql/table.cc:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
check that db name is not longer than NAME_LEN symbols
mysql-test/lib/mtr_cases.pl:
Detect which tests that need ndb
mysql-test/lib/mtr_match.pl:
Add function mtr_match_substring
mysql-test/mysql-test-run.pl:
Only start cluster for test cases that need it
Default is "var/tmp"
mysql-test/r/myisam.result:
Update result file
mysql-test/t/myisam.test:
If running test suite with a non standard tmp dir, the "show create table" will print "DATA DIRECTORY="
Use replace_result to mask it out
Set tmpdir to var/log to get the printout of DATA DIRECTORY also when running with standard tmpdir