1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

Merge branch 'develop-1.1' into 1.1-merge-up-2018-12-20b

This commit is contained in:
Andrew Hutchings
2018-12-20 20:55:00 +00:00
9 changed files with 41 additions and 44 deletions

View File

@ -83,6 +83,14 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/build/releasenum DESTINATION ${INSTALL
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/columnstoreversion.h.in ${CMAKE_CURRENT_SOURCE_DIR}/columnstoreversion.h) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/columnstoreversion.h.in ${CMAKE_CURRENT_SOURCE_DIR}/columnstoreversion.h)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
exec_program("git"
${CMAKE_CURRENT_SOURCE_DIR}
ARGS "describe --match=NeVeRmAtCh --always --dirty"
OUTPUT_VARIABLE GIT_VERSION)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/gitversionEngine.in ${CMAKE_CURRENT_BINARY_DIR}/gitversionEngine IMMEDIATE)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gitversionEngine DESTINATION ${INSTALL_ENGINE} COMPONENT platform)
INCLUDE(bison.cmake) INCLUDE(bison.cmake)
FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the flex executable") FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the flex executable")

1
gitversionEngine.in Normal file
View File

@ -0,0 +1 @@
@GIT_VERSION@

View File

@ -3236,7 +3236,7 @@ void Oam::SuspendWrites(GRACEFUL_FLAG gracefulflag, ACK_FLAG ackflag)
switch (returnStatus) switch (returnStatus)
{ {
case API_SUCCESS: case API_SUCCESS:
cout << endl << "Suspend Calpont Database Writes Request successfully completed" << endl; cout << endl << "Suspend MariaDB Columnstore Database Writes Request successfully completed" << endl;
break; break;
case API_FAILURE_DB_ERROR: case API_FAILURE_DB_ERROR:
@ -10821,7 +10821,7 @@ bool Oam::waitForSystem(PROC_MGT_MSG_REQUEST request, messageqcpp::IOSocket& ios
} }
catch (...) catch (...)
{ {
writeLog("Communication with calpont console failed while waiting for transactions", LOG_TYPE_ERROR); writeLog("Communication with MariaDB ColumnStore Admin console failed while waiting for transactions", LOG_TYPE_ERROR);
} }
// writeLog("Returning from wait with value " + itoa(ret), LOG_TYPE_INFO ); // writeLog("Returning from wait with value " + itoa(ret), LOG_TYPE_INFO );

View File

@ -4436,30 +4436,13 @@ int processCommand(string* arguments)
try try
{ {
SystemProcessStatus systemprocessstatus;
BRM::DBRM dbrm; BRM::DBRM dbrm;
dbrm.setSystemSuspended(false); dbrm.setSystemSuspended(false);
oam.getProcessStatus(systemprocessstatus);
for ( unsigned int i = 0 ; i < systemprocessstatus.processstatus.size(); i++)
{
if (systemprocessstatus.processstatus[i].ProcessName == "DMLProc")
{
oam.setProcessStatus(systemprocessstatus.processstatus[i].ProcessName, systemprocessstatus.processstatus[i].Module, ACTIVE, 1);
}
if (systemprocessstatus.processstatus[i].ProcessName == "DDLProc")
{
oam.setProcessStatus(systemprocessstatus.processstatus[i].ProcessName, systemprocessstatus.processstatus[i].Module, ACTIVE, 1);
}
if (systemprocessstatus.processstatus[i].ProcessName == "WriteEngineServer")
{
oam.setProcessStatus(systemprocessstatus.processstatus[i].ProcessName, systemprocessstatus.processstatus[i].Module, ACTIVE, 1);
}
}
oam.setSystemStatus(ACTIVE); oam.setSystemStatus(ACTIVE);
cout << endl << "Resume MariaDB ColumnStore Database Writes Request successfully completed" << endl; cout << endl << "Resume MariaDB ColumnStore Database Writes Request successfully completed" << endl;

View File

@ -1873,8 +1873,7 @@ inline bool StringStore::isNullValue(uint64_t off) const
if (mc->data[offset + 4] == 0) // "" = NULL string for some reason... if (mc->data[offset + 4] == 0) // "" = NULL string for some reason...
return true; return true;
return (memcmp(&mc->data[offset+4], joblist::CPNULLSTRMARK.c_str(), 8) == 0);
return (*((uint64_t*) &mc->data[offset] + 4) == *((uint64_t*) joblist::CPNULLSTRMARK.c_str()));
} }
inline bool StringStore::equals(const std::string& str, uint64_t off) const inline bool StringStore::equals(const std::string& str, uint64_t off) const

View File

@ -1880,11 +1880,11 @@ int DBRM::deletePartition(const std::vector<OID_t>& oids,
{ {
TRACER_WRITENOW("deletePartition"); TRACER_WRITENOW("deletePartition");
std::ostringstream oss; std::ostringstream oss;
oss << "partitionNum: " oss << "partitionNum: ";
std::set<LogicalPartition>::const_iterator partIt; std::set<LogicalPartition>::const_iterator partIt;
for (partIt = partitionNums.begin(); partIt != partitionNums.end(); ++partIt) for (partIt = partitionNums.begin(); partIt != partitionNums.end(); ++partIt)
oss << (*it) << " " oss << (*partIt) << " ";
oss << "; OIDS: "; oss << "; OIDS: ";
std::vector<OID_t>::const_iterator it; std::vector<OID_t>::const_iterator it;
@ -1939,11 +1939,11 @@ int DBRM::markPartitionForDeletion(const std::vector<OID_t>& oids,
{ {
TRACER_WRITENOW("markPartitionForDeletion"); TRACER_WRITENOW("markPartitionForDeletion");
std::ostringstream oss; std::ostringstream oss;
oss << "partitionNum: " oss << "partitionNum: ";
std::set<LogicalPartition>::const_iterator partIt; std::set<LogicalPartition>::const_iterator partIt;
for (partIt = partitionNums.begin(); partIt != partitionNums.end(); ++partIt) for (partIt = partitionNums.begin(); partIt != partitionNums.end(); ++partIt)
oss << (*it) << " " oss << (*partIt) << " ";
oss << "; OIDS: "; oss << "; OIDS: ";
std::vector<OID_t>::const_iterator it; std::vector<OID_t>::const_iterator it;
@ -2045,11 +2045,11 @@ int DBRM::restorePartition(const std::vector<OID_t>& oids,
{ {
TRACER_WRITENOW("restorePartition"); TRACER_WRITENOW("restorePartition");
std::ostringstream oss; std::ostringstream oss;
oss << "partitionNum: " oss << "partitionNum: ";
std::set<LogicalPartition>::const_iterator partIt; std::set<LogicalPartition>::const_iterator partIt;
for (partIt = partitionNums.begin(); partIt != partitionNums.end(); ++partIt) for (partIt = partitionNums.begin(); partIt != partitionNums.end(); ++partIt)
oss << (*it) << " " oss << (*partIt) << " ";
oss << "; OIDS: "; oss << "; OIDS: ";
std::vector<OID_t>::const_iterator it; std::vector<OID_t>::const_iterator it;

View File

@ -59,7 +59,6 @@ namespace bi = boost::interprocess;
#include "IDBDataFile.h" #include "IDBDataFile.h"
#include "IDBPolicy.h" #include "IDBPolicy.h"
#ifdef BRM_INFO #ifdef BRM_INFO
#error BRM_INFO is broken right now
#include "tracer.h" #include "tracer.h"
#include "configcpp.h" #include "configcpp.h"
#endif #endif
@ -4603,12 +4602,12 @@ void ExtentMap::setLocalHWM(int OID, uint32_t partitionNum,
{ {
makeUndoRecord(&fExtentMap[oldHWMExtentIndex], sizeof(EMEntry)); makeUndoRecord(&fExtentMap[oldHWMExtentIndex], sizeof(EMEntry));
fExtentMap[oldHWMExtentIndex].HWM = 0; fExtentMap[oldHWMExtentIndex].HWM = 0;
#ifdef BRM_DEBUG #ifdef BRM_INFO
addedAnExtent = true; addedAnExtent = true;
#endif #endif
} }
#ifdef BRM_DEBUG #ifdef BRM_INFO
if (firstNode) if (firstNode)
{ {
@ -4921,10 +4920,9 @@ void ExtentMap::deletePartition(const set<OID_t>& oids,
TRACER_WRITENOW("deletePartition"); TRACER_WRITENOW("deletePartition");
ostringstream oss; ostringstream oss;
set<LogicalPartition>::const_iterator partIt; set<LogicalPartition>::const_iterator partIt;
oss << "partitionNums: " oss << "partitionNums: ";
for (partIt=partitionNums.begin(); partIt!=partitionNums.end(); ++partIt)
for (partIt = partitionNums.begin(); it != partitionNums.end(); ++it) oss << (*partIt) << " ";
oss << (*it) << " ";
oss << endl; oss << endl;
oss << "OIDS: "; oss << "OIDS: ";
@ -5026,10 +5024,9 @@ void ExtentMap::markPartitionForDeletion(const set<OID_t>& oids,
TRACER_WRITENOW("markPartitionForDeletion"); TRACER_WRITENOW("markPartitionForDeletion");
ostringstream oss; ostringstream oss;
set<LogicalPartition>::const_iterator partIt; set<LogicalPartition>::const_iterator partIt;
oss << "partitionNums: " oss << "partitionNums: ";
for (partIt=partitionNums.begin(); partIt!=partitionNums.end(); ++partIt)
for (partIt = partitionNums.begin(); it != partitionNums.end(); ++it) oss << (*partIt) << " ";
oss << (*it) << " ";
oss << endl; oss << endl;
oss << "OIDS: "; oss << "OIDS: ";
@ -5193,10 +5190,9 @@ void ExtentMap::restorePartition(const set<OID_t>& oids,
TRACER_WRITENOW("restorePartition"); TRACER_WRITENOW("restorePartition");
ostringstream oss; ostringstream oss;
set<LogicalPartition>::const_iterator partIt; set<LogicalPartition>::const_iterator partIt;
oss << "partitionNums: " oss << "partitionNums: ";
for (partIt=partitionNums.begin(); partIt!=partitionNums.end(); ++partIt)
for (partIt = partitionNums.begin(); it != partitionNums.end(); ++it) oss << (*partIt) << " ";
oss << (*it) << " ";
oss << endl; oss << endl;
oss << "OIDS: "; oss << "OIDS: ";
@ -5365,7 +5361,7 @@ bool ExtentMap::isDBRootEmpty(uint16_t dbroot)
if (fDebug) if (fDebug)
{ {
TRACER_WRITELATER("isDBRootEmpty"); TRACER_WRITELATER("isDBRootEmpty");
TRACER_ADDINPUT(OID); TRACER_ADDINPUT(dbroot);
TRACER_WRITE; TRACER_WRITE;
} }

View File

@ -30,6 +30,8 @@
#include <ctime> #include <ctime>
#endif #endif
#include <unistd.h>
#define TRACER_DLLEXPORT #define TRACER_DLLEXPORT
#include "tracer.h" #include "tracer.h"
#undef TRACER_DLLEXPORT #undef TRACER_DLLEXPORT

View File

@ -637,6 +637,7 @@ int WriteEngineWrapper::fillColumn(const TxnID& txnid, const OID& dataOid,
// refColOp.reset(colOpRefCol); // refColOp.reset(colOpRefCol);
// dctnry.reset(dctOp); // dctnry.reset(dctOp);
uint16_t dbRoot = 1; //not to be used uint16_t dbRoot = 1; //not to be used
int newDataWidth = dataWidth;
//Convert HWM of the reference column for the new column //Convert HWM of the reference column for the new column
//Bug 1703,1705 //Bug 1703,1705
bool isToken = false; bool isToken = false;
@ -661,10 +662,17 @@ int WriteEngineWrapper::fillColumn(const TxnID& txnid, const OID& dataOid,
isToken = true; isToken = true;
} }
newDataWidth = colOpNewCol->getCorrectRowWidth(dataType, dataWidth);
// MCOL-1347 CS doubles the width for ALTER TABLE..ADD COLUMN
if ( dataWidth < 4 && dataType == CalpontSystemCatalog::VARCHAR )
{
newDataWidth >>= 1;
}
Convertor::convertColType(refColDataType, refColType, isToken); Convertor::convertColType(refColDataType, refColType, isToken);
refColOp->setColParam(refCol, 0, refColOp->getCorrectRowWidth(refColDataType, refColWidth), refColOp->setColParam(refCol, 0, refColOp->getCorrectRowWidth(refColDataType, refColWidth),
refColDataType, refColType, (FID)refColOID, refCompressionType, dbRoot); refColDataType, refColType, (FID)refColOID, refCompressionType, dbRoot);
colOpNewCol->setColParam(newCol, 0, colOpNewCol->getCorrectRowWidth(dataType, dataWidth), colOpNewCol->setColParam(newCol, 0, newDataWidth,
dataType, newColType, (FID)dataOid, compressionType, dbRoot); dataType, newColType, (FID)dataOid, compressionType, dbRoot);
int size = sizeof(Token); int size = sizeof(Token);