fix: count(tag) when use qnode

This commit is contained in:
factosea 2024-02-18 15:50:34 +08:00
parent b1841ceff5
commit 5434019d2b
3 changed files with 18 additions and 3 deletions

View File

@ -2028,6 +2028,9 @@ int32_t setResultDataPtr(SReqResultInfo* pResultInfo, TAOS_FIELD* pFields, int32
int32_t rows = *(int32_t*)p;
p += sizeof(int32_t);
// bool blankFill = *(bool*)p;
p += sizeof(bool);
int32_t cols = *(int32_t*)p;
p += sizeof(int32_t);

View File

@ -866,9 +866,9 @@ size_t blockDataGetRowSize(SSDataBlock* pBlock) {
* @return
*/
size_t blockDataGetSerialMetaSize(uint32_t numOfCols) {
// | version | total length | total rows | total columns | flag seg| block group id | column schema
// | version | total length | total rows | blankFull | total columns | flag seg| block group id | column schema
// | each column length |
return sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t) + sizeof(uint64_t) +
return sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t) + sizeof(bool) + sizeof(int32_t) + sizeof(int32_t) + sizeof(uint64_t) +
numOfCols * (sizeof(int8_t) + sizeof(int32_t)) + numOfCols * sizeof(int32_t);
}
@ -1436,6 +1436,7 @@ SSDataBlock* createOneDataBlock(const SSDataBlock* pDataBlock, bool copyData) {
pBlock->info.capacity = 0;
pBlock->info.rowSize = 0;
pBlock->info.id = pDataBlock->info.id;
pBlock->info.blankFill = pDataBlock->info.blankFill;
size_t numOfCols = taosArrayGetSize(pDataBlock->pDataBlock);
for (int32_t i = 0; i < numOfCols; ++i) {
@ -2207,6 +2208,10 @@ int32_t blockEncode(const SSDataBlock* pBlock, char* data, int32_t numOfCols) {
data += sizeof(int32_t);
ASSERT(*rows > 0);
bool* blankFill = (bool*)data;
*blankFill = pBlock->info.blankFill;
data += sizeof(bool);
int32_t* cols = (int32_t*)data;
*cols = numOfCols;
data += sizeof(int32_t);
@ -2302,6 +2307,9 @@ const char* blockDecode(SSDataBlock* pBlock, const char* pData) {
int32_t numOfRows = *(int32_t*)pStart;
pStart += sizeof(int32_t);
bool blankFill = *(bool*)pStart;
pStart += sizeof(bool);
// total columns sizeof(int32_t)
int32_t numOfCols = *(int32_t*)pStart;
pStart += sizeof(int32_t);
@ -2377,6 +2385,7 @@ const char* blockDecode(SSDataBlock* pBlock, const char* pData) {
pBlock->info.dataLoad = 1;
pBlock->info.rows = numOfRows;
pBlock->info.blankFill = blankFill;
ASSERT(pStart - pData == dataLen);
return pStart;
}

View File

@ -660,7 +660,7 @@ int rawBlockBindData(SQuery* query, STableMeta* pTableMeta, void* data, SVCreate
}
char* p = (char*)data;
// | version | total length | total rows | total columns | flag seg| block group id | column schema | each column
// | version | total length | total rows | blankFill | total columns | flag seg| block group id | column schema | each column
// length |
int32_t version = *(int32_t*)data;
p += sizeof(int32_t);
@ -669,6 +669,9 @@ int rawBlockBindData(SQuery* query, STableMeta* pTableMeta, void* data, SVCreate
int32_t numOfRows = *(int32_t*)p;
p += sizeof(int32_t);
// blankFill
p += sizeof(bool);
int32_t numOfCols = *(int32_t*)p;
p += sizeof(int32_t);