ndb - bug#25001

  make sure DISK flag is set on DATA column for blob table
parent 6caf18ca
...@@ -2302,7 +2302,7 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t) ...@@ -2302,7 +2302,7 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t)
} }
// blob tables - use "t2" to get values set by kernel // blob tables - use "t2" to get values set by kernel
if (t2->m_noOfBlobs != 0 && createBlobTables(*t2) != 0) { if (t2->m_noOfBlobs != 0 && createBlobTables(t, *t2) != 0) {
int save_code = m_error.code; int save_code = m_error.code;
(void)dropTableGlobal(*t2); (void)dropTableGlobal(*t2);
m_error.code = save_code; m_error.code = save_code;
...@@ -2316,7 +2316,7 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t) ...@@ -2316,7 +2316,7 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t)
} }
int int
NdbDictionaryImpl::createBlobTables(NdbTableImpl &t) NdbDictionaryImpl::createBlobTables(NdbTableImpl& orig, NdbTableImpl &t)
{ {
DBUG_ENTER("NdbDictionaryImpl::createBlobTables"); DBUG_ENTER("NdbDictionaryImpl::createBlobTables");
for (unsigned i = 0; i < t.m_columns.size(); i++) { for (unsigned i = 0; i < t.m_columns.size(); i++) {
...@@ -2325,6 +2325,10 @@ NdbDictionaryImpl::createBlobTables(NdbTableImpl &t) ...@@ -2325,6 +2325,10 @@ NdbDictionaryImpl::createBlobTables(NdbTableImpl &t)
continue; continue;
NdbTableImpl bt; NdbTableImpl bt;
NdbBlob::getBlobTable(bt, &t, &c); NdbBlob::getBlobTable(bt, &t, &c);
NdbDictionary::Column::StorageType
d = NdbDictionary::Column::StorageTypeDisk;
if (orig.m_columns[i]->getStorageType() == d)
bt.getColumn("DATA")->setStorageType(d);
if (createTable(bt) != 0) { if (createTable(bt) != 0) {
DBUG_RETURN(-1); DBUG_RETURN(-1);
} }
......
...@@ -582,7 +582,7 @@ public: ...@@ -582,7 +582,7 @@ public:
bool setTransporter(class TransporterFacade * tf); bool setTransporter(class TransporterFacade * tf);
int createTable(NdbTableImpl &t); int createTable(NdbTableImpl &t);
int createBlobTables(NdbTableImpl& t); int createBlobTables(NdbTableImpl& org, NdbTableImpl& created);
int alterTable(NdbTableImpl &t); int alterTable(NdbTableImpl &t);
int dropTable(const char * name); int dropTable(const char * name);
int dropTable(NdbTableImpl &); int dropTable(NdbTableImpl &);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment