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

Merge pull request #808 from mariadb-corporation/develop-merge-up-20190729

Merge develop-1.2 into develop
This commit is contained in:
Roman Nozdrin
2019-08-13 11:55:22 +03:00
committed by GitHub
36 changed files with 365 additions and 176 deletions

View File

@@ -118,7 +118,10 @@ string Func_timediff::getStrVal(rowgroup::Row& row,
case execplan::CalpontSystemCatalog::TIME:
case execplan::CalpontSystemCatalog::DATETIME:
if (type1 != type2)
// Diff between time and datetime returns NULL in MariaDB
if ((type2 == execplan::CalpontSystemCatalog::TIME ||
type2 == execplan::CalpontSystemCatalog::DATETIME) &&
type1 != type2)
{
isNull = true;
break;

View File

@@ -1771,7 +1771,8 @@ inline void copyRow(const Row& in, Row* out, uint32_t colCount)
{
if (UNLIKELY(in.getColTypes()[i] == execplan::CalpontSystemCatalog::VARBINARY ||
in.getColTypes()[i] == execplan::CalpontSystemCatalog::BLOB ||
in.getColTypes()[i] == execplan::CalpontSystemCatalog::TEXT))
in.getColTypes()[i] == execplan::CalpontSystemCatalog::TEXT ||
in.getColTypes()[i] == execplan::CalpontSystemCatalog::CLOB))
out->setVarBinaryField(in.getVarBinaryStringField(i), i);
else if (UNLIKELY(in.isLongString(i)))
//out->setStringField(in.getStringField(i), i);

View File

@@ -409,6 +409,24 @@ void ThreadPool::beginThread() throw()
--fIssued;
--waitingFunctorsSize;
fWaitingFunctors.erase(todo);
if (fDebug)
{
ostringstream oss;
oss << "Ending thread " << " on " << fName
<< " max " << fMaxThreads
<< " queue " << fQueueSize
<< " threads " << fThreadCount
<< " running " << fIssued
<< " waiting " << (waitingFunctorsSize - fIssued)
<< " total " << waitingFunctorsSize;
logging::Message::Args args;
logging::Message message(0);
args.add(oss.str());
message.format( args );
logging::LoggingID lid(22);
logging::MessageLog ml(lid);
ml.logWarningMessage( message );
}
}
timeout = boost::get_system_time() + boost::posix_time::minutes(10);
@@ -536,6 +554,8 @@ void ThreadPoolMonitor::operator()()
<< setw(4) << tv.tv_usec / 100
<< " Name " << fPool->fName
<< " Active " << fPool->waitingFunctorsSize
<< " running " << fPool->fIssued
<< " waiting " << (fPool->waitingFunctorsSize - fPool->fIssued)
<< " ThdCnt " << fPool->fThreadCount
<< " Max " << fPool->fMaxThreads
<< " Q " << fPool->fQueueSize