Merge pull request #7122 from taosdata/feature/TD-5729
[TD-5729]<feature>: add subquery states and obj_ids to show queries output
This commit is contained in:
commit
62ecad982e
|
@ -255,10 +255,25 @@ int tscBuildQueryStreamDesc(void *pMsg, STscObj *pObj) {
|
||||||
pQdesc->qId = htobe64(pSql->res.qId);
|
pQdesc->qId = htobe64(pSql->res.qId);
|
||||||
pQdesc->sqlObjId = htobe64(pSql->self);
|
pQdesc->sqlObjId = htobe64(pSql->self);
|
||||||
pQdesc->pid = pHeartbeat->pid;
|
pQdesc->pid = pHeartbeat->pid;
|
||||||
if (pSql->cmd.pQueryInfo->stableQuery == true) {
|
pQdesc->stableQuery = pSql->cmd.pQueryInfo->stableQuery;
|
||||||
pQdesc->numOfSub = pSql->subState.numOfSub;
|
pQdesc->numOfSub = pSql->subState.numOfSub;
|
||||||
|
|
||||||
|
char *p = pQdesc->subSqlInfo;
|
||||||
|
int32_t remainLen = sizeof(pQdesc->subSqlInfo);
|
||||||
|
if (pQdesc->numOfSub == 0) {
|
||||||
|
snprintf(p, remainLen, "N/A");
|
||||||
} else {
|
} else {
|
||||||
pQdesc->numOfSub = 1;
|
int32_t len;
|
||||||
|
for (int32_t i = 0; i < pQdesc->numOfSub; ++i) {
|
||||||
|
len = snprintf(p, remainLen, "[%d]0x%" PRIx64 "(%c) ", i,
|
||||||
|
pSql->pSubs[i]->self,
|
||||||
|
pSql->subState.states[i] ? 'C' : 'I');
|
||||||
|
if (len > remainLen) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
remainLen -= len;
|
||||||
|
p += len;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pQdesc->numOfSub = htonl(pQdesc->numOfSub);
|
pQdesc->numOfSub = htonl(pQdesc->numOfSub);
|
||||||
|
|
||||||
|
|
|
@ -223,6 +223,7 @@ do { \
|
||||||
#define TSDB_IPv4ADDR_LEN 16
|
#define TSDB_IPv4ADDR_LEN 16
|
||||||
#define TSDB_FILENAME_LEN 128
|
#define TSDB_FILENAME_LEN 128
|
||||||
#define TSDB_SHOW_SQL_LEN 512
|
#define TSDB_SHOW_SQL_LEN 512
|
||||||
|
#define TSDB_SHOW_SUBQUERY_LEN 1000
|
||||||
#define TSDB_SLOW_QUERY_SQL_LEN 512
|
#define TSDB_SLOW_QUERY_SQL_LEN 512
|
||||||
|
|
||||||
#define TSDB_STEP_NAME_LEN 32
|
#define TSDB_STEP_NAME_LEN 32
|
||||||
|
|
|
@ -877,7 +877,9 @@ typedef struct {
|
||||||
uint64_t sqlObjId;
|
uint64_t sqlObjId;
|
||||||
int32_t pid;
|
int32_t pid;
|
||||||
char fqdn[TSDB_FQDN_LEN];
|
char fqdn[TSDB_FQDN_LEN];
|
||||||
|
bool stableQuery;
|
||||||
int32_t numOfSub;
|
int32_t numOfSub;
|
||||||
|
char subSqlInfo[TSDB_SHOW_SUBQUERY_LEN]; //include subqueries' index, Obj IDs and states(C-complete/I-imcomplete)
|
||||||
} SQueryDesc;
|
} SQueryDesc;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
#define CONN_KEEP_TIME (tsShellActivityTimer * 3)
|
#define CONN_KEEP_TIME (tsShellActivityTimer * 3)
|
||||||
#define CONN_CHECK_TIME (tsShellActivityTimer * 2)
|
#define CONN_CHECK_TIME (tsShellActivityTimer * 2)
|
||||||
#define QUERY_ID_SIZE 20
|
#define QUERY_ID_SIZE 20
|
||||||
#define QUERY_OBJ_ID_SIZE 10
|
#define QUERY_OBJ_ID_SIZE 18
|
||||||
|
#define SUBQUERY_INFO_SIZE 6
|
||||||
#define QUERY_STREAM_SAVE_SIZE 20
|
#define QUERY_STREAM_SAVE_SIZE 20
|
||||||
|
|
||||||
static SCacheObj *tsMnodeConnCache = NULL;
|
static SCacheObj *tsMnodeConnCache = NULL;
|
||||||
|
@ -380,12 +381,24 @@ static int32_t mnodeGetQueryMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pC
|
||||||
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
|
pShow->bytes[cols] = 1;
|
||||||
|
pSchema[cols].type = TSDB_DATA_TYPE_BOOL;
|
||||||
|
strcpy(pSchema[cols].name, "stable_query");
|
||||||
|
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
||||||
|
cols++;
|
||||||
|
|
||||||
pShow->bytes[cols] = 4;
|
pShow->bytes[cols] = 4;
|
||||||
pSchema[cols].type = TSDB_DATA_TYPE_INT;
|
pSchema[cols].type = TSDB_DATA_TYPE_INT;
|
||||||
strcpy(pSchema[cols].name, "sub_queries");
|
strcpy(pSchema[cols].name, "sub_queries");
|
||||||
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
|
pShow->bytes[cols] = TSDB_SHOW_SUBQUERY_LEN + VARSTR_HEADER_SIZE;
|
||||||
|
pSchema[cols].type = TSDB_DATA_TYPE_BINARY;
|
||||||
|
strcpy(pSchema[cols].name, "sub_query_info");
|
||||||
|
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
||||||
|
cols++;
|
||||||
|
|
||||||
pShow->bytes[cols] = TSDB_SHOW_SQL_LEN + VARSTR_HEADER_SIZE;
|
pShow->bytes[cols] = TSDB_SHOW_SQL_LEN + VARSTR_HEADER_SIZE;
|
||||||
pSchema[cols].type = TSDB_DATA_TYPE_BINARY;
|
pSchema[cols].type = TSDB_DATA_TYPE_BINARY;
|
||||||
strcpy(pSchema[cols].name, "sql");
|
strcpy(pSchema[cols].name, "sql");
|
||||||
|
@ -459,12 +472,8 @@ static int32_t mnodeRetrieveQueries(SShowObj *pShow, char *data, int32_t rows, v
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
*(int64_t *)pWrite = htobe64(pDesc->useconds);
|
*(int64_t *)pWrite = htobe64(pDesc->useconds);
|
||||||
cols++;
|
cols++;
|
||||||
/*
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
snprintf(str, tListLen(str), "0x%" PRIx64, htobe64(pDesc->sqlObjId));
|
||||||
*(int64_t *)pWrite = htobe64(pDesc->sqlObjId);
|
|
||||||
cols++;
|
|
||||||
*/
|
|
||||||
snprintf(str, tListLen(str), "0x%08" PRIx64, htobe64(pDesc->sqlObjId));
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, str, pShow->bytes[cols]);
|
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, str, pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
@ -479,10 +488,18 @@ static int32_t mnodeRetrieveQueries(SShowObj *pShow, char *data, int32_t rows, v
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, epBuf, pShow->bytes[cols]);
|
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, epBuf, pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
|
*(bool *)pWrite = pDesc->stableQuery;
|
||||||
|
cols++;
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
*(int32_t *)pWrite = htonl(pDesc->numOfSub);
|
*(int32_t *)pWrite = htonl(pDesc->numOfSub);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
|
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pDesc->subSqlInfo, pShow->bytes[cols]);
|
||||||
|
cols++;
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pDesc->sql, pShow->bytes[cols]);
|
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pDesc->sql, pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
Loading…
Reference in New Issue