From: Pekka Nousiainen Date: May 16 2012 10:50am Subject: bzr push into mysql-5.5-cluster-7.3-fk branch (pekka.nousiainen:3874 to 3901) List-Archive: http://lists.mysql.com/commits/143835 Message-Id: <20120516105039.654B757846@cuda.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3901 Pekka Nousiainen 2012-05-16 ndb 7.3-fk more-mtr-tests semi random tests found in e.g innodb bug-reports added: mysql-test/suite/ndb/r/ndb_fk_locking.result mysql-test/suite/ndb/t/ndb_fk_locking.test modified: mysql-test/suite/ndb/r/ndb_fk_alter.result mysql-test/suite/ndb/r/ndb_fk_noaction.result mysql-test/suite/ndb/r/ndb_fk_restrict.result mysql-test/suite/ndb/t/ndb_fk_alter.test mysql-test/suite/ndb/t/ndb_fk_noaction.test mysql-test/suite/ndb/t/ndb_fk_restrict.test 3900 Pekka Nousiainen 2012-05-16 ndb 7.3-fk multi-column this patch finally fixes the multi-column ordering problem (at last...) e.g create table parent primary key (a,b) create table child primary key (b,a) foreign key (a,b) references parent (a,b) added: mysql-test/suite/ndb/r/ndb_fk_multi_column.result mysql-test/suite/ndb/t/ndb_fk_multi_column.test modified: storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 3899 Pekka Nousiainen 2012-05-16 ndb 7.3-fk cascade-update This patch adds support for cascading updates added: mysql-test/suite/ndb/r/ndb_fk_cascade_update.result mysql-test/suite/ndb/t/ndb_fk_cascade_update.test modified: storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3898 Pekka Nousiainen 2012-05-16 ndb 7.3-fk setnull This patch adds setnull action added: mysql-test/suite/ndb/r/ndb_fk_setnull.result mysql-test/suite/ndb/t/ndb_fk_setnull.test modified: storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3897 Pekka Nousiainen 2012-05-16 ndb 7.3-fk cascade-delete-uk This patch implements cascade (delete) using unique keys modified: mysql-test/suite/ndb/r/ndb_fk_cascade_delete.result mysql-test/suite/ndb/r/ndb_fk_cascade_delete_multi.result mysql-test/suite/ndb/t/ndb_fk_cascade_delete.test mysql-test/suite/ndb/t/ndb_fk_cascade_delete_multi.test storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3896 Pekka Nousiainen 2012-05-16 ndb 7.3-fk cascade-delete This patch adds cascading deletes added: mysql-test/suite/ndb/r/ndb_fk_cascade_delete.result mysql-test/suite/ndb/r/ndb_fk_cascade_delete_multi.result mysql-test/suite/ndb/t/ndb_fk_cascade_delete.test mysql-test/suite/ndb/t/ndb_fk_cascade_delete_multi.test modified: storage/ndb/include/kernel/signaldata/CreateFKImpl.hpp storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3895 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dbtc-exec-oi This patch adds support for having non-unique index on children This means that Dbtc will start scan when parent table is updated/deleted modified: mysql-test/suite/ndb/r/ndb_fk_noaction.result mysql-test/suite/ndb/r/ndb_fk_restrict.result mysql-test/suite/ndb/t/ndb_fk_noaction.test mysql-test/suite/ndb/t/ndb_fk_restrict.test storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp 3894 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dbtc-exec-noaction This patch adds support for noaction foreign keys (i.e checked in a deferred manner) The interesting part of this patch is that the trigger pre commit passes are given structure. See struct TriggerPreCommitPass added: mysql-test/suite/ndb/r/ndb_fk_noaction.result mysql-test/suite/ndb/t/ndb_fk_noaction.test modified: storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp storage/ndb/include/kernel/signaldata/LqhKey.hpp storage/ndb/include/kernel/trigger_definitions.h storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp 3893 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dbtc-exec-ui This patch adds Dbtc handling of restrict foreign keys for case when children uses primary/unique keys added: mysql-test/suite/ndb/r/ndb_fk_restrict.result mysql-test/suite/ndb/t/ndb_fk_restrict.test modified: storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3892 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dbtc-data This patch adds data-definitions needed for foriegn keys to Dbtc modified: storage/ndb/include/kernel/signaldata/CreateFKImpl.hpp storage/ndb/include/kernel/signaldata/DropFKImpl.hpp storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3891 Pekka Nousiainen 2012-05-16 ndb 7.3-fk mysql-online-alter-fk This patch adds online create/drop FK using SQL I found that infact no changes at all was needed in server modified: mysql-test/suite/ndb/r/ndb_fk_alter.result mysql-test/suite/ndb/r/ndb_fk_build.result mysql-test/suite/ndb/r/ndb_fk_create_drop.result mysql-test/suite/ndb/t/ndb_fk_alter.test mysql-test/suite/ndb/t/ndb_fk_build.test mysql-test/suite/ndb/t/ndb_fk_create_drop.test sql/ha_ndb_ddl_fk.cc sql/ha_ndbcluster.cc 3890 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dict-build-fk This patch implements "build" of FK, which is used to ensure that FK is not inconsistent when adding it. This is needed so that adding a FK can be made fully online. added: mysql-test/suite/ndb/r/ndb_fk_build.result mysql-test/suite/ndb/t/ndb_fk_build.test modified: storage/ndb/include/kernel/signaldata/BuildFK.hpp storage/ndb/include/kernel/signaldata/BuildFKImpl.hpp storage/ndb/include/kernel/signaldata/UtilPrepare.hpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp storage/ndb/src/kernel/blocks/trix/Trix.cpp storage/ndb/src/kernel/blocks/trix/Trix.hpp storage/ndb/src/ndbapi/ndberror.c 3889 Pekka Nousiainen 2012-05-16 ndb 7.3-fk mysql-alter-fk This patch adds sql support for adding/dropping foreign keys as part of offline alter table The code is...as it is... (but i've seen worse...once... in ha_ndbcluster_binlog.cc :-) NOTE: - ndb foreign keys support online adding/dropping but this patch makes no attempt at fixing this... online = no table copy, no read/write table-locks short read-locks taken while verifying that FK is consistent added: mysql-test/suite/ndb/r/ndb_fk_alter.result mysql-test/suite/ndb/t/ndb_fk_alter.test modified: mysql-test/suite/ndb/r/ndb_fk_create_drop.result mysql-test/suite/ndb/t/ndb_fk_create_drop.test sql/ha_ndb_ddl_fk.cc sql/ha_ndbcluster.cc sql/sql_class.h sql/sql_partition.cc sql/sql_table.cc sql/sql_yacc.yy 3888 Pekka Nousiainen 2012-05-16 ndb 7.3-fk mysql-create-fk This patch adds sql support for adding foreign keys as part of create-table After grepping furiously in sql/* I discovered that mysql actually parses these foreign keys (i think to check ACL) but never exposes them to handler. I therefor bluntly uses thd->lex to get at them, in which they are kept in a somewhat nice list NOTE: - patch currently ignores the problem is parent/child tables resides in different databases - i don't think I got the multi-part keys correctly (which is actually true for entire series :-( added: sql/ha_ndb_ddl_fk.cc modified: mysql-test/suite/ndb/r/ndb_fk_create_drop.result mysql-test/suite/ndb/t/ndb_fk_create_drop.test sql/ha_ndbcluster.cc sql/ha_ndbcluster.h 3887 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dict-drop-fk This patch adds the drop-fk part to dict/tc added: mysql-test/suite/ndb/r/ndb_fk_create_drop.result mysql-test/suite/ndb/t/ndb_fk_create_drop.test modified: storage/ndb/include/kernel/signaldata/DropFK.hpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp 3886 Pekka Nousiainen 2012-05-16 ndb 7.3-fk listDependent This patch adds a feature to LIST_TABLES_REQ That insteads of just listing indexes for a table list all objects dependant on the specified object e.g also the foreignkeys It also changes so that ndbapi drops all foreignkeys if table is dropped modified: storage/ndb/include/kernel/signaldata/ListTables.hpp storage/ndb/include/ndbapi/NdbDictionary.hpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/ndbapi/NdbDictionary.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp 3885 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dict-create-fk This patch adds the create-fk part to dict/tc modified: storage/ndb/include/kernel/signaldata/CreateFK.hpp storage/ndb/include/kernel/signaldata/CreateFKImpl.hpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp 3884 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dict-op-skeleton This patch adds the "skeleton" for create/drop foreign key to Dbdict added: storage/ndb/include/kernel/signaldata/BuildFKImpl.hpp storage/ndb/include/kernel/signaldata/CreateFKImpl.hpp storage/ndb/include/kernel/signaldata/DropFKImpl.hpp modified: storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcProxy.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcProxy.hpp 3883 Pekka Nousiainen 2012-05-16 ndb 7.3-fk mtr This patch adds a include file that locates the create_fk/drop_fk binaries needed (until SQL has been added) added: mysql-test/suite/ndb/t/have_ndb_fk.inc 3882 Pekka Nousiainen 2012-05-16 ndb 7.3-fk make-test-tool-cmake modified: storage/ndb/test/tools/CMakeLists.txt 3881 Pekka Nousiainen 2012-05-16 ndb 7.3-fk test-tool This patch adds to new (test) binaries create_fk and drop_fk added: storage/ndb/test/tools/create_fk.cpp storage/ndb/test/tools/drop_fk.cpp 3880 Pekka Nousiainen 2012-05-16 ndb 7.3-fk ndbapi-impl This patch adds the ndbapi implementation of foreign keys modified: storage/ndb/include/kernel/signaldata/ListTables.hpp storage/ndb/src/ndbapi/NdbDictionary.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp storage/ndb/src/ndbapi/Ndbif.cpp storage/ndb/tools/listTables.cpp 3879 Pekka Nousiainen 2012-05-16 ndb 7.3-fk dicttabinfo This patch adds foreign keys to dicttabinfo (serialized form) modified: storage/ndb/include/kernel/signaldata/DictTabInfo.hpp storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp 3878 Pekka Nousiainen 2012-05-16 ndb 7.3-fk ndbapi-if This patch introduces a ndbapi interface for managing foreign keys modified: storage/ndb/include/ndbapi/NdbDictionary.hpp 3877 Pekka Nousiainen 2012-05-16 ndb 7.3-fk definitions This patch adds definitions needed for foreign keys added: storage/ndb/include/kernel/signaldata/BuildFK.hpp storage/ndb/include/kernel/signaldata/CreateFK.hpp storage/ndb/include/kernel/signaldata/DropFK.hpp modified: storage/ndb/include/kernel/GlobalSignalNumbers.h storage/ndb/include/kernel/Interpreter.hpp storage/ndb/include/kernel/signaldata/DictTabInfo.hpp storage/ndb/include/kernel/trigger_definitions.h storage/ndb/include/ndb_constants.h storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 3876 Pekka Nousiainen 2012-05-16 ndb 7.3-fk remove-scan-cache-record This is a cleanup patch that removes the CacheRecord from a scan (unless it's sending short signals) It moves a few variables onto the scan record, but I think it makes code clearer modified: storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3875 Pekka Nousiainen 2012-05-16 ndb 7.3-fk remove-scan-tc-record This is a cleanup patch that removes the TcConnectRecord from a scan. As patch shows...it's hardly used and confuses code. modified: storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 3874 Pekka Nousiainen 2012-05-16 7.3-fk tree_name modified: .bzr-mysql/default.conf Diff too large for email (12833 lines, the limit is 10000). No bundle (reason: useless for push emails).