You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-12-18 13:54:11 +03:00
Fixed read/write/append responses.
This commit is contained in:
@@ -62,11 +62,22 @@ void AppendTask::run()
|
||||
if (readCount != writeCount)
|
||||
break;
|
||||
}
|
||||
uint32_t *buf32 = (uint32_t *) cmdbuf;
|
||||
buf32[0] = SM_MSG_START;
|
||||
buf32[1] = 4;
|
||||
buf32[2] = writeCount;
|
||||
write(cmdbuf, 12);
|
||||
|
||||
uint32_t response[4];
|
||||
response[0] = SM_MSG_START;
|
||||
if (cmd->count != 0 && writeCount == 0)
|
||||
{
|
||||
response[1] = 8;
|
||||
response[2] = -1;
|
||||
response[3] = errno;
|
||||
write((uint8_t *) response, 16);
|
||||
}
|
||||
else
|
||||
{
|
||||
response[1] = 4;
|
||||
response[2] = writeCount;
|
||||
write((uint8_t *) response, 12);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -58,10 +58,11 @@ void ReadTask::run()
|
||||
if (count > 0)
|
||||
outbuf32[1] = count;
|
||||
else {
|
||||
int l_errno = errno;
|
||||
outbuf.resize(16);
|
||||
outbuf32[1] = 8;
|
||||
outbuf32[2] = err;
|
||||
outbuf32[3] = errno;
|
||||
outbuf32[3] = l_errno;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -39,12 +39,12 @@ void WriteTask::run()
|
||||
|
||||
success = read(&cmdbuf[sizeof(*cmd)], min(cmd->filename_len, 1024 - sizeof(*cmd) - 1));
|
||||
check_error("WriteTask read");
|
||||
|
||||
|
||||
size_t readCount = 0, writeCount = 0;
|
||||
vector<uint8_t> databuf;
|
||||
uint bufsize = 1 << 20; // 1 MB
|
||||
databuf.resize(bufsize); // 1 MB
|
||||
|
||||
|
||||
while (readCount < cmd->count)
|
||||
{
|
||||
uint toRead = min(cmd->count - readCount, bufsize); // 1 MB
|
||||
@@ -61,11 +61,22 @@ void WriteTask::run()
|
||||
if (writeCount != readCount)
|
||||
break;
|
||||
}
|
||||
uint32_t *buf32 = (uint32_t *) cmdbuf;
|
||||
buf32[0] = SM_MSG_START;
|
||||
buf32[1] = 4;
|
||||
buf32[2] = writeCount;
|
||||
write(cmdbuf, 12);
|
||||
|
||||
uint32_t response[4];
|
||||
response[0] = SM_MSG_START;
|
||||
if (cmd->count != 0 && writeCount == 0)
|
||||
{
|
||||
response[1] = 8;
|
||||
response[2] = -1;
|
||||
response[3] = errno;
|
||||
write((uint8_t *) response, 16);
|
||||
}
|
||||
else
|
||||
{
|
||||
response[1] = 4;
|
||||
response[2] = writeCount;
|
||||
write((uint8_t *) response, 12);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user