fix more
This commit is contained in:
parent
27d3f95579
commit
409c170404
|
@ -121,7 +121,8 @@ static FORCE_INLINE int64_t tsdbLogicToFileSize(int64_t lSize, int32_t szPage) {
|
||||||
((TSDBROW){.type = TSDBROW_COL_FMT, .pBlockData = (BLOCKDATA), .iRow = (IROW)})
|
((TSDBROW){.type = TSDBROW_COL_FMT, .pBlockData = (BLOCKDATA), .iRow = (IROW)})
|
||||||
|
|
||||||
void tsdbRowGetColVal(TSDBROW *pRow, STSchema *pTSchema, int32_t iCol, SColVal *pColVal);
|
void tsdbRowGetColVal(TSDBROW *pRow, STSchema *pTSchema, int32_t iCol, SColVal *pColVal);
|
||||||
int32_t tsdbRowCmprFn(const void *p1, const void *p2);
|
int32_t tsdbRowCompare(const void *p1, const void *p2);
|
||||||
|
int32_t tsdbRowCompareWithoutVersion(const void *p1, const void *p2);
|
||||||
int32_t tsdbRowKeyCmpr(const STsdbRowKey *key1, const STsdbRowKey *key2);
|
int32_t tsdbRowKeyCmpr(const STsdbRowKey *key1, const STsdbRowKey *key2);
|
||||||
void tsdbRowGetKey(TSDBROW *row, STsdbRowKey *key);
|
void tsdbRowGetKey(TSDBROW *row, STsdbRowKey *key);
|
||||||
// STSDBRowIter
|
// STSDBRowIter
|
||||||
|
|
|
@ -31,7 +31,7 @@ int32_t tRowInfoCmprFn(const void *p1, const void *p2) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return tsdbRowCmprFn(&pInfo1->row, &pInfo2->row);
|
return tsdbRowCompare(&pInfo1->row, &pInfo2->row);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbBegin(STsdb *pTsdb) {
|
int32_t tsdbBegin(STsdb *pTsdb) {
|
||||||
|
|
|
@ -896,7 +896,7 @@ static int32_t tsdbDataFileDoWriteBlockData(SDataFileWriter *writer, SBlockData
|
||||||
tsdbRowGetKey(&tsdbRowFromBlockData(bData, bData->nRow - 1), &record->lastKey);
|
tsdbRowGetKey(&tsdbRowFromBlockData(bData, bData->nRow - 1), &record->lastKey);
|
||||||
|
|
||||||
for (int32_t i = 1; i < bData->nRow; ++i) {
|
for (int32_t i = 1; i < bData->nRow; ++i) {
|
||||||
if (tsdbRowCmprFn(&tsdbRowFromBlockData(bData, i - 1), &tsdbRowFromBlockData(bData, i)) != 0) {
|
if (tsdbRowCompareWithoutVersion(&tsdbRowFromBlockData(bData, i - 1), &tsdbRowFromBlockData(bData, i)) != 0) {
|
||||||
record->count++;
|
record->count++;
|
||||||
}
|
}
|
||||||
if (bData->aVersion[i] < record->minVer) {
|
if (bData->aVersion[i] < record->minVer) {
|
||||||
|
@ -966,9 +966,10 @@ static int32_t tsdbDataFileDoWriteTSRow(SDataFileWriter *writer, TSDBROW *row) {
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TSDBROW_VERSION(row) <= writer->config->compactVersion //
|
if (TSDBROW_VERSION(row) <= writer->config->compactVersion //
|
||||||
&& writer->blockData->nRow > 0 //
|
&& writer->blockData->nRow > 0 //
|
||||||
&& tsdbRowCmprFn(row, &tsdbRowFromBlockData(writer->blockData, writer->blockData->nRow - 1)) == 0 //
|
&&
|
||||||
|
tsdbRowCompareWithoutVersion(row, &tsdbRowFromBlockData(writer->blockData, writer->blockData->nRow - 1)) == 0 //
|
||||||
) {
|
) {
|
||||||
code = tBlockDataUpdateRow(writer->blockData, row, writer->config->skmRow->pTSchema);
|
code = tBlockDataUpdateRow(writer->blockData, row, writer->config->skmRow->pTSchema);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
|
@ -247,8 +247,9 @@ int32_t tsdbFSetWriteRow(SFSetWriter *writer, SRowInfo *row) {
|
||||||
|
|
||||||
if (TSDBROW_VERSION(&row->row) <= writer->config->compactVersion //
|
if (TSDBROW_VERSION(&row->row) <= writer->config->compactVersion //
|
||||||
&& writer->blockData[writer->blockDataIdx].nRow > 0 //
|
&& writer->blockData[writer->blockDataIdx].nRow > 0 //
|
||||||
&& tsdbRowCmprFn(&row->row, &tsdbRowFromBlockData(&writer->blockData[writer->blockDataIdx],
|
&& tsdbRowCompareWithoutVersion(&row->row,
|
||||||
writer->blockData[writer->blockDataIdx].nRow - 1)) == 0) {
|
&tsdbRowFromBlockData(&writer->blockData[writer->blockDataIdx],
|
||||||
|
writer->blockData[writer->blockDataIdx].nRow - 1)) == 0) {
|
||||||
code = tBlockDataUpdateRow(&writer->blockData[writer->blockDataIdx], &row->row, writer->skmRow->pTSchema);
|
code = tBlockDataUpdateRow(&writer->blockData[writer->blockDataIdx], &row->row, writer->skmRow->pTSchema);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -898,12 +898,13 @@ int32_t tsdbSttFileWriteRow(SSttFileWriter *writer, SRowInfo *row) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// row to col conversion
|
// row to col conversion
|
||||||
if (key.version <= writer->config->compactVersion //
|
if (key.version <= writer->config->compactVersion //
|
||||||
&& writer->blockData->nRow > 0 //
|
&& writer->blockData->nRow > 0 //
|
||||||
&& (writer->blockData->uid //
|
&& (writer->blockData->uid //
|
||||||
? writer->blockData->uid //
|
? writer->blockData->uid //
|
||||||
: writer->blockData->aUid[writer->blockData->nRow - 1]) == row->uid //
|
: writer->blockData->aUid[writer->blockData->nRow - 1]) == row->uid //
|
||||||
&& tsdbRowCmprFn(&row->row, &tsdbRowFromBlockData(writer->blockData, writer->blockData->nRow - 1)) == 0 //
|
&& tsdbRowCompareWithoutVersion(&row->row,
|
||||||
|
&tsdbRowFromBlockData(writer->blockData, writer->blockData->nRow - 1)) == 0 //
|
||||||
) {
|
) {
|
||||||
code = tBlockDataUpdateRow(writer->blockData, &row->row, writer->config->skmRow->pTSchema);
|
code = tBlockDataUpdateRow(writer->blockData, &row->row, writer->config->skmRow->pTSchema);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
|
@ -638,7 +638,7 @@ int32_t tsdbRowKeyCmpr(const STsdbRowKey *key1, const STsdbRowKey *key2) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbRowCmprFn(const void *p1, const void *p2) {
|
int32_t tsdbRowCompare(const void *p1, const void *p2) {
|
||||||
STsdbRowKey key1, key2;
|
STsdbRowKey key1, key2;
|
||||||
|
|
||||||
tsdbRowGetKey((TSDBROW *)p1, &key1);
|
tsdbRowGetKey((TSDBROW *)p1, &key1);
|
||||||
|
@ -646,6 +646,14 @@ int32_t tsdbRowCmprFn(const void *p1, const void *p2) {
|
||||||
return tsdbRowKeyCmpr(&key1, &key2);
|
return tsdbRowKeyCmpr(&key1, &key2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t tsdbRowCompareWithoutVersion(const void *p1, const void *p2) {
|
||||||
|
STsdbRowKey key1, key2;
|
||||||
|
|
||||||
|
tsdbRowGetKey((TSDBROW *)p1, &key1);
|
||||||
|
tsdbRowGetKey((TSDBROW *)p2, &key2);
|
||||||
|
return tRowKeyCompare(&key1.key, &key2.key);
|
||||||
|
}
|
||||||
|
|
||||||
// STSDBRowIter ======================================================
|
// STSDBRowIter ======================================================
|
||||||
int32_t tsdbRowIterOpen(STSDBRowIter *pIter, TSDBROW *pRow, STSchema *pTSchema) {
|
int32_t tsdbRowIterOpen(STSDBRowIter *pIter, TSDBROW *pRow, STSchema *pTSchema) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
|
|
Loading…
Reference in New Issue