diff options
Diffstat (limited to 'sql/ha_ndbcluster.cc')
-rw-r--r-- | sql/ha_ndbcluster.cc | 53 |
1 files changed, 36 insertions, 17 deletions
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 34cdbe546c1..361401e22d6 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -9618,13 +9618,16 @@ static int ndbcluster_fill_files_table(THD *thd, TABLE_LIST *tables, COND *cond) NdbDictionary::Dictionary* dict= ndb->getDictionary(); NdbDictionary::Dictionary::List dflist; NdbError ndberr; + unsigned i; + + DBUG_ENTER("ndbcluster_fill_files_table"); dict->listObjects(dflist, NdbDictionary::Object::Datafile); ndberr= dict->getNdbError(); - if (ndberr.classification != ndberror_cl_none) - return 0; + if (ndberr.classification != NdbError::NoError) + ERR_RETURN(ndberr); - for (unsigned i= 0; i < dflist.count; i++) + for (i= 0; i < dflist.count; i++) { NdbDictionary::Dictionary::List::Element& elt = dflist.elements[i]; Ndb_cluster_connection_node_iter iter; @@ -9632,16 +9635,24 @@ static int ndbcluster_fill_files_table(THD *thd, TABLE_LIST *tables, COND *cond) g_ndb_cluster_connection->init_get_next_node(iter); - while (id= g_ndb_cluster_connection->get_next_node(iter)) + while ((id= g_ndb_cluster_connection->get_next_node(iter))) { NdbDictionary::Datafile df= dict->getDatafile(id, elt.name); ndberr= dict->getNdbError(); - if(ndberr.classification != ndberror_cl_none) - continue; + if(ndberr.classification != NdbError::NoError) + { + if (ndberr.classification == NdbError::SchemaError) + continue; + ERR_RETURN(ndberr); + } NdbDictionary::Tablespace ts= dict->getTablespace(df.getTablespace()); ndberr= dict->getNdbError(); - if (ndberr.classification != ndberror_cl_none) - continue; + if (ndberr.classification != NdbError::NoError) + { + if (ndberr.classification == NdbError::SchemaError) + continue; + ERR_RETURN(ndberr); + } int c= 0; table->field[c++]->set_null(); // FILE_ID @@ -9706,10 +9717,10 @@ static int ndbcluster_fill_files_table(THD *thd, TABLE_LIST *tables, COND *cond) dict->listObjects(dflist, NdbDictionary::Object::Undofile); ndberr= dict->getNdbError(); - if (ndberr.classification != ndberror_cl_none) - return 0; + if (ndberr.classification != NdbError::NoError) + ERR_RETURN(ndberr); - for (unsigned i= 0; i < dflist.count; i++) + for (i= 0; i < dflist.count; i++) { NdbDictionary::Dictionary::List::Element& elt= dflist.elements[i]; Ndb_cluster_connection_node_iter iter; @@ -9717,17 +9728,25 @@ static int ndbcluster_fill_files_table(THD *thd, TABLE_LIST *tables, COND *cond) g_ndb_cluster_connection->init_get_next_node(iter); - while (id= g_ndb_cluster_connection->get_next_node(iter)) + while ((id= g_ndb_cluster_connection->get_next_node(iter))) { NdbDictionary::Undofile uf= dict->getUndofile(id, elt.name); ndberr= dict->getNdbError(); - if (ndberr.classification != ndberror_cl_none) - continue; + if (ndberr.classification != NdbError::NoError) + { + if (ndberr.classification == NdbError::SchemaError) + continue; + ERR_RETURN(ndberr); + } NdbDictionary::LogfileGroup lfg= dict->getLogfileGroup(uf.getLogfileGroup()); ndberr= dict->getNdbError(); - if (ndberr.classification != ndberror_cl_none) - continue; + if (ndberr.classification != NdbError::NoError) + { + if (ndberr.classification == NdbError::SchemaError) + continue; + ERR_RETURN(ndberr); + } int c= 0; table->field[c++]->set_null(); // FILE_ID @@ -9788,5 +9807,5 @@ static int ndbcluster_fill_files_table(THD *thd, TABLE_LIST *tables, COND *cond) schema_table_store_record(thd, table); } } - return 0; + DBUG_RETURN(0); } |