Commit f176467b authored by jonas@perch.ndb.mysql.com's avatar jonas@perch.ndb.mysql.com

Merge perch.ndb.mysql.com:/home/jonas/src/51-work

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
parents 57d7f395 05dd5fc2
...@@ -784,7 +784,8 @@ int Dbtup::updateAttributes(KeyReqStruct *req_struct, ...@@ -784,7 +784,8 @@ int Dbtup::updateAttributes(KeyReqStruct *req_struct,
req_struct->m_tuple_ptr->m_header_bits |= Tuple_header::DISK_PART; req_struct->m_tuple_ptr->m_header_bits |= Tuple_header::DISK_PART;
memcpy(req_struct->m_tuple_ptr->get_disk_ref_ptr(regTabPtr), memcpy(req_struct->m_tuple_ptr->get_disk_ref_ptr(regTabPtr),
inBuffer+inBufIndex+1, sz << 2); inBuffer+inBufIndex+1, sz << 2);
req_struct->in_buf_index = inBufIndex += 1 + sz; inBufIndex += 1 + sz;
req_struct->in_buf_index = inBufIndex;
} }
else else
{ {
......
...@@ -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