Loading sql/ha_ndbcluster.cc +3 −5 Original line number Diff line number Diff line Loading @@ -1319,13 +1319,11 @@ int ha_ndbcluster::drop_indexes(Ndb *ndb, TABLE *tab) int error= 0; const char *index_name; KEY* key_info= tab->key_info; const char **key_name= tab->s->keynames.type_names; NDBDICT *dict= ndb->getDictionary(); DBUG_ENTER("ha_ndbcluster::drop_indexes"); for (i= 0; i < tab->s->keys; i++, key_info++, key_name++) for (i= 0; i < tab->s->keys; i++, key_info++) { index_name= *key_name; NDB_INDEX_TYPE idx_type= get_index_type_from_table(i); m_index[i].type= idx_type; if (m_index[i].status == TO_BE_DROPPED) Loading @@ -1346,8 +1344,8 @@ int ha_ndbcluster::drop_indexes(Ndb *ndb, TABLE *tab) m_index[i].index= NULL; if (!error && unique_index) { index_name= index->getName(); DBUG_PRINT("info", ("Dropping index %u: %s", i, index_name)); index_name= unique_index->getName(); DBUG_PRINT("info", ("Dropping unique index %u: %s", i, index_name)); // Drop unique index from ndb error= drop_ndb_index(index_name); } Loading storage/ndb/src/kernel/blocks/suma/Suma.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -1092,6 +1092,7 @@ Suma::execSUB_CREATE_REQ(Signal* signal) subPtr.p->m_table_ptrI = RNIL; subPtr.p->m_state = Subscription::DEFINED; subPtr.p->n_subscribers = 0; subPtr.p->m_current_sync_ptrI = RNIL; fprintf(stderr, "table %d options %x\n", subPtr.p->m_tableId, subPtr.p->m_options); DBUG_PRINT("info",("Added: key.m_subscriptionId: %u, key.m_subscriptionKey: %u", Loading Loading @@ -1163,13 +1164,15 @@ Suma::execSUB_SYNC_REQ(Signal* signal) DBUG_PRINT("info",("c_syncPool size: %d free: %d", c_syncPool.getSize(), c_syncPool.getNoOfFree())); new (syncPtr.p) Ptr<SyncRecord>; syncPtr.p->m_senderRef = req->senderRef; syncPtr.p->m_senderData = req->senderData; syncPtr.p->m_subscriptionPtrI = subPtr.i; syncPtr.p->ptrI = syncPtr.i; syncPtr.p->m_error = 0; subPtr.p->m_current_sync_ptrI = syncPtr.i; { jam(); syncPtr.p->m_tableList.append(&subPtr.p->m_tableId, 1); Loading Loading @@ -2059,7 +2062,7 @@ Suma::execSUB_SYNC_CONTINUE_CONF(Signal* signal){ ndbrequire(c_subscriptions.find(subPtr, key)); ScanFragNextReq * req = (ScanFragNextReq *)signal->getDataPtrSend(); req->senderData = subPtr.i; req->senderData = subPtr.p->m_current_sync_ptrI; req->closeFlag = 0; req->transId1 = 0; req->transId2 = (SUMA << 20) + (getOwnNodeId() << 8); Loading Loading @@ -2098,6 +2101,12 @@ Suma::SyncRecord::completeScan(Signal* signal, int error) #endif release(); Ptr<Subscription> subPtr; suma.c_subscriptions.getPtr(subPtr, m_subscriptionPtrI); ndbrequire(subPtr.p->m_current_sync_ptrI == ptrI); subPtr.p->m_current_sync_ptrI = RNIL; suma.c_syncPool.release(ptrI); DBUG_PRINT("info",("c_syncPool size: %d free: %d", suma.c_syncPool.getSize(), Loading storage/ndb/src/kernel/blocks/suma/Suma.hpp +3 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ public: */ Uint32 m_tableId; Uint32 m_table_ptrI; Uint32 m_current_sync_ptrI; }; typedef Ptr<Subscription> SubscriptionPtr; Loading Loading @@ -239,7 +240,8 @@ public: suma.progError(line, cause, extra); } union { Uint32 nextPool; Uint32 nextList; Uint32 prevList; Uint32 ptrI; }; Uint32 prevList; Uint32 ptrI; union { Uint32 nextPool; Uint32 nextList; }; }; friend struct SyncRecord; Loading Loading
sql/ha_ndbcluster.cc +3 −5 Original line number Diff line number Diff line Loading @@ -1319,13 +1319,11 @@ int ha_ndbcluster::drop_indexes(Ndb *ndb, TABLE *tab) int error= 0; const char *index_name; KEY* key_info= tab->key_info; const char **key_name= tab->s->keynames.type_names; NDBDICT *dict= ndb->getDictionary(); DBUG_ENTER("ha_ndbcluster::drop_indexes"); for (i= 0; i < tab->s->keys; i++, key_info++, key_name++) for (i= 0; i < tab->s->keys; i++, key_info++) { index_name= *key_name; NDB_INDEX_TYPE idx_type= get_index_type_from_table(i); m_index[i].type= idx_type; if (m_index[i].status == TO_BE_DROPPED) Loading @@ -1346,8 +1344,8 @@ int ha_ndbcluster::drop_indexes(Ndb *ndb, TABLE *tab) m_index[i].index= NULL; if (!error && unique_index) { index_name= index->getName(); DBUG_PRINT("info", ("Dropping index %u: %s", i, index_name)); index_name= unique_index->getName(); DBUG_PRINT("info", ("Dropping unique index %u: %s", i, index_name)); // Drop unique index from ndb error= drop_ndb_index(index_name); } Loading
storage/ndb/src/kernel/blocks/suma/Suma.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -1092,6 +1092,7 @@ Suma::execSUB_CREATE_REQ(Signal* signal) subPtr.p->m_table_ptrI = RNIL; subPtr.p->m_state = Subscription::DEFINED; subPtr.p->n_subscribers = 0; subPtr.p->m_current_sync_ptrI = RNIL; fprintf(stderr, "table %d options %x\n", subPtr.p->m_tableId, subPtr.p->m_options); DBUG_PRINT("info",("Added: key.m_subscriptionId: %u, key.m_subscriptionKey: %u", Loading Loading @@ -1163,13 +1164,15 @@ Suma::execSUB_SYNC_REQ(Signal* signal) DBUG_PRINT("info",("c_syncPool size: %d free: %d", c_syncPool.getSize(), c_syncPool.getNoOfFree())); new (syncPtr.p) Ptr<SyncRecord>; syncPtr.p->m_senderRef = req->senderRef; syncPtr.p->m_senderData = req->senderData; syncPtr.p->m_subscriptionPtrI = subPtr.i; syncPtr.p->ptrI = syncPtr.i; syncPtr.p->m_error = 0; subPtr.p->m_current_sync_ptrI = syncPtr.i; { jam(); syncPtr.p->m_tableList.append(&subPtr.p->m_tableId, 1); Loading Loading @@ -2059,7 +2062,7 @@ Suma::execSUB_SYNC_CONTINUE_CONF(Signal* signal){ ndbrequire(c_subscriptions.find(subPtr, key)); ScanFragNextReq * req = (ScanFragNextReq *)signal->getDataPtrSend(); req->senderData = subPtr.i; req->senderData = subPtr.p->m_current_sync_ptrI; req->closeFlag = 0; req->transId1 = 0; req->transId2 = (SUMA << 20) + (getOwnNodeId() << 8); Loading Loading @@ -2098,6 +2101,12 @@ Suma::SyncRecord::completeScan(Signal* signal, int error) #endif release(); Ptr<Subscription> subPtr; suma.c_subscriptions.getPtr(subPtr, m_subscriptionPtrI); ndbrequire(subPtr.p->m_current_sync_ptrI == ptrI); subPtr.p->m_current_sync_ptrI = RNIL; suma.c_syncPool.release(ptrI); DBUG_PRINT("info",("c_syncPool size: %d free: %d", suma.c_syncPool.getSize(), Loading
storage/ndb/src/kernel/blocks/suma/Suma.hpp +3 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ public: */ Uint32 m_tableId; Uint32 m_table_ptrI; Uint32 m_current_sync_ptrI; }; typedef Ptr<Subscription> SubscriptionPtr; Loading Loading @@ -239,7 +240,8 @@ public: suma.progError(line, cause, extra); } union { Uint32 nextPool; Uint32 nextList; Uint32 prevList; Uint32 ptrI; }; Uint32 prevList; Uint32 ptrI; union { Uint32 nextPool; Uint32 nextList; }; }; friend struct SyncRecord; Loading