From 01b89be0aa728324fc1e5243fafda422277d2925 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Sat, 4 Feb 2023 22:45:20 +0800 Subject: [PATCH] opt idx --- source/common/src/systable.c | 2 ++ source/dnode/mnode/impl/src/mndIndex.c | 15 +++++++++++++++ source/dnode/mnode/impl/src/mndSma.c | 14 +++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/source/common/src/systable.c b/source/common/src/systable.c index 8791a81bbe..11a2ce81c2 100644 --- a/source/common/src/systable.c +++ b/source/common/src/systable.c @@ -120,6 +120,8 @@ static const SSysDbTableSchema userIdxSchema[] = { {.name = "table_name", .bytes = SYSTABLE_SCH_TABLE_NAME_LEN, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, {.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, {.name = "create_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = false}, + {.name = "column_name", .bytes = SYSTABLE_SCH_TABLE_NAME_LEN, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, + {.name = "index_type", .bytes = SYSTABLE_SCH_TABLE_NAME_LEN, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, }; static const SSysDbTableSchema userStbsSchema[] = { diff --git a/source/dnode/mnode/impl/src/mndIndex.c b/source/dnode/mnode/impl/src/mndIndex.c index 96f4245c97..eba9ad35b8 100644 --- a/source/dnode/mnode/impl/src/mndIndex.c +++ b/source/dnode/mnode/impl/src/mndIndex.c @@ -205,6 +205,7 @@ static SSdbRaw *mndIdxActionEncode(SIdxObj *pIdx) { SDB_SET_BINARY(pRaw, dataPos, pIdx->stb, TSDB_TABLE_FNAME_LEN, _OVER) SDB_SET_BINARY(pRaw, dataPos, pIdx->db, TSDB_DB_FNAME_LEN, _OVER) SDB_SET_BINARY(pRaw, dataPos, pIdx->dstTbName, TSDB_DB_FNAME_LEN, _OVER) + SDB_SET_BINARY(pRaw, dataPos, pIdx->colName, TSDB_COL_NAME_LEN, _OVER) SDB_SET_INT64(pRaw, dataPos, pIdx->createdTime, _OVER) SDB_SET_INT64(pRaw, dataPos, pIdx->uid, _OVER) SDB_SET_INT64(pRaw, dataPos, pIdx->stbUid, _OVER) @@ -251,6 +252,7 @@ static SSdbRow *mndIdxActionDecode(SSdbRaw *pRaw) { SDB_GET_BINARY(pRaw, dataPos, pIdx->stb, TSDB_TABLE_FNAME_LEN, _OVER) SDB_GET_BINARY(pRaw, dataPos, pIdx->db, TSDB_DB_FNAME_LEN, _OVER) SDB_GET_BINARY(pRaw, dataPos, pIdx->dstTbName, TSDB_DB_FNAME_LEN, _OVER) + SDB_GET_BINARY(pRaw, dataPos, pIdx->colName, TSDB_COL_NAME_LEN, _OVER) SDB_GET_INT64(pRaw, dataPos, &pIdx->createdTime, _OVER) SDB_GET_INT64(pRaw, dataPos, &pIdx->uid, _OVER) SDB_GET_INT64(pRaw, dataPos, &pIdx->stbUid, _OVER) @@ -640,6 +642,7 @@ int32_t mndRetrieveTagIdx(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, i SName idxName = {0}; tNameFromString(&idxName, pIdx->name, T_NAME_ACCT | T_NAME_DB | T_NAME_TABLE); char n1[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; + STR_TO_VARSTR(n1, (char *)tNameGetTableName(&idxName)); char n2[TSDB_DB_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; @@ -666,6 +669,18 @@ int32_t mndRetrieveTagIdx(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, i pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataAppend(pColInfo, numOfRows, (const char *)&pIdx->createdTime, false); + char col[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; + STR_TO_VARSTR(col, (char *)pIdx->colName); + + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataAppend(pColInfo, numOfRows, (const char *)col, false); + + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + + char tag[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; + STR_TO_VARSTR(tag, (char *)"tag_index"); + colDataAppend(pColInfo, numOfRows, (const char *)tag, false); + numOfRows++; sdbRelease(pSdb, pIdx); } diff --git a/source/dnode/mnode/impl/src/mndSma.c b/source/dnode/mnode/impl/src/mndSma.c index fd426c4b01..5edd8b65e1 100644 --- a/source/dnode/mnode/impl/src/mndSma.c +++ b/source/dnode/mnode/impl/src/mndSma.c @@ -54,7 +54,7 @@ static int32_t mndRetrieveIdx(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBloc read += mndRetrieveTagIdx(pReq, pShow, pBlock, rows - read); - return read; + return read; } static void mndCancelGetNextIdx(SMnode *pMnode, void *pIter) { // TODO @@ -1260,6 +1260,18 @@ static int32_t mndRetrieveSma(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBloc pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataAppend(pColInfo, numOfRows, (const char *)&pSma->createdTime, false); + char col[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; + STR_TO_VARSTR(col, (char *)""); + + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataAppend(pColInfo, numOfRows, (const char *)col, false); + + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + + char tag[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; + STR_TO_VARSTR(tag, (char *)"sma_index"); + colDataAppend(pColInfo, numOfRows, (const char *)tag, false); + numOfRows++; sdbRelease(pSdb, pSma); }