diff --git a/src/tsdb/src/tsdbMemTable.c b/src/tsdb/src/tsdbMemTable.c index e766d97a97a5905db87691426d282a219eef9d68..6b0a707e76c05a10d8c991e60a77d076ef5ec818 100644 --- a/src/tsdb/src/tsdbMemTable.c +++ b/src/tsdb/src/tsdbMemTable.c @@ -779,7 +779,7 @@ static int tsdbInsertDataToTable(STsdbRepo* pRepo, SSubmitBlk* pBlock, int32_t * int32_t points = 0; STable *pTable = NULL; SSubmitBlkIter blkIter = {0}; - SMemTable *pMemTable = NULL; + SMemTable *pMemTable = pRepo->mem; STableData *pTableData = NULL; STsdbCfg *pCfg = &(pRepo->config); @@ -787,17 +787,18 @@ static int tsdbInsertDataToTable(STsdbRepo* pRepo, SSubmitBlk* pBlock, int32_t * if(blkIter.row == NULL) return 0; TSKEY firstRowKey = memRowKey(blkIter.row); - tsdbAllocBytes(pRepo, 0); - pMemTable = pRepo->mem; + if (pMemTable == NULL) { + pMemTable = tsdbNewMemTable(pRepo); + if (pMemTable == NULL) return -1; + pRepo->mem = pMemTable; + } - ASSERT(pMemTable != NULL); ASSERT(pBlock->tid < pMeta->maxTables); pTable = pMeta->tables[pBlock->tid]; ASSERT(pTable != NULL && TABLE_UID(pTable) == pBlock->uid); - if (TABLE_TID(pTable) >= pMemTable->maxTables) { if (tsdbAdjustMemMaxTables(pMemTable, pMeta->maxTables) < 0) { return -1;