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
MCOL-894 Upmerged the fist part of the patch into develop.
MCOL-894 Add default values in Compare and CSEP ctors to activate UTF-8 sorting properly. MCOL-894 Unit tests to build a framework for a new parallel sorting. MCOL-894 Finished with parallel workers invocation. The implementation lacks final aggregation step. MCOL-894 TupleAnnexStep's init and destructor are now parallel execution aware. Implemented final merging step for parallel execution finalizeParallelOrderBy(). Templated unit test to use it with arbitrary number of rows, threads. Reuse LimitedOrderBy in the final step MCOL-894 Cleaned up finalizeParallelOrderBy. MCOL-894 Add and propagate thread variable that controls a number of threads. Optimized comparators used for sorting and add corresponding UTs. Refactored TupleAnnexStep::finalizeParallelOrderByDistinct. Parallel sorting methods now preallocates memory in batches. MCOL-894 Fixed comparator for StringCompare.
This commit is contained in:
@ -82,6 +82,7 @@ CalpontSelectExecutionPlan::CalpontSelectExecutionPlan(const int location):
|
||||
fQueryType(SELECT),
|
||||
fPriority(querystats::DEFAULT_USER_PRIORITY_LEVEL),
|
||||
fStringTableThreshold(20),
|
||||
fOrderByThreads(1),
|
||||
fDJSSmallSideLimit(0),
|
||||
fDJSLargeSideLimit(0),
|
||||
fDJSPartitionSize(100 * 1024 * 1024), // 100MB mem usage for disk based join,
|
||||
@ -125,6 +126,7 @@ CalpontSelectExecutionPlan::CalpontSelectExecutionPlan(
|
||||
fQueryType(SELECT),
|
||||
fPriority(querystats::DEFAULT_USER_PRIORITY_LEVEL),
|
||||
fStringTableThreshold(20),
|
||||
fOrderByThreads(1),
|
||||
fDJSSmallSideLimit(0),
|
||||
fDJSLargeSideLimit(0),
|
||||
fDJSPartitionSize(100 * 1024 * 1024), // 100MB mem usage for disk based join
|
||||
@ -151,6 +153,7 @@ CalpontSelectExecutionPlan::CalpontSelectExecutionPlan (string data) :
|
||||
fQueryType(SELECT),
|
||||
fPriority(querystats::DEFAULT_USER_PRIORITY_LEVEL),
|
||||
fStringTableThreshold(20),
|
||||
fOrderByThreads(1),
|
||||
fDJSSmallSideLimit(0),
|
||||
fDJSLargeSideLimit(0),
|
||||
fDJSPartitionSize(100 * 1024 * 1024), // 100MB mem usage for disk based join
|
||||
@ -479,6 +482,7 @@ void CalpontSelectExecutionPlan::serialize(messageqcpp::ByteStream& b) const
|
||||
b << (uint64_t)fLimitNum;
|
||||
b << static_cast<const ByteStream::byte>(fHasOrderBy);
|
||||
b << static_cast<const ByteStream::byte>(fSpecHandlerProcessed);
|
||||
b << reinterpret_cast<uint32_t>(fOrderByThreads);
|
||||
|
||||
b << static_cast<uint32_t>(fSelectSubList.size());
|
||||
|
||||
@ -648,6 +652,7 @@ void CalpontSelectExecutionPlan::unserialize(messageqcpp::ByteStream& b)
|
||||
b >> (uint64_t&)fLimitNum;
|
||||
b >> reinterpret_cast< ByteStream::byte&>(fHasOrderBy);
|
||||
b >> reinterpret_cast< ByteStream::byte&>(fSpecHandlerProcessed);
|
||||
b >> reinterpret_cast<uint32_t&>(fOrderByThreads);
|
||||
|
||||
// for SELECT subquery
|
||||
b >> size;
|
||||
|
Reference in New Issue
Block a user