[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_MAX_URL 5 //http url stack 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_11 1
|
||||
|
|
|
@ -79,7 +79,9 @@ void gcStopQueryJson(HttpContext *pContext, HttpSqlCmd *cmd) {
|
|||
if (jsonBuf == NULL) return;
|
||||
|
||||
// write end of target
|
||||
gcWriteTargetEndJson(jsonBuf);
|
||||
if (cmd->numOfRows != 0) {
|
||||
gcWriteTargetEndJson(jsonBuf);
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
gcWriteTargetStartJson(jsonBuf, refIdBuffer, aliasBuffer);
|
||||
cmd->numOfRows += numOfRows;
|
||||
}
|
||||
cmd->numOfRows += numOfRows;
|
||||
|
||||
for (int i = 0; i < numOfRows; ++i) {
|
||||
TAOS_ROW row = taos_fetch_row(result);
|
||||
|
@ -125,42 +127,42 @@ bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
|
|||
// for group by
|
||||
if (groupFields != -1) {
|
||||
char target[HTTP_GC_TARGET_SIZE];
|
||||
|
||||
switch (fields[groupFields].type) {
|
||||
case TSDB_DATA_TYPE_BOOL:
|
||||
case TSDB_DATA_TYPE_TINYINT:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%d", aliasBuffer, *((int8_t *)row[groupFields]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_SMALLINT:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%d", aliasBuffer, *((int16_t *)row[groupFields]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_INT:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%d", aliasBuffer, *((int32_t *)row[groupFields]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_BIGINT:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%ld", aliasBuffer, *((int64_t *)row[groupFields]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_FLOAT:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%.5f", aliasBuffer, *((float *)row[groupFields]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_DOUBLE:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%.9f", aliasBuffer, *((double *)row[groupFields]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_BINARY:
|
||||
case TSDB_DATA_TYPE_NCHAR:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%s", aliasBuffer, (char *)row[groupFields]);
|
||||
break;
|
||||
case TSDB_DATA_TYPE_TIMESTAMP:
|
||||
if (precision == TSDB_TIME_PRECISION_MILLI) {
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%ld", aliasBuffer, *((int64_t *) row[groupFields]));
|
||||
} else {
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%ld", aliasBuffer, *((int64_t *) row[groupFields]) / 1000);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
snprintf(target, HTTP_GC_TARGET_SIZE, "%s%s", aliasBuffer, "invalidcol");
|
||||
break;
|
||||
int len;
|
||||
len = snprintf(target,HTTP_GC_TARGET_SIZE,"%s{",aliasBuffer);
|
||||
for (int i = dataFields + 1; i<num_fields; i++){
|
||||
switch (fields[i].type) {
|
||||
case TSDB_DATA_TYPE_BOOL:
|
||||
case TSDB_DATA_TYPE_TINYINT:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%d", fields[i].name, *((int8_t *)row[i]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_SMALLINT:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%d", fields[i].name, *((int16_t *)row[i]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_INT:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%d,", fields[i].name, *((int32_t *)row[i]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_BIGINT:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%ld", fields[i].name, *((int64_t *)row[i]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_FLOAT:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%.5f", fields[i].name, *((float *)row[i]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_DOUBLE:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%.9f", fields[i].name, *((double *)row[i]));
|
||||
break;
|
||||
case TSDB_DATA_TYPE_BINARY:
|
||||
case TSDB_DATA_TYPE_NCHAR:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%s", fields[i].name, (char *)row[i]);
|
||||
break;
|
||||
default:
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "%s:%s", fields[i].name, "-");
|
||||
break;
|
||||
}
|
||||
if(i < num_fields - 1 ){
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, ", ");
|
||||
}
|
||||
}
|
||||
len += snprintf(target + len, HTTP_GC_TARGET_SIZE - len, "}");
|
||||
|
||||
if (strcmp(target, targetBuffer) != 0) {
|
||||
// first target not write this section
|
||||
|
@ -217,7 +219,7 @@ bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
|
|||
}
|
||||
break;
|
||||
default:
|
||||
httpJsonString(jsonBuf, "invalidcol", 10);
|
||||
httpJsonString(jsonBuf, "-", 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue