Merge branch '3.0' of https://github.com/taosdata/TDengine into fix/td-21076
This commit is contained in:
commit
d992b64903
|
@ -549,8 +549,8 @@ int metaTtlDropTable(SMeta *pMeta, int64_t ttl, SArray *tbUids) {
|
|||
}
|
||||
|
||||
static void metaBuildTtlIdxKey(STtlIdxKey *ttlKey, const SMetaEntry *pME) {
|
||||
int64_t ttlDays;
|
||||
int64_t ctime;
|
||||
int64_t ttlDays = 0;
|
||||
int64_t ctime = 0;
|
||||
if (pME->type == TSDB_CHILD_TABLE) {
|
||||
ctime = pME->ctbEntry.ctime;
|
||||
ttlDays = pME->ctbEntry.ttlDays;
|
||||
|
|
|
@ -81,6 +81,8 @@ void tdbFree(void *);
|
|||
|
||||
typedef struct hashset_st *hashset_t;
|
||||
|
||||
void hashset_destroy(hashset_t set);
|
||||
|
||||
struct STxn {
|
||||
int flags;
|
||||
int64_t txnId;
|
||||
|
|
|
@ -110,6 +110,7 @@ int tdbBtreeOpen(int keyLen, int valLen, SPager *pPager, char const *tbname, SPg
|
|||
|
||||
ret = tdbBegin(pEnv, &txn, tdbDefaultMalloc, tdbDefaultFree, NULL, TDB_TXN_WRITE | TDB_TXN_READ_UNCOMMITTED);
|
||||
if (ret < 0) {
|
||||
tdbOsFree(pBt);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -119,6 +120,7 @@ int tdbBtreeOpen(int keyLen, int valLen, SPager *pPager, char const *tbname, SPg
|
|||
ret = tdbPagerFetchPage(pPager, &pgno, &pPage, tdbBtreeInitPage, &zArg, txn);
|
||||
if (ret < 0) {
|
||||
tdbAbort(pEnv, txn);
|
||||
tdbOsFree(pBt);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -126,6 +128,7 @@ int tdbBtreeOpen(int keyLen, int valLen, SPager *pPager, char const *tbname, SPg
|
|||
if (ret < 0) {
|
||||
tdbError("failed to write page since %s", terrstr());
|
||||
tdbAbort(pEnv, txn);
|
||||
tdbOsFree(pBt);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -138,6 +141,7 @@ int tdbBtreeOpen(int keyLen, int valLen, SPager *pPager, char const *tbname, SPg
|
|||
ret = tdbTbInsert(pPager->pEnv->pMainDb, tbname, strlen(tbname) + 1, &pBt->info, sizeof(pBt->info), txn);
|
||||
if (ret < 0) {
|
||||
tdbAbort(pEnv, txn);
|
||||
tdbOsFree(pBt);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -379,9 +379,6 @@ int tdbPagerPostCommit(SPager *pPager, TXN *pTxn) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (pTxn->jPageSet) {
|
||||
hashset_destroy(pTxn->jPageSet);
|
||||
}
|
||||
// pPager->inTran = 0;
|
||||
|
||||
return 0;
|
||||
|
@ -549,8 +546,6 @@ int tdbPagerAbort(SPager *pPager, TXN *pTxn) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
hashset_destroy(pTxn->jPageSet);
|
||||
|
||||
// pPager->inTran = 0;
|
||||
|
||||
return 0;
|
||||
|
@ -922,6 +917,8 @@ int tdbPagerRestoreJournals(SPager *pPager, SBTree *pBt) {
|
|||
char *name = tdbDirEntryBaseName(tdbGetDirEntryName(pDirEntry));
|
||||
if (strncmp(TDB_MAINDB_NAME "-journal", name, 16) == 0) {
|
||||
if (tdbPagerRestore(pPager, pBt, name) < 0) {
|
||||
tdbCloseDir(&pDir);
|
||||
|
||||
tdbError("failed to restore file due to %s. jFileName:%s", strerror(errno), name);
|
||||
return -1;
|
||||
}
|
||||
|
@ -946,6 +943,8 @@ int tdbPagerRollback(SPager *pPager) {
|
|||
|
||||
if (strncmp(TDB_MAINDB_NAME "-journal", name, 16) == 0) {
|
||||
if (tdbOsRemove(name) < 0 && errno != ENOENT) {
|
||||
tdbCloseDir(&pDir);
|
||||
|
||||
tdbError("failed to remove file due to %s. jFileName:%s", strerror(errno), name);
|
||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||
return -1;
|
||||
|
|
|
@ -30,6 +30,11 @@ int tdbTxnOpen(TXN *pTxn, int64_t txnid, void *(*xMalloc)(void *, size_t), void
|
|||
|
||||
int tdbTxnClose(TXN *pTxn) {
|
||||
if (pTxn) {
|
||||
if (pTxn->jPageSet) {
|
||||
hashset_destroy(pTxn->jPageSet);
|
||||
pTxn->jPageSet = NULL;
|
||||
}
|
||||
|
||||
tdbOsFree(pTxn);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue