1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

MCOL-3488. Chunk shifting failed with SM enabled.

The ChunkManager class was getting an IDBFileSystem instance in
a different way than seemingly everything else.  Added code
to allow it to get an SMFileSystem if cloud storage is specified.
This commit is contained in:
Patrick LeBlanc
2019-09-09 09:50:30 -05:00
parent f3ae87a1ca
commit d47980ceab

View File

@ -47,6 +47,7 @@ using namespace execplan;
#include "IDBDataFile.h"
#include "IDBPolicy.h"
#include "cloudio/SMFileSystem.h"
using namespace idbdatafile;
namespace
@ -96,7 +97,9 @@ ChunkManager::ChunkManager() : fMaxActiveChunkNum(100), fLenCompressed(0), fIsBu
fLocalModuleId(Config::getLocalModuleID()),
fFs(fIsHdfs ?
IDBFileSystem::getFs(IDBDataFile::HDFS) :
IDBFileSystem::getFs(IDBDataFile::BUFFERED))
IDBPolicy::useCloud() ?
IDBFileSystem::getFs(IDBDataFile::CLOUD) :
IDBFileSystem::getFs(IDBDataFile::BUFFERED))
{
fUserPaddings = Config::getNumCompressedPadBlks() * BYTE_PER_BLOCK;
fCompressor.numUserPaddingBytes(fUserPaddings);
@ -2316,7 +2319,7 @@ int ChunkManager::swapTmpFile(const string& src, const string& dest)
{
// return value
int rc = NO_ERROR;
// if no change to the cdf, the tmp may not exist, no need to swap.
if (!fFs.exists(src.c_str()))
return rc;