From 449cc2400b2a2ceab479c2e30aad21e1b800eebc Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Feb 2006 02:27:23 +0100 Subject: [PATCH] ndb - fix event created by ndb_restore bug#17045 (not really) mysql-test/t/disabled.def: leave ndb_dd_backuprestore disabled until *.result corrected storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp: error code was clobbered storage/ndb/tools/restore/consumer_restore.cpp: surprise - ndb_restore creates events --- mysql-test/t/disabled.def | 2 +- storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp | 4 +--- storage/ndb/tools/restore/consumer_restore.cpp | 7 +++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index dabc0efce77..c09a7361b3d 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -14,7 +14,7 @@ ndb_autodiscover : Needs to be fixed w.r.t binlog ndb_autodiscover2 : Needs to be fixed w.r.t binlog ndb_binlog_basic : Results are not deterministic, Tomas will fix ndb_binlog_ddl_multi : Bug#17038 [PATCH PENDING] -ndb_dd_backuprestore : Bug#17045 NdbDictionaryImpl::fix_blob_events causes core +ndb_dd_backuprestore : Need to fix result ndb_load : Bug#17233 partition_03ndb : Bug#16385 ps_7ndb : dbug assert in RBR mode when executing test suite diff --git a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp index 411c151410d..5b2bc99dd18 100644 --- a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp +++ b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp @@ -350,10 +350,8 @@ NdbEventOperationImpl::getBlobHandle(const NdbColumnImpl *tAttrInfo, int n) // to hide blob op it is linked under main op, not under m_ndb NdbEventOperation* tmp = m_ndb->theEventBuffer->createEventOperation(bename, m_error); - if (tmp == NULL) { - m_error.code = m_ndb->theEventBuffer->m_error.code; + if (tmp == NULL) DBUG_RETURN(NULL); - } tBlobOp = &tmp->m_impl; // pointer to main table op diff --git a/storage/ndb/tools/restore/consumer_restore.cpp b/storage/ndb/tools/restore/consumer_restore.cpp index e4d8f98363a..3b39a1373a0 100644 --- a/storage/ndb/tools/restore/consumer_restore.cpp +++ b/storage/ndb/tools/restore/consumer_restore.cpp @@ -748,10 +748,17 @@ BackupRestore::table(const TableS & table){ my_event.addTableEvent(NdbDictionary::Event::TE_ALL); // add all columns to the event + bool has_blobs = false; for(int a= 0; a < tab->getNoOfColumns(); a++) { my_event.addEventColumn(a); + NdbDictionary::Column::Type t = tab->getColumn(a)->getType(); + if (t == NdbDictionary::Column::Blob || + t == NdbDictionary::Column::Text) + has_blobs = true; } + if (has_blobs) + my_event.mergeEvents(true); while ( dict->createEvent(my_event) ) // Add event to database {