diff --git a/src/tsdb/src/tsdbMemTable.c b/src/tsdb/src/tsdbMemTable.c index 2ec773f59b11edfc36611a2bddb4ecd3d0f72dd5..87bc7b9443098c3d10fa7f8d6f03ec91cd2b5d5b 100644 --- a/src/tsdb/src/tsdbMemTable.c +++ b/src/tsdb/src/tsdbMemTable.c @@ -899,7 +899,6 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SDataRow STsdbCfg *pCfg = &pRepo->config; if (tsdbGetTableLastKeyImpl(pTable) < dataRowKey(row)) { - pTable->lastKey = dataRowKey(row); if (pCfg->cacheLastRow || pTable->lastRow != NULL) { SDataRow nrow = pTable->lastRow; if (taosTSizeof(nrow) < dataRowLen(row)) { @@ -912,14 +911,18 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SDataRow dataRowCpy(nrow, row); TSDB_WLOCK_TABLE(pTable); + pTable->lastKey = dataRowKey(row); pTable->lastRow = nrow; TSDB_WUNLOCK_TABLE(pTable); taosTZfree(orow); } else { TSDB_WLOCK_TABLE(pTable); + pTable->lastKey = dataRowKey(row); dataRowCpy(nrow, row); TSDB_WUNLOCK_TABLE(pTable); } + } else { + pTable->lastKey = dataRowKey(row); } }