diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 939767defac2c9c391ae71215ad2a7d4059e2efc..04cfc60c8db39bff9867afe04b644c0e8001945f 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -7493,15 +7493,14 @@ static int32_t doAddGroupbyColumnsOnDemand(SSqlCmd* pCmd, SQueryInfo* pQueryInfo SExprInfo* pExpr = tscExprInsert(pQueryInfo, pos, f, &index, s->type, s->bytes, getNewResColId(pCmd), s->bytes, true); // if json->key is more than TSDB_COL_NAME_LEN + TSDB_DB_NAME_LEN, truncature it, maybe case error, can encode name by md5. if(s->type == TSDB_DATA_TYPE_JSON){ - tstrncpy(s->name, pColIndex->name, TSDB_COL_NAME_LEN); tVariantCreateFromBinary(&(pExpr->base.param[pExpr->base.numOfParams]), pColIndex->name, strlen(pColIndex->name), TSDB_DATA_TYPE_BINARY); pExpr->base.numOfParams++; } memset(pExpr->base.aliasName, 0, sizeof(pExpr->base.aliasName)); - tstrncpy(pExpr->base.aliasName, s->name, sizeof(pExpr->base.aliasName)); - tstrncpy(pExpr->base.token, s->name, sizeof(pExpr->base.aliasName)); + tstrncpy(pExpr->base.aliasName, pColIndex->name, sizeof(pExpr->base.aliasName)); + tstrncpy(pExpr->base.token, pColIndex->name, sizeof(pExpr->base.aliasName)); pExpr->base.colInfo.flag = TSDB_COL_TAG; diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index b49fdbb97f2e39ed7d45705b0309207779512ba0..567564e1822b00e7ebda33712ad67a4377b0e53c 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -2492,6 +2492,10 @@ int32_t tscHandleFirstRoundStableQuery(SSqlObj *pSql) { } SExprInfo* p = tscAddFuncInSelectClause(pNewQueryInfo, index++, TSDB_FUNC_TAG, &colIndex, schema, TSDB_COL_TAG, getNewResColId(pCmd)); + if (schema->type == TSDB_DATA_TYPE_JSON){ + p->base.numOfParams = pExpr->base.numOfParams; + p->base.param[0] = pExpr->base.param[0]; + } p->base.resColId = pExpr->base.resColId; } else if (pExpr->base.functionId == TSDB_FUNC_PRJ) { int32_t num = (int32_t) taosArrayGetSize(pNewQueryInfo->groupbyExpr.columnInfo);