safetycheck, use reserve state
This commit is contained in:
parent
3a505157f3
commit
5d20fde692
|
@ -1215,6 +1215,7 @@ typedef struct {
|
||||||
int32_t bytes;
|
int32_t bytes;
|
||||||
int8_t type;
|
int8_t type;
|
||||||
uint8_t pk;
|
uint8_t pk;
|
||||||
|
bool reserve;
|
||||||
} SColumnInfo;
|
} SColumnInfo;
|
||||||
|
|
||||||
typedef struct STimeWindow {
|
typedef struct STimeWindow {
|
||||||
|
|
|
@ -3543,7 +3543,7 @@ int32_t blockDataCheck(const SSDataBlock* pDataBlock) {
|
||||||
SColumnInfoData* pCol = (SColumnInfoData*)taosArrayGet(pDataBlock->pDataBlock, i);
|
SColumnInfoData* pCol = (SColumnInfoData*)taosArrayGet(pDataBlock->pDataBlock, i);
|
||||||
isVarType = IS_VAR_DATA_TYPE(pCol->info.type);
|
isVarType = IS_VAR_DATA_TYPE(pCol->info.type);
|
||||||
checkRows = pDataBlock->info.rows;
|
checkRows = pDataBlock->info.rows;
|
||||||
if(pCol->pData == NULL) continue;
|
if (pCol->info.reserve == true) continue;
|
||||||
|
|
||||||
if (isVarType) {
|
if (isVarType) {
|
||||||
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset);
|
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset);
|
||||||
|
@ -3555,12 +3555,12 @@ int32_t blockDataCheck(const SSDataBlock* pDataBlock) {
|
||||||
for (int64_t r = 0; r < checkRows; ++r) {
|
for (int64_t r = 0; r < checkRows; ++r) {
|
||||||
if (tsSafetyCheckLevel <= TSDB_SAFETY_CHECK_LEVELL_NORMAL) break;
|
if (tsSafetyCheckLevel <= TSDB_SAFETY_CHECK_LEVELL_NORMAL) break;
|
||||||
if (!colDataIsNull_s(pCol, r)) {
|
if (!colDataIsNull_s(pCol, r)) {
|
||||||
// BLOCK_DATA_CHECK_TRESSA(pCol->pData);
|
BLOCK_DATA_CHECK_TRESSA(pCol->pData);
|
||||||
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.length <= pCol->varmeta.allocLen);
|
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.length <= pCol->varmeta.allocLen);
|
||||||
|
|
||||||
if (isVarType) {
|
if (isVarType) {
|
||||||
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.allocLen > 0);
|
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.allocLen > 0);
|
||||||
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset[r] < pCol->varmeta.length);
|
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset[r] <= pCol->varmeta.length);
|
||||||
if (pCol->reassigned) {
|
if (pCol->reassigned) {
|
||||||
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset[r] >= 0);
|
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset[r] >= 0);
|
||||||
} else if (0 == r) {
|
} else if (0 == r) {
|
||||||
|
@ -3571,7 +3571,7 @@ int32_t blockDataCheck(const SSDataBlock* pDataBlock) {
|
||||||
|
|
||||||
colLen = varDataTLen(pCol->pData + pCol->varmeta.offset[r]);
|
colLen = varDataTLen(pCol->pData + pCol->varmeta.offset[r]);
|
||||||
BLOCK_DATA_CHECK_TRESSA(colLen >= VARSTR_HEADER_SIZE);
|
BLOCK_DATA_CHECK_TRESSA(colLen >= VARSTR_HEADER_SIZE);
|
||||||
BLOCK_DATA_CHECK_TRESSA(colLen <= pCol->varmeta.length);
|
BLOCK_DATA_CHECK_TRESSA(colLen <= pCol->info.bytes);
|
||||||
|
|
||||||
if (pCol->reassigned) {
|
if (pCol->reassigned) {
|
||||||
BLOCK_DATA_CHECK_TRESSA((pCol->varmeta.offset[r] + colLen) <= pCol->varmeta.length);
|
BLOCK_DATA_CHECK_TRESSA((pCol->varmeta.offset[r] + colLen) <= pCol->varmeta.length);
|
||||||
|
|
|
@ -390,6 +390,7 @@ SSDataBlock* createDataBlockFromDescNode(SDataBlockDescNode* pNode) {
|
||||||
createColumnInfoData(pDescNode->dataType.type, pDescNode->dataType.bytes, pDescNode->slotId);
|
createColumnInfoData(pDescNode->dataType.type, pDescNode->dataType.bytes, pDescNode->slotId);
|
||||||
idata.info.scale = pDescNode->dataType.scale;
|
idata.info.scale = pDescNode->dataType.scale;
|
||||||
idata.info.precision = pDescNode->dataType.precision;
|
idata.info.precision = pDescNode->dataType.precision;
|
||||||
|
idata.info.reserve = pDescNode->reserve;
|
||||||
|
|
||||||
code = blockDataAppendColInfo(pBlock, &idata);
|
code = blockDataAppendColInfo(pBlock, &idata);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
|
Loading…
Reference in New Issue