diff --git a/src/system/inc/mgmt.h b/src/system/inc/mgmt.h index 7d0a2fd03a888448996fc1f781418913e4dda8e3..995ba2ecb5065b2096279c49ba6357d78df0ae11 100644 --- a/src/system/inc/mgmt.h +++ b/src/system/inc/mgmt.h @@ -228,7 +228,6 @@ typedef struct _connObj { SDbObj * pDb; SUserObj * pUser; char user[TSDB_USER_LEN]; - char db[TSDB_METER_ID_LEN]; uint64_t stime; // login time char superAuth : 1; // super user flag char writeAuth : 1; // write flag diff --git a/src/system/src/mgmtMeter.c b/src/system/src/mgmtMeter.c old mode 100644 new mode 100755 index ffc267f5599ae909a50ed66f74d0815a5eaebec8..9656ca66a606a063f05b67f9fdc227cdcf0fd660 --- a/src/system/src/mgmtMeter.c +++ b/src/system/src/mgmtMeter.c @@ -655,6 +655,9 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) { pMeter->gid.vgId = pVgroup->vgId; pMeter->uid = (((uint64_t)pMeter->gid.vgId) << 40) + ((((uint64_t)pMeter->gid.sid) & ((1ul << 24) - 1ul)) << 16) + ((uint64_t)sdbVersion & ((1ul << 16) - 1ul)); + + mTrace("meter:%s, create meter in vgroup, vgId:%d, sid:%d, vnode:%d, uid:%d", + pMeter->meterId, pVgroup->vgId, sid, pVgroup->vnodeGid[0].vnode, pMeter->uid); } else { pMeter->uid = (((uint64_t)pMeter->createdTime) << 16) + ((uint64_t)sdbVersion & ((1ul << 16) - 1ul)); } @@ -665,6 +668,8 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) { // send create message to the selected vnode servers if (pCreate->numOfTags == 0) { + mTrace("meter:%s, send msg to dnode, vgId:%d, sid:%d, vnode:%d, dbname:%s", + pMeter->meterId, pMeter->gid.vgId, pMeter->gid.sid, pVgroup->vnodeGid[0].vnode, pDb->name); mgmtSendCreateMsgToVnode(pMeter, pVgroup->vnodeGid[0].vnode); } diff --git a/src/system/src/mgmtShell.c b/src/system/src/mgmtShell.c index 6a3b59288d409cdea7db0cd4d2e9cd513cbd6b4f..19f706f4a85eb62075035d223366144f97e3ec9f 100644 --- a/src/system/src/mgmtShell.c +++ b/src/system/src/mgmtShell.c @@ -177,6 +177,11 @@ int mgmtProcessMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { memcpy(pCreateMsg->schema, pInfo->tags, sizeof(STagData)); strcpy(pCreateMsg->meterId, pInfo->meterId); + SDbObj* pMeterDb = mgmtGetDbByMeterId(pCreateMsg->meterId); + mTrace("meter:%s, pConnDb:%p, pConnDbName:%s, pMeterDb:%p, pMeterDbName:%s", + pCreateMsg->meterId, pConn->pDb, pConn->pDb->name, pMeterDb, pMeterDb->name); + assert(pConn->pDb == pMeterDb); + int32_t code = mgmtCreateMeter(pConn->pDb, pCreateMsg); char stableName[TSDB_METER_ID_LEN] = {0}; @@ -877,7 +882,6 @@ int mgmtProcessConnectMsg(char *pMsg, int msgLen, SConnObj *pConn) { code = TSDB_CODE_INVALID_DB; goto _rsp; } - strcpy(pConn->db, dbName); } if (pConn->pAcct) { @@ -962,7 +966,10 @@ void *mgmtProcessMsgFromShell(char *msg, void *ahandle, void *thandle) { } if (pConn->pAcct) { - if (strcmp(pConn->db, pHead->db) != 0) pConn->pDb = mgmtGetDb(pHead->db); + if (pConn->pDb == NULL || + strncmp(pConn->pDb->name, pHead->db, tListLen(pConn->pDb->name)) != 0) { + pConn->pDb = mgmtGetDb(pHead->db); + } char *cont = (char *)pMsg->content + sizeof(SMgmtHead); int contLen = pMsg->msgLen - sizeof(SIntMsg) - sizeof(SMgmtHead);