Fix potential inconsistency when running ndb_restore due to faulty parsing
of backup log wrt inserts
ndb/src/kernel/blocks/backup/Backup.cpp:
Make sure that entire stopGCP is in log
ndb/tools/restore/Restore.cpp:
Notice: this will not group and commit the deltas listed below
into a ChangeSet, because there are no ChangeSet comments.
Click [Checkin] again to check in only the commented deltas,
or type Control-l to go back and provide ChangeSet comments.
ndb/tools/restore/Restore.hpp:
Keep track of last gci to next iteration
ndb/tools/restore/consumer_restore.cpp:
Handle insert in log
Only allow certain errors
- Added better error messages when trying to open a table that can't be discovered or unpacked. The most likely cause of this is that it does not have any frm data, probably since it has been created from NdbApi or is a NDB system table.
- Separated functionality that was in ha_create_table_from_engine into two functions. One that checks if the table exists and another one that tries to create the table from the engine.
mysql-test/r/ndb_autodiscover.result:
Add tests for reading from a table that can't be discovered(SYSTAB_0)
Discovery is not performed during create table anymore.
mysql-test/t/ndb_autodiscover.test:
Add tests for reading from a table that can't be discovered(SYSTAB_0)
Discovery is not performed during create table anymore.
ndb/test/ndbapi/create_tab.cpp:
Set connectstring before creating Ndb object.
sql/ha_ndbcluster.cc:
Rename and use the function ndbcluster_table_exists_in_engine.
Correct return valu from ndbcluster_discover
Remove old code "ndb_discover_tables"
sql/ha_ndbcluster.h:
Rename function ndbcluster_table_exists to ndb ndbcluster_table_exists_in_engine
sql/handler.cc:
Update comment of ha_create_table_from_engine
Remove parameter create_if_found from ha_create_table_from_engine, the function ha_table_exists_in_engine is now used toi check if table is found in engine.
Cleanup return codes from ha_create_table_from_engine.
Change name of ha_table_exists to ha_table_exists_in_engine, update comment and returne codes.
sql/handler.h:
Remove paramter create_if_cound from ha_create_table_from_engine
Rename ha_table_exists to ha_table_exists_in_engine
sql/sql_base.cc:
Use the function ha_table_exists_in_engine to detect if table exists in enegine.
If it exists, call function ha_create_table_from_engine to try and create it.
If create of table fails, set correct error message.
sql/sql_table.cc:
Add comments, remove parameter create_if_found to ha_create_table_from_engine.
When dropping a table, try to discover it from engine. If discover fails, use same error message as if the table didn't exists.
Maybe another message should be displayed here, ex: "Table could not be dropped, unpack failed"
When creating a new table, use ha_table_exists_in_engine to check if a table with the given name already exists.
incorrect handling of writeTuple with multi op transaction
ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
1) Pass operation instead of insertIsDone to LQH
2) transform operation correctly when in parallell que
(multi op within same trans)
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Let ACC decide what operation was performed when WRITE
ndb/test/ndbapi/testNdbApi.cpp:
Add testcase for bug 11133
ndb/test/run-test/daily-basic-tests.txt:
Add testcase for bug 11133
BUG#9826 Server crash on schema change ("drop table", "alter table") with NDB
See note on 10948 for detailed explanation.
struct a { void* a; long long b[1]; };
on PPC32 (and 32bit pa risc): 16
on x86: 12
so a malloc(sizeof(void*)+extra_bits) is wrong.
Assuming that the long long is 64 bit aligned as non-aligned 64bit accesses
are rather expensive on ppc.
Thanks to paulus for doing the PPC port of valgrind.
Without which I would no doubt still be trying to find this.
ndb/src/ndbapi/DictCache.cpp:
Fix allocation size for Ndb_local_table_info for architectures such as PPC and PA-RISC (32bit)
where
struct a { void* a; long long b;};
is 64 bit aligned (i.e. sizeof(struct a)==16)
ndb/src/ndbapi/DictCache.hpp:
Add warning about having to be the last member in the structure
Bug #11050 ndb_mgm "show" prints incorrectly after master data node fails
ndb/src/mgmclient/CommandInterpreter.cpp:
Bug #11050 ndb_mgm "show" prints incorrectly after master data node fails
a node wo/ filesystem don't have any crashed replicas
reset noCrashedReplicas in invalidate_node_lcp
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
a node wo/ filesystem don't have any crashed replicas
add dummy getvalue
ndb/src/ndbapi/NdbOperationExec.cpp:
Add dummy get value of NDB$FRAGMENT if
dirty read wo/ get values
ndb/test/ndbapi/testNdbApi.cpp:
Test scans as well
--database option to hugo tools
ndb/test/ndbapi/testNdbApi.cpp:
Testcase for bug#10669
ndb/test/tools/hugoLoad.cpp:
Add --database=<name> to hugo tools
ndb/test/tools/hugoPkUpdate.cpp:
Add --database=<name> to hugo tools
ndb/test/tools/hugoScanRead.cpp:
Add --database=<name> to hugo tools
ndb/test/tools/hugoScanUpdate.cpp:
Add --database=<name> to hugo tools
ndb/test/run-test/ndb-autotest.sh:
ndb autotest
1) merge jonathan changes
2) add --no-report (if dont't want to produce/scp a report)
3) add --no-config (if don't want to create a configuration, i.e there is already one present)
4) add --no-test (for not actually starting test)
5) add checking of conf file
ndb/src/common/util/File.cpp:
my_stat returns NULL on failure, not non-zero.
i.e. exactly the opposite of stat(2).
providing confusion for unix programmers, who expect errors to be non-zero.
Clean up File_class::exists(char*) to use the my_stat interface properly.
include/my_global.h:
icc does not define __ICC when emulating gcc. Use __INTEL_COMPILER to check for icc.
ndb/src/cw/cpcd/Process.cpp:
Remove rlimit64
ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
Remove dirent64
whith some multi update scenarios
Make sure to init GCI on correct operation before firering operation
ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
Init gci, to make sure that fire_trig_ord gets correct GCI
upgrades to shell script
ndb/test/run-test/Makefile.am:
add config files
ndb/test/run-test/ndb-autotest.sh:
bump version
use rsync to sync participating hosts
fix count of nodes needed in test
ndb/test/run-test/conf-daily-basic-dl145a.txt:
Fix typo
ndb/test/run-test/conf-daily-basic-ndbmaster.txt:
Fix typo
ndb/test/run-test/conf-daily-devel-ndbmaster.txt:
Fix typo
ndb/test/run-test/conf-daily-sql-ndbmaster.txt:
Fix typo
ndb/test/run-test/ndb-autotest.sh:
Fix count of needed computers for test
Add shutdown options (so far only SIGKILL), so that there won't be any strace mysqld threads
ndb/src/cw/cpcd/APIService.cpp:
Add shutdown options
(so far only SIGKILL)
ndb/src/cw/cpcd/CPCD.hpp:
Add shutdown options
(so far only SIGKILL)
ndb/src/cw/cpcd/Process.cpp:
Add shutdown options
(so far only SIGKILL)
ndb/test/include/CpcClient.hpp:
Add shutdown options
(so far only SIGKILL)
ndb/test/run-test/main.cpp:
Add shutdown options
(so far only SIGKILL)
ndb/test/src/CpcClient.cpp:
Add shutdown options
(so far only SIGKILL)
put config files in bk
ndb/test/run-test/make-config.sh:
Corrent directory
ndb/test/run-test/ndb-autotest.sh:
Check for 5.1 disrectory structure
Add config files to distribution
Remove unpacking for ndb-autotest.sh
use newly created script for faster handling of several configurations
ndb/test/run-test/make-config.sh:
put cluster config in same config as distribution config
ndb/test/run-test/ndb-autotest.sh:
1) install mysql_db
2) use make-config script
Invalid DataDir in config causes ndbd segfault
ndb/src/kernel/error/ErrorReporter.cpp:
print error and return error if unable to open the file for error reporting.
increase no of rows so that the node failure will "guaranteed" produce an aborted transaction
ndb/test/ndbapi/testNodeRestart.cpp:
increase no of rows so that the node failure will "guaranteed" produce an aborted transaction
Cluster failure with non started nodes can result in timedout transactions
ndb/src/mgmapi/mgmapi.cpp:
Increase timeout for restarts
ndb/src/ndbapi/ClusterMgr.cpp:
Report NFCOMPLETEREP if no alive node exists
(instead of no connected node exists)
ndb/src/ndbapi/ClusterMgr.hpp:
Report NFCOMPLETEREP if no alive node exists
(instead of no connected node exists)
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
remove unneccessary TcSeizedIndexOperation object
ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
remove unneccessary TcSeizedIndexOperation object
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
1) Set transid on starting TCINDXREQ
2) New error code for out of index operation records
3) Check accumulating index op for RNIL before dereferencing it
ndb/src/kernel/error/ErrorReporter.cpp:
Include NDB version in ndb_X_error.log
ndb/src/ndbapi/NdbIndexOperation.cpp:
Let failed tcindxreq abort
ndb/src/ndbapi/ndberror.c:
New error code for out of index operation records