You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
Fixed the fix.
Actually need to rename the file after you pick a new name for it LOL!
This commit is contained in:
@ -506,8 +506,13 @@ ssize_t IOCoordinator::_write(const boost::filesystem::path &filename, const uin
|
|||||||
count += err;
|
count += err;
|
||||||
iocBytesWritten += err;
|
iocBytesWritten += err;
|
||||||
// get a new name for the object
|
// get a new name for the object
|
||||||
|
|
||||||
|
bf::path oldPath = firstDir/newObject.key;
|
||||||
newObject.key = metadata.getNewKeyFromOldKey(newObject.key, err + objectOffset);
|
newObject.key = metadata.getNewKeyFromOldKey(newObject.key, err + objectOffset);
|
||||||
metadata.updateEntryLength(newObject.offset, (err + objectOffset));
|
::rename(oldPath.string().c_str(), (firstDir/newObject.key).string().c_str());
|
||||||
|
|
||||||
|
// rename and resize the object in metadata
|
||||||
|
metadata.updateEntry(newObject.offset, newObject.key, (err + objectOffset));
|
||||||
cache->newObject(firstDir, newObject.key,err + objectOffset);
|
cache->newObject(firstDir, newObject.key,err + objectOffset);
|
||||||
newObjectKeys.push_back(newObject.key);
|
newObjectKeys.push_back(newObject.key);
|
||||||
goto out;
|
goto out;
|
||||||
@ -638,7 +643,9 @@ ssize_t IOCoordinator::append(const char *_filename, const uint8_t *data, size_t
|
|||||||
iocBytesWritten += err;
|
iocBytesWritten += err;
|
||||||
if (err < (int64_t) writeLength)
|
if (err < (int64_t) writeLength)
|
||||||
{
|
{
|
||||||
|
bf::path oldPath = firstDir/newObject.key;
|
||||||
newObject.key = metadata.getNewKeyFromOldKey(newObject.key, err + newObject.offset);
|
newObject.key = metadata.getNewKeyFromOldKey(newObject.key, err + newObject.offset);
|
||||||
|
::rename(oldPath.string().c_str(), (firstDir/newObject.key).string().c_str());
|
||||||
metadata.updateEntry(newObject.offset, newObject.key, err + newObject.offset);
|
metadata.updateEntry(newObject.offset, newObject.key, err + newObject.offset);
|
||||||
}
|
}
|
||||||
cache->newObject(firstDir, newObject.key,err);
|
cache->newObject(firstDir, newObject.key,err);
|
||||||
|
@ -77,7 +77,6 @@ class MetadataFile
|
|||||||
// removes p from the json cache. p should be a fully qualified metadata file
|
// removes p from the json cache. p should be a fully qualified metadata file
|
||||||
static void deletedMeta(const boost::filesystem::path &p);
|
static void deletedMeta(const boost::filesystem::path &p);
|
||||||
|
|
||||||
// TBD: this may have to go; there may be no use case where only the uuid needs to change.
|
|
||||||
static std::string getNewKeyFromOldKey(const std::string &oldKey, size_t length=0);
|
static std::string getNewKeyFromOldKey(const std::string &oldKey, size_t length=0);
|
||||||
static std::string getNewKey(std::string sourceName, size_t offset, size_t length);
|
static std::string getNewKey(std::string sourceName, size_t offset, size_t length);
|
||||||
static off_t getOffsetFromKey(const std::string &key);
|
static off_t getOffsetFromKey(const std::string &key);
|
||||||
|
Reference in New Issue
Block a user