tables only store the uid of the super table instead of the name
This commit is contained in:
parent
482b5865a2
commit
2f011a423b
|
@ -32,8 +32,8 @@ struct SMnodeObj;
|
||||||
typedef struct SDnodeObj {
|
typedef struct SDnodeObj {
|
||||||
int32_t dnodeId;
|
int32_t dnodeId;
|
||||||
uint16_t dnodePort;
|
uint16_t dnodePort;
|
||||||
char dnodeFqdn[TSDB_FQDN_LEN];
|
char dnodeFqdn[TSDB_FQDN_LEN + 1];
|
||||||
char dnodeEp[TSDB_FQDN_LEN];
|
char dnodeEp[TSDB_FQDN_LEN + 1];
|
||||||
int64_t createdTime;
|
int64_t createdTime;
|
||||||
uint32_t lastAccess;
|
uint32_t lastAccess;
|
||||||
int32_t openVnodes;
|
int32_t openVnodes;
|
||||||
|
@ -96,7 +96,7 @@ typedef struct {
|
||||||
int32_t numOfColumns; //used by normal table
|
int32_t numOfColumns; //used by normal table
|
||||||
int32_t sid;
|
int32_t sid;
|
||||||
int32_t vgId;
|
int32_t vgId;
|
||||||
char superTableId[TSDB_TABLE_ID_LEN + 1];
|
uint64_t suid;
|
||||||
int32_t sqlLen;
|
int32_t sqlLen;
|
||||||
int8_t reserved[1];
|
int8_t reserved[1];
|
||||||
int8_t updateEnd[1];
|
int8_t updateEnd[1];
|
||||||
|
|
|
@ -47,6 +47,7 @@ static int32_t tsChildTableUpdateSize;
|
||||||
static int32_t tsSuperTableUpdateSize;
|
static int32_t tsSuperTableUpdateSize;
|
||||||
static void * mgmtGetChildTable(char *tableId);
|
static void * mgmtGetChildTable(char *tableId);
|
||||||
static void * mgmtGetSuperTable(char *tableId);
|
static void * mgmtGetSuperTable(char *tableId);
|
||||||
|
static void * mgmtGetSuperTableByUid(uint64_t uid);
|
||||||
static void mgmtDropAllChildTablesInStable(SSuperTableObj *pStable);
|
static void mgmtDropAllChildTablesInStable(SSuperTableObj *pStable);
|
||||||
static void mgmtAddTableIntoStable(SSuperTableObj *pStable, SChildTableObj *pCtable);
|
static void mgmtAddTableIntoStable(SSuperTableObj *pStable, SChildTableObj *pCtable);
|
||||||
static void mgmtRemoveTableFromStable(SSuperTableObj *pStable, SChildTableObj *pCtable);
|
static void mgmtRemoveTableFromStable(SSuperTableObj *pStable, SChildTableObj *pCtable);
|
||||||
|
@ -118,7 +119,7 @@ static int32_t mgmtChildTableActionInsert(SSdbOper *pOper) {
|
||||||
|
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
// add ref
|
// add ref
|
||||||
pTable->superTable = mgmtGetSuperTable(pTable->superTableId);
|
pTable->superTable = mgmtGetSuperTableByUid(pTable->suid);
|
||||||
mgmtAddTableIntoStable(pTable->superTable, pTable);
|
mgmtAddTableIntoStable(pTable->superTable, pTable);
|
||||||
grantAdd(TSDB_GRANT_TIMESERIES, pTable->superTable->numOfColumns - 1);
|
grantAdd(TSDB_GRANT_TIMESERIES, pTable->superTable->numOfColumns - 1);
|
||||||
pAcct->acctInfo.numOfTimeSeries += (pTable->superTable->numOfColumns - 1);
|
pAcct->acctInfo.numOfTimeSeries += (pTable->superTable->numOfColumns - 1);
|
||||||
|
@ -308,9 +309,9 @@ static int32_t mgmtChildTableActionRestored() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
SSuperTableObj *pSuperTable = mgmtGetSuperTable(pTable->superTableId);
|
SSuperTableObj *pSuperTable = mgmtGetSuperTableByUid(pTable->suid);
|
||||||
if (pSuperTable == NULL) {
|
if (pSuperTable == NULL) {
|
||||||
mError("ctable:%s, stable:%s not exist", pTable->info.tableId, pTable->superTableId);
|
mError("ctable:%s, stable:%" PRIu64 " not exist", pTable->info.tableId, pTable->suid);
|
||||||
pTable->vgId = 0;
|
pTable->vgId = 0;
|
||||||
SSdbOper desc = {0};
|
SSdbOper desc = {0};
|
||||||
desc.type = SDB_OPER_LOCAL;
|
desc.type = SDB_OPER_LOCAL;
|
||||||
|
@ -560,6 +561,22 @@ static void *mgmtGetSuperTable(char *tableId) {
|
||||||
return sdbGetRow(tsSuperTableSdb, tableId);
|
return sdbGetRow(tsSuperTableSdb, tableId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *mgmtGetSuperTableByUid(uint64_t uid) {
|
||||||
|
SSuperTableObj *pStable = NULL;
|
||||||
|
void * pNode = NULL;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
pNode = mgmtGetNextSuperTable(pNode, &pStable);
|
||||||
|
if (pStable == NULL) break;
|
||||||
|
if (pStable->uid == uid) {
|
||||||
|
return pStable;
|
||||||
|
}
|
||||||
|
mgmtDecTableRef(pStable);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void *mgmtGetTable(char *tableId) {
|
void *mgmtGetTable(char *tableId) {
|
||||||
void *pTable = mgmtGetSuperTable(tableId);
|
void *pTable = mgmtGetSuperTable(tableId);
|
||||||
if (pTable != NULL) {
|
if (pTable != NULL) {
|
||||||
|
@ -1358,10 +1375,10 @@ static SChildTableObj* mgmtDoCreateChildTable(SCMCreateTableMsg *pCreate, SVgObj
|
||||||
}
|
}
|
||||||
mgmtDecTableRef(pSuperTable);
|
mgmtDecTableRef(pSuperTable);
|
||||||
|
|
||||||
strcpy(pTable->superTableId, pSuperTable->info.tableId);
|
pTable->suid = pSuperTable->uid;
|
||||||
pTable->uid = (((uint64_t) pTable->vgId) << 40) + ((((uint64_t) pTable->sid) & ((1ul << 24) - 1ul)) << 16) +
|
pTable->uid = (((uint64_t)pTable->vgId) << 40) + ((((uint64_t)pTable->sid) & ((1ul << 24) - 1ul)) << 16) +
|
||||||
(sdbGetVersion() & ((1ul << 16) - 1ul));
|
(sdbGetVersion() & ((1ul << 16) - 1ul));
|
||||||
pTable->superTable = pSuperTable;
|
pTable->superTable = pSuperTable;
|
||||||
} else {
|
} else {
|
||||||
pTable->uid = (((uint64_t) pTable->createdTime) << 16) + (sdbGetVersion() & ((1ul << 16) - 1ul));
|
pTable->uid = (((uint64_t) pTable->createdTime) << 16) + (sdbGetVersion() & ((1ul << 16) - 1ul));
|
||||||
pTable->sversion = 0;
|
pTable->sversion = 0;
|
||||||
|
@ -2073,7 +2090,7 @@ static int32_t mgmtRetrieveShowTables(SShowObj *pShow, char *data, int32_t rows,
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
mgmtExtractTableName(pTable->superTableId, pWrite);
|
mgmtExtractTableName(pTable->superTable->info.tableId, pWrite);
|
||||||
}
|
}
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue