提交 a3d4443a 编写于 作者: S slguan

[TD-52] modify updatefp in sdb

上级 13b44b30
......@@ -83,6 +83,12 @@ static int32_t mgmtDbActionDelete(SSdbOperDesc *pOper) {
}
static int32_t mgmtDbActionUpdate(SSdbOperDesc *pOper) {
SDbObj *pDb = pOper->pObj;
SDbObj *pSaved = mgmtGetDb(pDb->name);
if (pDb != pSaved) {
memcpy(pSaved, pDb, pOper->rowSize);
free(pDb);
}
return TSDB_CODE_SUCCESS;
}
......
......@@ -335,25 +335,19 @@ static int32_t sdbProcessWriteFromWal(SSdbTable *pTable, SWalHead *pHead, int32_
SRowMeta *rowMeta = sdbGetRowMeta(pTable, pHead->cont);
assert(rowMeta != NULL && rowMeta->row != NULL);
SSdbOperDesc oper1 = {
.table = pTable,
.pObj = rowMeta->row,
};
sdbDeleteLocal(pTable, &oper1);
SSdbOperDesc oper2 = {
SSdbOperDesc oper = {
.rowSize = pHead->len,
.rowData = pHead->cont,
.table = pTable,
};
code = (*pTable->decodeFp)(&oper2);
code = (*pTable->decodeFp)(&oper);
if (code < 0) {
sdbTrace("table:%s, failed to decode %s record:%s from file, version:%" PRId64, pTable->tableName,
sdbGetActionStr(action), sdbGetkeyStr(pTable, pHead->cont), pHead->version);
pthread_mutex_unlock(&tsSdbObj->mutex);
return code;
}
code = sdbInsertLocal(pTable, &oper2);
code = sdbUpdateLocal(pTable, &oper);
}
pthread_mutex_unlock(&tsSdbObj->mutex);
......
......@@ -165,6 +165,19 @@ static int32_t mgmtChildTableActionDelete(SSdbOperDesc *pOper) {
}
static int32_t mgmtChildTableActionUpdate(SSdbOperDesc *pOper) {
SChildTableObj *pNew = pOper->pObj;
SChildTableObj *pTable = mgmtGetChildTable(pNew->info.tableId);
if (pTable != pNew) {
void *oldSql = pTable->sql;
void *oldSchema = pTable->schema;
memcpy(pTable, pNew, pOper->rowSize);
pTable->sql = pNew->sql;
pTable->schema = pNew->schema;
free(pNew);
free(oldSql);
free(oldSchema);
}
return TSDB_CODE_SUCCESS;
}
......@@ -371,6 +384,16 @@ static int32_t mgmtSuperTableActionDelete(SSdbOperDesc *pOper) {
}
static int32_t mgmtSuperTableActionUpdate(SSdbOperDesc *pOper) {
SChildTableObj *pNew = pOper->pObj;
SChildTableObj *pTable = mgmtGetChildTable(pNew->info.tableId);
if (pTable != pNew) {
void *oldSchema = pTable->schema;
memcpy(pTable, pNew, pOper->rowSize);
pTable->schema = pNew->schema;
free(pNew);
free(oldSchema);
}
return TSDB_CODE_SUCCESS;
}
......
......@@ -65,6 +65,12 @@ static int32_t mgmtUserActionDelete(SSdbOperDesc *pOper) {
}
static int32_t mgmtUserActionUpdate(SSdbOperDesc *pOper) {
SUserObj *pUser = pOper->pObj;
SUserObj *pSaved = mgmtGetUser(pUser->user);
if (pUser != pSaved) {
memcpy(pSaved, pUser, pOper->rowSize);
free(pUser);
}
return TSDB_CODE_SUCCESS;
}
......
......@@ -53,14 +53,6 @@ static int32_t mgmtVgroupActionDestroy(SSdbOperDesc *pOper) {
tfree(pVgroup->tableList);
}
for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) {
SDnodeObj *pDnode = clusterGetDnode(pVgroup->vnodeGid[i].dnodeId);
if (pDnode) {
atomic_sub_fetch_32(&pDnode->openVnodes, 1);
}
clusterReleaseDnode(pDnode);
}
tfree(pOper->pObj);
return TSDB_CODE_SUCCESS;
}
......@@ -115,13 +107,27 @@ static int32_t mgmtVgroupActionDelete(SSdbOperDesc *pOper) {
}
mgmtReleaseDb(pVgroup->pDb);
for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) {
SDnodeObj *pDnode = clusterGetDnode(pVgroup->vnodeGid[i].dnodeId);
if (pDnode) {
atomic_sub_fetch_32(&pDnode->openVnodes, 1);
}
clusterReleaseDnode(pDnode);
}
return TSDB_CODE_SUCCESS;
}
static int32_t mgmtVgroupActionUpdate(SSdbOperDesc *pOper) {
SVgObj *pVgroup = pOper->pObj;
int32_t oldTables = taosIdPoolMaxSize(pVgroup->idPool);
SVgObj *pNew = pOper->pObj;
SVgObj *pVgroup = mgmtGetVgroup(pNew->vgId);
if (pVgroup != pNew) {
memcpy(pVgroup, pNew, pOper->rowSize);
free(pNew);
}
int32_t oldTables = taosIdPoolMaxSize(pVgroup->idPool);
SDbObj *pDb = pVgroup->pDb;
if (pDb != NULL) {
if (pDb->cfg.maxSessions != oldTables) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册