提交 7d7085ae 编写于 作者: wmmhello's avatar wmmhello

<fix>[TD-11459]It is empty if stddev with group by nchar

上级 8386c0da
......@@ -2272,7 +2272,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,34 @@ 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);")
#add for TD-11459
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.
先完成此消息的编辑!
想要评论请 注册