未验证 提交 fdb6d05d 编写于 作者: D dapan1121 提交者: GitHub

Merge pull request #8820 from taosdata/fix/TD-11459

Fix/td 11459  It is empty if stddev with group by nchar
......@@ -2293,7 +2293,15 @@ void tscFirstRoundRetrieveCallback(void* param, TAOS_RES* tres, int numOfRows) {
if (row[i] == NULL) {
setNull(p + offset, pExpr->base.resType, pExpr->base.resBytes);
} else {
memcpy(p + offset, row[i], length[i]);
if(pExpr->base.resType == TSDB_DATA_TYPE_NCHAR){
int32_t output = 0;
bool ret = taosMbsToUcs4(row[i], length[i], p + offset, pExpr->base.resBytes, &output);
if (!ret) {
tscError("stddev convert tag error:%d", ret);
}
}else{
memcpy(p + offset, row[i], length[i]);
}
}
offset += pExpr->base.resBytes;
}
......
......@@ -123,8 +123,33 @@ class TDTestCase:
tdSql.execute("insert into t1 values(now, 1, 'abc');")
tdLog.info("select stddev(k) from t1 where b <> 'abc' interval(1s);")
tdSql.query("select stddev(k) from t1 where b <> 'abc' interval(1s);")
tdSql.execute("create table stdtable(ts timestamp, col1 int) tags(loc nchar(64))")
tdSql.execute("create table std1 using stdtable tags('beijing')")
tdSql.execute("create table std2 using stdtable tags('shanghai')")
tdSql.execute("create table std3 using stdtable tags('河南')")
tdSql.execute("insert into std1 values(now + 1s, 1)")
tdSql.execute("insert into std1 values(now + 2s, 2);")
tdSql.execute("insert into std2 values(now + 3s, 1);")
tdSql.execute("insert into std2 values(now + 4s, 2);")
tdSql.execute("insert into std3 values(now + 5s, 4);")
tdSql.execute("insert into std3 values(now + 6s, 8);")
tdSql.query("select stddev(col1) from stdtable group by loc;")
tdSql.checkData(0, 0, 2.0)
tdSql.checkData(1, 0, 0.5)
tdSql.checkData(2, 0, 0.5)
tdSql.execute("create table stdtableint(ts timestamp, col1 int) tags(num int)")
tdSql.execute("create table stdint1 using stdtableint tags(1)")
tdSql.execute("create table stdint2 using stdtableint tags(2)")
tdSql.execute("insert into stdint1 values(now + 1s, 1)")
tdSql.execute("insert into stdint1 values(now + 2s, 2);")
tdSql.execute("insert into stdint2 values(now + 3s, 1);")
tdSql.execute("insert into stdint2 values(now + 4s, 2);")
tdSql.query("select stddev(col1) from stdtableint group by num")
tdSql.checkData(0, 0, 0.5)
tdSql.checkData(1, 0, 0.5)
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册