Merge pull request #10780 from taosdata/feature/TD-11463-3.0
Feature/td 11463 3.0
This commit is contained in:
commit
d3564f3d36
|
@ -98,13 +98,13 @@ typedef void *SRow;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
TDRowValT valType;
|
TDRowValT valType;
|
||||||
void *val;
|
void * val;
|
||||||
} SCellVal;
|
} SCellVal;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
// TODO
|
// TODO
|
||||||
int tmp; // TODO: to avoid compile error
|
int tmp; // TODO: to avoid compile error
|
||||||
} STpRow; // tuple
|
} STpRow; // tuple
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -158,8 +158,8 @@ typedef struct {
|
||||||
int16_t nBitmaps;
|
int16_t nBitmaps;
|
||||||
int16_t nBoundBitmaps;
|
int16_t nBoundBitmaps;
|
||||||
int32_t offset;
|
int32_t offset;
|
||||||
void *pBitmap;
|
void * pBitmap;
|
||||||
void *pOffset;
|
void * pOffset;
|
||||||
int32_t extendedRowSize;
|
int32_t extendedRowSize;
|
||||||
} SRowBuilder;
|
} SRowBuilder;
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ static FORCE_INLINE int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TD
|
||||||
}
|
}
|
||||||
int16_t nBytes = colIdx / TD_VTYPE_PARTS;
|
int16_t nBytes = colIdx / TD_VTYPE_PARTS;
|
||||||
int16_t nOffset = colIdx & TD_VTYPE_OPTR;
|
int16_t nOffset = colIdx & TD_VTYPE_OPTR;
|
||||||
char *pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes);
|
char * pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes);
|
||||||
switch (nOffset) {
|
switch (nOffset) {
|
||||||
case 0:
|
case 0:
|
||||||
*pDestByte = ((*pDestByte) & 0x3F) | (valType << 6);
|
*pDestByte = ((*pDestByte) & 0x3F) | (valType << 6);
|
||||||
|
@ -311,7 +311,7 @@ static FORCE_INLINE int32_t tdGetBitmapValType(void *pBitmap, int16_t colIdx, TD
|
||||||
}
|
}
|
||||||
int16_t nBytes = colIdx / TD_VTYPE_PARTS;
|
int16_t nBytes = colIdx / TD_VTYPE_PARTS;
|
||||||
int16_t nOffset = colIdx & TD_VTYPE_OPTR;
|
int16_t nOffset = colIdx & TD_VTYPE_OPTR;
|
||||||
char *pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes);
|
char * pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes);
|
||||||
switch (nOffset) {
|
switch (nOffset) {
|
||||||
case 0:
|
case 0:
|
||||||
*pValType = (((*pDestByte) & 0xC0) >> 6);
|
*pValType = (((*pDestByte) & 0xC0) >> 6);
|
||||||
|
@ -617,7 +617,7 @@ static FORCE_INLINE int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowVa
|
||||||
if (tdValIsNorm(valType, val, colType)) {
|
if (tdValIsNorm(valType, val, colType)) {
|
||||||
// ts key stored in STSRow.ts
|
// ts key stored in STSRow.ts
|
||||||
SKvRowIdx *pColIdx = (SKvRowIdx *)POINTER_SHIFT(TD_ROW_COL_IDX(row), offset);
|
SKvRowIdx *pColIdx = (SKvRowIdx *)POINTER_SHIFT(TD_ROW_COL_IDX(row), offset);
|
||||||
char *ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row));
|
char * ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row));
|
||||||
pColIdx->colId = colId;
|
pColIdx->colId = colId;
|
||||||
pColIdx->offset = TD_ROW_LEN(row); // the offset include the TD_ROW_HEAD_LEN
|
pColIdx->offset = TD_ROW_LEN(row); // the offset include the TD_ROW_HEAD_LEN
|
||||||
|
|
||||||
|
@ -635,7 +635,7 @@ static FORCE_INLINE int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowVa
|
||||||
// NULL/None value
|
// NULL/None value
|
||||||
else {
|
else {
|
||||||
SKvRowIdx *pColIdx = (SKvRowIdx *)POINTER_SHIFT(TD_ROW_COL_IDX(row), offset);
|
SKvRowIdx *pColIdx = (SKvRowIdx *)POINTER_SHIFT(TD_ROW_COL_IDX(row), offset);
|
||||||
char *ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row));
|
char * ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row));
|
||||||
pColIdx->colId = colId;
|
pColIdx->colId = colId;
|
||||||
pColIdx->offset = TD_ROW_LEN(row); // the offset include the TD_ROW_HEAD_LEN
|
pColIdx->offset = TD_ROW_LEN(row); // the offset include the TD_ROW_HEAD_LEN
|
||||||
const void *nullVal = getNullValue(colType);
|
const void *nullVal = getNullValue(colType);
|
||||||
|
@ -697,9 +697,9 @@ static FORCE_INLINE int32_t tdAppendColValToRow(SRowBuilder *pBuilder, int16_t c
|
||||||
}
|
}
|
||||||
// TODO: We can avoid the type judegement by FP, but would prevent the inline scheme.
|
// TODO: We can avoid the type judegement by FP, but would prevent the inline scheme.
|
||||||
if (TD_IS_TP_ROW(pRow)) {
|
if (TD_IS_TP_ROW(pRow)) {
|
||||||
tdAppendColValToTpRow(pBuilder, valType, val, true, colType, colIdx, offset);
|
tdAppendColValToTpRow(pBuilder, valType, val, isCopyVarData, colType, colIdx, offset);
|
||||||
} else {
|
} else {
|
||||||
tdAppendColValToKvRow(pBuilder, valType, val, true, colType, colIdx, offset, colId);
|
tdAppendColValToKvRow(pBuilder, valType, val, isCopyVarData, colType, colIdx, offset, colId);
|
||||||
}
|
}
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -771,8 +771,8 @@ static FORCE_INLINE int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, v
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
STSchema *pSchema;
|
STSchema *pSchema;
|
||||||
STSRow *pRow;
|
STSRow * pRow;
|
||||||
void *pBitmap;
|
void * pBitmap;
|
||||||
uint32_t offset;
|
uint32_t offset;
|
||||||
col_id_t maxColId;
|
col_id_t maxColId;
|
||||||
col_id_t colIdx; // [PRIMARYKEY_TIMESTAMP_COL_ID, nSchemaCols], PRIMARYKEY_TIMESTAMP_COL_ID equals 1
|
col_id_t colIdx; // [PRIMARYKEY_TIMESTAMP_COL_ID, nSchemaCols], PRIMARYKEY_TIMESTAMP_COL_ID equals 1
|
||||||
|
@ -877,7 +877,7 @@ static FORCE_INLINE bool tdGetTpRowDataOfCol(STSRowIter *pIter, col_type_t colTy
|
||||||
// internal
|
// internal
|
||||||
static FORCE_INLINE bool tdGetKvRowValOfColEx(STSRowIter *pIter, col_id_t colId, col_type_t colType, col_id_t *nIdx,
|
static FORCE_INLINE bool tdGetKvRowValOfColEx(STSRowIter *pIter, col_id_t colId, col_type_t colType, col_id_t *nIdx,
|
||||||
SCellVal *pVal) {
|
SCellVal *pVal) {
|
||||||
STSRow *pRow = pIter->pRow;
|
STSRow * pRow = pIter->pRow;
|
||||||
SKvRowIdx *pKvIdx = NULL;
|
SKvRowIdx *pKvIdx = NULL;
|
||||||
bool colFound = false;
|
bool colFound = false;
|
||||||
col_id_t kvNCols = tdRowGetNCols(pRow);
|
col_id_t kvNCols = tdRowGetNCols(pRow);
|
||||||
|
@ -1068,7 +1068,7 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
STSchema *pSchema;
|
STSchema *pSchema;
|
||||||
STSRow *pRow;
|
STSRow * pRow;
|
||||||
} STSRowReader;
|
} STSRowReader;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -617,7 +617,7 @@ static FORCE_INLINE int32_t MemRowAppend(const void* value, int32_t len, void* p
|
||||||
if (TSDB_DATA_TYPE_BINARY == pa->schema->type) {
|
if (TSDB_DATA_TYPE_BINARY == pa->schema->type) {
|
||||||
const char* rowEnd = tdRowEnd(rb->pBuf);
|
const char* rowEnd = tdRowEnd(rb->pBuf);
|
||||||
STR_WITH_SIZE_TO_VARSTR(rowEnd, value, len);
|
STR_WITH_SIZE_TO_VARSTR(rowEnd, value, len);
|
||||||
tdAppendColValToRow(rb, pa->schema->colId, pa->schema->type, TD_VTYPE_NORM, rowEnd, false, pa->toffset, pa->colIdx);
|
tdAppendColValToRow(rb, pa->schema->colId, pa->schema->type, TD_VTYPE_NORM, rowEnd, true, pa->toffset, pa->colIdx);
|
||||||
} else if (TSDB_DATA_TYPE_NCHAR == pa->schema->type) {
|
} else if (TSDB_DATA_TYPE_NCHAR == pa->schema->type) {
|
||||||
// if the converted output len is over than pColumnModel->bytes, return error: 'Argument list too long'
|
// if the converted output len is over than pColumnModel->bytes, return error: 'Argument list too long'
|
||||||
int32_t output = 0;
|
int32_t output = 0;
|
||||||
|
@ -626,9 +626,9 @@ static FORCE_INLINE int32_t MemRowAppend(const void* value, int32_t len, void* p
|
||||||
return TSDB_CODE_TSC_SQL_SYNTAX_ERROR;
|
return TSDB_CODE_TSC_SQL_SYNTAX_ERROR;
|
||||||
}
|
}
|
||||||
varDataSetLen(rowEnd, output);
|
varDataSetLen(rowEnd, output);
|
||||||
tdAppendColValToRow(rb, pa->schema->colId, pa->schema->type, TD_VTYPE_NORM, rowEnd, false, pa->toffset, pa->colIdx);
|
tdAppendColValToRow(rb, pa->schema->colId, pa->schema->type, TD_VTYPE_NORM, rowEnd, true, pa->toffset, pa->colIdx);
|
||||||
} else {
|
} else {
|
||||||
tdAppendColValToRow(rb, pa->schema->colId, pa->schema->type, TD_VTYPE_NORM, value, true, pa->toffset, pa->colIdx);
|
tdAppendColValToRow(rb, pa->schema->colId, pa->schema->type, TD_VTYPE_NORM, value, false, pa->toffset, pa->colIdx);
|
||||||
}
|
}
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue