fix: row iter
This commit is contained in:
parent
1d6d0aa2db
commit
cfb61d665d
|
@ -256,7 +256,7 @@ static FORCE_INLINE void *tdGetBitmapAddrTp(STSRow *pRow, uint32_t flen) {
|
||||||
|
|
||||||
static FORCE_INLINE void *tdGetBitmapAddrKv(STSRow *pRow, col_id_t nKvCols) {
|
static FORCE_INLINE void *tdGetBitmapAddrKv(STSRow *pRow, col_id_t nKvCols) {
|
||||||
// The primary TS key is stored separatedly and is Norm value, thus should minus 1 firstly
|
// The primary TS key is stored separatedly and is Norm value, thus should minus 1 firstly
|
||||||
return POINTER_SHIFT(TD_ROW_COL_IDX(pRow), nKvCols * sizeof(SKvRowIdx));
|
return POINTER_SHIFT(TD_ROW_COL_IDX(pRow), (--nKvCols) * sizeof(SKvRowIdx));
|
||||||
}
|
}
|
||||||
void *tdGetBitmapAddr(STSRow *pRow, uint8_t rowType, uint32_t flen, col_id_t nKvCols);
|
void *tdGetBitmapAddr(STSRow *pRow, uint8_t rowType, uint32_t flen, col_id_t nKvCols);
|
||||||
int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType, int8_t bitmapMode);
|
int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType, int8_t bitmapMode);
|
||||||
|
|
|
@ -427,7 +427,7 @@ bool tdSKvRowGetVal(STSRow *pRow, col_id_t colId, col_id_t colIdx, SCellVal *pVa
|
||||||
tdRowSetVal(pVal, TD_VTYPE_NORM, TD_ROW_KEY_ADDR(pRow));
|
tdRowSetVal(pVal, TD_VTYPE_NORM, TD_ROW_KEY_ADDR(pRow));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
int16_t nCols = tdRowGetNCols(pRow);
|
int16_t nCols = tdRowGetNCols(pRow) - 1;
|
||||||
if (nCols <= 0) {
|
if (nCols <= 0) {
|
||||||
pVal->valType = TD_VTYPE_NONE;
|
pVal->valType = TD_VTYPE_NONE;
|
||||||
return true;
|
return true;
|
||||||
|
@ -488,7 +488,7 @@ bool tdGetKvRowValOfColEx(STSRowIter *pIter, col_id_t colId, col_id_t *nIdx, SCe
|
||||||
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) - 1;
|
||||||
void *pColIdx = TD_ROW_COL_IDX(pRow);
|
void *pColIdx = TD_ROW_COL_IDX(pRow);
|
||||||
|
|
||||||
while (*nIdx < kvNCols) {
|
while (*nIdx < kvNCols) {
|
||||||
|
@ -534,7 +534,7 @@ bool tdGetTpRowDataOfCol(STSRowIter *pIter, col_type_t colType, int32_t offset,
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tdGetBitmapValType(pIter->pBitmap, pIter->colIdx, &pVal->valType, 0) != TSDB_CODE_SUCCESS) {
|
if (tdGetBitmapValType(pIter->pBitmap, pIter->colIdx - 1, &pVal->valType, 0) != TSDB_CODE_SUCCESS) {
|
||||||
pVal->valType = TD_VTYPE_NONE;
|
pVal->valType = TD_VTYPE_NONE;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -814,7 +814,7 @@ int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
||||||
|
|
||||||
int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_t offset, int16_t colIdx) {
|
int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_t offset, int16_t colIdx) {
|
||||||
#ifdef TD_SUPPORT_BITMAP
|
#ifdef TD_SUPPORT_BITMAP
|
||||||
TASSERT(colIdx < tdRowGetNCols(pRow));
|
TASSERT(colIdx < tdRowGetNCols(pRow) - 1);
|
||||||
if (tdGetBitmapValType(pBitmap, colIdx, &output->valType, 0) != TSDB_CODE_SUCCESS) {
|
if (tdGetBitmapValType(pBitmap, colIdx, &output->valType, 0) != TSDB_CODE_SUCCESS) {
|
||||||
output->valType = TD_VTYPE_NONE;
|
output->valType = TD_VTYPE_NONE;
|
||||||
return terrno;
|
return terrno;
|
||||||
|
@ -1054,14 +1054,14 @@ int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
break;
|
break;
|
||||||
case TD_ROW_KV:
|
case TD_ROW_KV:
|
||||||
#ifdef TD_SUPPORT_BITMAP
|
#ifdef TD_SUPPORT_BITMAP
|
||||||
pBuilder->pBitmap = tdGetBitmapAddrKv(pBuilder->pBuf, pBuilder->nBoundCols - 1);
|
pBuilder->pBitmap = tdGetBitmapAddrKv(pBuilder->pBuf, pBuilder->nBoundCols);
|
||||||
memset(pBuilder->pBitmap, TD_VTYPE_NONE_BYTE_II, pBuilder->nBoundBitmaps);
|
memset(pBuilder->pBitmap, TD_VTYPE_NONE_BYTE_II, pBuilder->nBoundBitmaps);
|
||||||
#endif
|
#endif
|
||||||
len = TD_ROW_HEAD_LEN + TD_ROW_NCOLS_LEN + (pBuilder->nBoundCols - 1) * sizeof(SKvRowIdx) +
|
len = TD_ROW_HEAD_LEN + TD_ROW_NCOLS_LEN + (pBuilder->nBoundCols - 1) * sizeof(SKvRowIdx) +
|
||||||
pBuilder->nBoundBitmaps; // add
|
pBuilder->nBoundBitmaps; // add
|
||||||
TD_ROW_SET_LEN(pBuilder->pBuf, len);
|
TD_ROW_SET_LEN(pBuilder->pBuf, len);
|
||||||
TD_ROW_SET_SVER(pBuilder->pBuf, pBuilder->sver);
|
TD_ROW_SET_SVER(pBuilder->pBuf, pBuilder->sver);
|
||||||
TD_ROW_SET_NCOLS(pBuilder->pBuf, pBuilder->nBoundCols - 1);
|
TD_ROW_SET_NCOLS(pBuilder->pBuf, pBuilder->nBoundCols);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
TASSERT(0);
|
||||||
|
|
Loading…
Reference in New Issue