提交 bb82cb0e 编写于 作者: C Cary Xu

Merge branch '3.0' into feature/TD-11274-3.0

...@@ -52,7 +52,7 @@ TDengine的主要功能如下: ...@@ -52,7 +52,7 @@ TDengine的主要功能如下:
采用 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。表现在几个方面: 采用 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。表现在几个方面:
1. 由于其超强性能,它能将系统需要的计算资源和存储资源大幅降低 1. 由于其超强性能,它能将系统需要的计算资源和存储资源大幅降低
2. 因为采用 SQL 接口,能与众多第三软件无缝集成,学习迁移成本大幅下降 2. 因为采用 SQL 接口,能与众多第三软件无缝集成,学习迁移成本大幅下降
3. 因为其 All In One 的特性,系统复杂度降低,能降研发成本 3. 因为其 All In One 的特性,系统复杂度降低,能降研发成本
4. 因为运维维护简单,运营维护成本能大幅降低 4. 因为运维维护简单,运营维护成本能大幅降低
......
...@@ -884,9 +884,17 @@ static int32_t createDistinctLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSe ...@@ -884,9 +884,17 @@ static int32_t createDistinctLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSe
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
// set grouyp keys, agg funcs and having conditions // set grouyp keys, agg funcs and having conditions
pAgg->pGroupKeys = nodesCloneList(pSelect->pProjectionList); SNodeList* pGroupKeys = NULL;
if (NULL == pAgg->pGroupKeys) { SNode* pProjection = NULL;
code = TSDB_CODE_OUT_OF_MEMORY; FOREACH(pProjection, pSelect->pProjectionList) {
code = nodesListMakeStrictAppend(&pGroupKeys, createGroupingSetNode(pProjection));
if (TSDB_CODE_SUCCESS != code) {
nodesDestroyList(pGroupKeys);
break;
}
}
if (TSDB_CODE_SUCCESS == code) {
pAgg->pGroupKeys = pGroupKeys;
} }
// rewrite the expression in subsequent clauses // rewrite the expression in subsequent clauses
......
...@@ -2149,7 +2149,16 @@ static bool tagScanMayBeOptimized(SLogicNode* pNode) { ...@@ -2149,7 +2149,16 @@ static bool tagScanMayBeOptimized(SLogicNode* pNode) {
planOptNodeListHasCol(pAgg->pGroupKeys) || !planOptNodeListHasTbname(pAgg->pGroupKeys)) { planOptNodeListHasCol(pAgg->pGroupKeys) || !planOptNodeListHasTbname(pAgg->pGroupKeys)) {
return false; return false;
} }
SNode* pGroupKey = NULL;
FOREACH(pGroupKey, pAgg->pGroupKeys) {
SNode* pGroup = NULL;
FOREACH(pGroup, ((SGroupingSetNode*)pGroupKey)->pParameterList) {
if (QUERY_NODE_COLUMN != nodeType(pGroup)) {
return false;
}
}
}
return true; return true;
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
import random import random
import string import string
from datetime import datetime
from util import constant from util import constant
from util.log import * from util.log import *
from util.cases import * from util.cases import *
...@@ -55,7 +56,7 @@ class TDTestCase: ...@@ -55,7 +56,7 @@ class TDTestCase:
else: else:
tdLog.exit(f'{col_name} data check failure') tdLog.exit(f'{col_name} data check failure')
elif col_type.lower() == 'timestamp': elif col_type.lower() == 'timestamp':
tdSql.checkEqual(str(tdSql.queryResult[0][0]),str(datetime.datetime.fromtimestamp(value/1000).strftime("%Y-%m-%d %H:%M:%S.%f"))) tdSql.checkEqual(str(tdSql.queryResult[0][0]),str(datetime.fromtimestamp(value/1000).strftime("%Y-%m-%d %H:%M:%S.%f")))
else: else:
tdSql.checkEqual(tdSql.queryResult[0][0],value) tdSql.checkEqual(tdSql.queryResult[0][0],value)
def update_and_check_data(self,tbname,col_name,col_type,value,dbname): def update_and_check_data(self,tbname,col_name,col_type,value,dbname):
...@@ -242,8 +243,11 @@ class TDTestCase: ...@@ -242,8 +243,11 @@ class TDTestCase:
self.error_check(self.ctbname,self.column_dict,'ctb',self.stbname) self.error_check(self.ctbname,self.column_dict,'ctb',self.stbname)
def run(self): def run(self):
self.update_check() #!bug TD-17708 and TD-17709
self.update_check_error() # for i in range(10):
self.update_check()
self.update_check_error()
# i+=1
def stop(self): def stop(self):
tdSql.close() tdSql.close()
......
...@@ -222,9 +222,9 @@ class TDTestCase: ...@@ -222,9 +222,9 @@ class TDTestCase:
if vgroups_num >= 2: if vgroups_num >= 2:
tdLog.info(f'This scene with {vgroups_num} vgroups is ok!') tdLog.info(f'This scene with {vgroups_num} vgroups is ok!')
continue continue
else: # else:
tdLog.exit( # tdLog.exit(
'This scene does not meet the requirements with {vgroups_num} vgroup!\n') # f'This scene does not meet the requirements with {vgroups_num} vgroup!\n')
for i in range(self.tbnum): for i in range(self.tbnum):
for j in range(self.rowNum): for j in range(self.rowNum):
......
...@@ -62,8 +62,7 @@ python3 ./test.py -f 2-query/char_length.py -R ...@@ -62,8 +62,7 @@ python3 ./test.py -f 2-query/char_length.py -R
python3 ./test.py -f 2-query/check_tsdb.py python3 ./test.py -f 2-query/check_tsdb.py
python3 ./test.py -f 2-query/check_tsdb.py -R python3 ./test.py -f 2-query/check_tsdb.py -R
# python3 ./test.py -f 1-insert/update_data.py
python3 ./test.py -f 1-insert/update_data.py
python3 ./test.py -f 1-insert/delete_data.py python3 ./test.py -f 1-insert/delete_data.py
python3 ./test.py -f 2-query/db.py python3 ./test.py -f 2-query/db.py
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册