You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-01 06:21:41 +03:00
Fix/mcol 5787 rgdata buffer max size dev (#3325)
* fix(rowgroup): RGData now uses uint64_t counter for the fixed sizes columns data buf. The buffer can utilize > 4GB RAM that is necessary for PM side join. RGData ctor uses uint32_t allocating data buffer. This fact causes implicit heap overflow. * feat(bytestream,serdes): BS buffer size type is uint64_t This necessary to handle 64bit RGData, that comes as a separate patch. The pair of patches would allow to have PM joins when SmallSide size > 4GB. * feat(bytestream,serdes): Distribute BS buf size data type change to avoid implicit data type narrowing * feat(rowgroup): this returns bits lost during cherry-pick. The bits lost caused the first RGData::serialize to crash a process
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "SocketPool.h"
|
||||
#include "bytestream.h"
|
||||
#include "configcpp.h"
|
||||
#include "logger.h"
|
||||
#include "messageFormat.h"
|
||||
@ -87,8 +88,8 @@ SocketPool::~SocketPool()
|
||||
|
||||
int SocketPool::send_recv(messageqcpp::ByteStream& in, messageqcpp::ByteStream* out)
|
||||
{
|
||||
uint count = 0;
|
||||
uint length = in.length();
|
||||
messageqcpp::BSSizeType count = 0;
|
||||
messageqcpp::BSSizeType length = in.length();
|
||||
int sock = -1;
|
||||
const uint8_t* inbuf = in.buf();
|
||||
ssize_t err = 0;
|
||||
|
Reference in New Issue
Block a user