[TBASE-1542] modify format of Query result in Grafana API
This commit is contained in:
parent
bad1e7e7b8
commit
a58848b494
|
@ -37,7 +37,7 @@
|
||||||
#define HTTP_STEP_SIZE 1024 //http message get process step by step
|
#define HTTP_STEP_SIZE 1024 //http message get process step by step
|
||||||
#define HTTP_MAX_URL 5 //http url stack size
|
#define HTTP_MAX_URL 5 //http url stack size
|
||||||
#define HTTP_METHOD_SCANNER_SIZE 7 //http method fp size
|
#define HTTP_METHOD_SCANNER_SIZE 7 //http method fp size
|
||||||
#define HTTP_GC_TARGET_SIZE 128
|
#define HTTP_GC_TARGET_SIZE 512
|
||||||
|
|
||||||
#define HTTP_VERSION_10 0
|
#define HTTP_VERSION_10 0
|
||||||
#define HTTP_VERSION_11 1
|
#define HTTP_VERSION_11 1
|
||||||
|
|
|
@ -79,7 +79,9 @@ void gcStopQueryJson(HttpContext *pContext, HttpSqlCmd *cmd) {
|
||||||
if (jsonBuf == NULL) return;
|
if (jsonBuf == NULL) return;
|
||||||
|
|
||||||
// write end of target
|
// write end of target
|
||||||
gcWriteTargetEndJson(jsonBuf);
|
if (cmd->numOfRows != 0) {
|
||||||
|
gcWriteTargetEndJson(jsonBuf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result, int numOfRows) {
|
bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result, int numOfRows) {
|
||||||
|
@ -116,8 +118,8 @@ bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
|
||||||
|
|
||||||
if (groupFields == -1 && cmd->numOfRows == 0) {
|
if (groupFields == -1 && cmd->numOfRows == 0) {
|
||||||
gcWriteTargetStartJson(jsonBuf, refIdBuffer, aliasBuffer);
|
gcWriteTargetStartJson(jsonBuf, refIdBuffer, aliasBuffer);
|
||||||
cmd->numOfRows += numOfRows;
|
|
||||||
}
|
}
|
||||||
|
cmd->numOfRows += numOfRows;
|
||||||
|
|
||||||
for (int i = 0; i < numOfRows; ++i) {
|
for (int i = 0; i < numOfRows; ++i) {
|
||||||
TAOS_ROW row = taos_fetch_row(result);
|
TAOS_ROW row = taos_fetch_row(result);
|
||||||
|
@ -125,42 +127,42 @@ bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
|
||||||
// for group by
|
// for group by
|
||||||
if (groupFields != -1) {
|
if (groupFields != -1) {
|
||||||
char target[HTTP_GC_TARGET_SIZE];
|
char target[HTTP_GC_TARGET_SIZE];
|
||||||
|
int len;
|
||||||
switch (fields[groupFields].type) {
|
len = snprintf(target,HTTP_GC_TARGET_SIZE,"%s{",aliasBuffer);
|
||||||
case TSDB_DATA_TYPE_BOOL:
|
for (int i = dataFields + 1; i<num_fields; i++){
|
||||||
case TSDB_DATA_TYPE_TINYINT:
|
switch (fields[i].type) {
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%d", aliasBuffer, *((int8_t *)row[groupFields]));
|
case TSDB_DATA_TYPE_BOOL:
|
||||||
break;
|
case TSDB_DATA_TYPE_TINYINT:
|
||||||
case TSDB_DATA_TYPE_SMALLINT:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%d", fields[i].name, *((int8_t *)row[i]));
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%d", aliasBuffer, *((int16_t *)row[groupFields]));
|
break;
|
||||||
break;
|
case TSDB_DATA_TYPE_SMALLINT:
|
||||||
case TSDB_DATA_TYPE_INT:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%d", fields[i].name, *((int16_t *)row[i]));
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%d", aliasBuffer, *((int32_t *)row[groupFields]));
|
break;
|
||||||
break;
|
case TSDB_DATA_TYPE_INT:
|
||||||
case TSDB_DATA_TYPE_BIGINT:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%d,", fields[i].name, *((int32_t *)row[i]));
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%ld", aliasBuffer, *((int64_t *)row[groupFields]));
|
break;
|
||||||
break;
|
case TSDB_DATA_TYPE_BIGINT:
|
||||||
case TSDB_DATA_TYPE_FLOAT:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%ld", fields[i].name, *((int64_t *)row[i]));
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%.5f", aliasBuffer, *((float *)row[groupFields]));
|
break;
|
||||||
break;
|
case TSDB_DATA_TYPE_FLOAT:
|
||||||
case TSDB_DATA_TYPE_DOUBLE:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%.5f", fields[i].name, *((float *)row[i]));
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%.9f", aliasBuffer, *((double *)row[groupFields]));
|
break;
|
||||||
break;
|
case TSDB_DATA_TYPE_DOUBLE:
|
||||||
case TSDB_DATA_TYPE_BINARY:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%.9f", fields[i].name, *((double *)row[i]));
|
||||||
case TSDB_DATA_TYPE_NCHAR:
|
break;
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%s", aliasBuffer, (char *)row[groupFields]);
|
case TSDB_DATA_TYPE_BINARY:
|
||||||
break;
|
case TSDB_DATA_TYPE_NCHAR:
|
||||||
case TSDB_DATA_TYPE_TIMESTAMP:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%s", fields[i].name, (char *)row[i]);
|
||||||
if (precision == TSDB_TIME_PRECISION_MILLI) {
|
break;
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%ld", aliasBuffer, *((int64_t *) row[groupFields]));
|
default:
|
||||||
} else {
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%s", fields[i].name, "-");
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%ld", aliasBuffer, *((int64_t *) row[groupFields]) / 1000);
|
break;
|
||||||
}
|
}
|
||||||
break;
|
if(i < num_fields - 1 ){
|
||||||
default:
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, ", ");
|
||||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%s", aliasBuffer, "invalidcol");
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "}");
|
||||||
|
|
||||||
if (strcmp(target, targetBuffer) != 0) {
|
if (strcmp(target, targetBuffer) != 0) {
|
||||||
// first target not write this section
|
// first target not write this section
|
||||||
|
@ -217,7 +219,7 @@ bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
httpJsonString(jsonBuf, "invalidcol", 10);
|
httpJsonString(jsonBuf, "-", 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue