more code

This commit is contained in:
Hongze Cheng 2024-02-21 19:26:12 +08:00
parent 844a563295
commit 49f49fd238
2 changed files with 16 additions and 10 deletions

View File

@ -95,7 +95,7 @@ const static uint8_t BIT2_MAP[4] = {0b11111100, 0b11110011, 0b11001111, 0b001111
#define COL_VAL_IS_VALUE(CV) ((CV)->flag == CV_FLAG_VALUE) #define COL_VAL_IS_VALUE(CV) ((CV)->flag == CV_FLAG_VALUE)
// SValueColumn ================================ // SValueColumn ================================
int32_t tValueColumnInit(SValueColumn *valCol, int8_t type); int32_t tValueColumnInit(SValueColumn *valCol);
int32_t tValueColumnDestroy(SValueColumn *valCol); int32_t tValueColumnDestroy(SValueColumn *valCol);
int32_t tValueColumnClear(SValueColumn *valCol); int32_t tValueColumnClear(SValueColumn *valCol);
int32_t tValueColumnAppend(SValueColumn *valCol, const SValue *value); int32_t tValueColumnAppend(SValueColumn *valCol, const SValue *value);
@ -291,6 +291,13 @@ STSchema *tBuildTSchema(SSchema *aSchema, int32_t numOfCols, int32_t version);
} \ } \
} while (0) } while (0)
struct SValueColumn {
int8_t type;
uint32_t numOfValues;
SBuffer data;
SBuffer offsets;
};
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -3786,15 +3786,8 @@ void (*tColDataCalcSMA[])(SColData *pColData, int64_t *sum, int64_t *max, int64_
}; };
// SValueColumn ================================ // SValueColumn ================================
struct SValueColumn { int32_t tValueColumnInit(SValueColumn *valCol) {
int8_t type; valCol->type = TSDB_DATA_TYPE_NULL;
uint32_t numOfValues;
SBuffer data;
SBuffer offsets;
};
int32_t tValueColumnInit(SValueColumn *valCol, int8_t type) {
valCol->type = type;
valCol->numOfValues = 0; valCol->numOfValues = 0;
tBufferInit(&valCol->data); tBufferInit(&valCol->data);
tBufferInit(&valCol->offsets); tBufferInit(&valCol->offsets);
@ -3810,6 +3803,7 @@ int32_t tValueColumnDestroy(SValueColumn *valCol) {
} }
int32_t tValueColumnClear(SValueColumn *valCol) { int32_t tValueColumnClear(SValueColumn *valCol) {
valCol->type = TSDB_DATA_TYPE_NULL;
valCol->numOfValues = 0; valCol->numOfValues = 0;
tBufferClear(&valCol->data); tBufferClear(&valCol->data);
tBufferClear(&valCol->offsets); tBufferClear(&valCol->offsets);
@ -3819,7 +3813,12 @@ int32_t tValueColumnClear(SValueColumn *valCol) {
int32_t tValueColumnAppend(SValueColumn *valCol, const SValue *value) { int32_t tValueColumnAppend(SValueColumn *valCol, const SValue *value) {
int32_t code; int32_t code;
if (valCol->numOfValues == 0) {
valCol->type = value->type;
}
ASSERT(value->type == valCol->type); ASSERT(value->type == valCol->type);
if (IS_VAR_DATA_TYPE(value->type)) { if (IS_VAR_DATA_TYPE(value->type)) {
int32_t offset = tBufferGetSize(&valCol->data); int32_t offset = tBufferGetSize(&valCol->data);
if ((code = tBufferAppend(&valCol->offsets, &offset, sizeof(offset)))) { if ((code = tBufferAppend(&valCol->offsets, &offset, sizeof(offset)))) {