Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b0310c90
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1185
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
You need to sign in or sign up before continuing.
提交
b0310c90
编写于
4月 02, 2022
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-14393] support percentile.
上级
1cbdec1a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
1 addition
and
85 deletion
+1
-85
source/libs/executor/src/executorimpl.c
source/libs/executor/src/executorimpl.c
+0
-85
source/libs/function/src/builtins.c
source/libs/function/src/builtins.c
+1
-0
未找到文件。
source/libs/executor/src/executorimpl.c
浏览文件 @
b0310c90
...
@@ -2224,43 +2224,6 @@ bool isTaskKilled(SExecTaskInfo* pTaskInfo) {
...
@@ -2224,43 +2224,6 @@ bool isTaskKilled(SExecTaskInfo* pTaskInfo) {
void
setTaskKilled
(
SExecTaskInfo
*
pTaskInfo
)
{
pTaskInfo
->
code
=
TSDB_CODE_TSC_QUERY_CANCELLED
;
}
void
setTaskKilled
(
SExecTaskInfo
*
pTaskInfo
)
{
pTaskInfo
->
code
=
TSDB_CODE_TSC_QUERY_CANCELLED
;
}
// static bool isFixedOutputQuery(STaskAttr* pQueryAttr) {
// if (QUERY_IS_INTERVAL_QUERY(pQueryAttr)) {
// return false;
// }
//
// // Note:top/bottom query is fixed output query
// if (pQueryAttr->topBotQuery || pQueryAttr->groupbyColumn || pQueryAttr->tsCompQuery) {
// return true;
// }
//
// for (int32_t i = 0; i < pQueryAttr->numOfOutput; ++i) {
// SExprBasicInfo *pExpr = &pQueryAttr->pExpr1[i].base;
//
// if (pExpr->functionId == FUNCTION_TS || pExpr->functionId == FUNCTION_TS_DUMMY) {
// continue;
// }
//
// if (!IS_MULTIOUTPUT(aAggs[pExpr->functionId].status)) {
// return true;
// }
// }
//
// return false;
// }
// todo refactor with isLastRowQuery
// bool isPointInterpoQuery(STaskAttr *pQueryAttr) {
// for (int32_t i = 0; i < pQueryAttr->numOfOutput; ++i) {
// int32_t functionId = pQueryAttr->pExpr1[i].base.functionId;
// if (functionId == FUNCTION_INTERP) {
// return true;
// }
// }
//
// return false;
//}
static
bool
isCachedLastQuery
(
STaskAttr
*
pQueryAttr
)
{
static
bool
isCachedLastQuery
(
STaskAttr
*
pQueryAttr
)
{
for
(
int32_t
i
=
0
;
i
<
pQueryAttr
->
numOfOutput
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pQueryAttr
->
numOfOutput
;
++
i
)
{
int32_t
functionId
=
getExprFunctionId
(
&
pQueryAttr
->
pExpr1
[
i
]);
int32_t
functionId
=
getExprFunctionId
(
&
pQueryAttr
->
pExpr1
[
i
]);
...
@@ -2309,40 +2272,6 @@ void getAlignQueryTimeWindow(SInterval* pInterval, int32_t precision, int64_t ke
...
@@ -2309,40 +2272,6 @@ void getAlignQueryTimeWindow(SInterval* pInterval, int32_t precision, int64_t ke
}
}
}
}
/*
* todo add more parameters to check soon..
*/
bool
colIdCheck
(
STaskAttr
*
pQueryAttr
,
uint64_t
qId
)
{
// load data column information is incorrect
for
(
int32_t
i
=
0
;
i
<
pQueryAttr
->
numOfCols
-
1
;
++
i
)
{
if
(
pQueryAttr
->
tableCols
[
i
].
colId
==
pQueryAttr
->
tableCols
[
i
+
1
].
colId
)
{
// qError("QInfo:0x%"PRIx64" invalid data load column for query", qId);
return
false
;
}
}
return
true
;
}
// todo ignore the avg/sum/min/max/count/stddev/top/bottom functions, of which
// the scan order is not matter
static
bool
onlyOneQueryType
(
STaskAttr
*
pQueryAttr
,
int32_t
functId
,
int32_t
functIdDst
)
{
for
(
int32_t
i
=
0
;
i
<
pQueryAttr
->
numOfOutput
;
++
i
)
{
int32_t
functionId
=
getExprFunctionId
(
&
pQueryAttr
->
pExpr1
[
i
]);
if
(
functionId
==
FUNCTION_TS
||
functionId
==
FUNCTION_TS_DUMMY
||
functionId
==
FUNCTION_TAG
||
functionId
==
FUNCTION_TAG_DUMMY
)
{
continue
;
}
if
(
functionId
!=
functId
&&
functionId
!=
functIdDst
)
{
return
false
;
}
}
return
true
;
}
static
int32_t
updateBlockLoadStatus
(
STaskAttr
*
pQuery
,
int32_t
status
)
{
static
int32_t
updateBlockLoadStatus
(
STaskAttr
*
pQuery
,
int32_t
status
)
{
bool
hasFirstLastFunc
=
false
;
bool
hasFirstLastFunc
=
false
;
bool
hasOtherFunc
=
false
;
bool
hasOtherFunc
=
false
;
...
@@ -2819,20 +2748,6 @@ static uint32_t doFilterByBlockTimeWindow(STableScanInfo* pTableScanInfo, SSData
...
@@ -2819,20 +2748,6 @@ static uint32_t doFilterByBlockTimeWindow(STableScanInfo* pTableScanInfo, SSData
return
status
;
return
status
;
}
}
void
doSetFilterColumnInfo
(
SSingleColumnFilterInfo
*
pFilterInfo
,
int32_t
numOfFilterCols
,
SSDataBlock
*
pBlock
)
{
// set the initial static data value filter expression
for
(
int32_t
i
=
0
;
i
<
numOfFilterCols
;
++
i
)
{
for
(
int32_t
j
=
0
;
j
<
pBlock
->
info
.
numOfCols
;
++
j
)
{
SColumnInfoData
*
pColInfo
=
taosArrayGet
(
pBlock
->
pDataBlock
,
j
);
if
(
pFilterInfo
[
i
].
info
.
colId
==
pColInfo
->
info
.
colId
)
{
pFilterInfo
[
i
].
pData
=
pColInfo
->
pData
;
break
;
}
}
}
}
int32_t
loadDataBlock
(
SExecTaskInfo
*
pTaskInfo
,
STableScanInfo
*
pTableScanInfo
,
SSDataBlock
*
pBlock
,
uint32_t
*
status
)
{
int32_t
loadDataBlock
(
SExecTaskInfo
*
pTaskInfo
,
STableScanInfo
*
pTableScanInfo
,
SSDataBlock
*
pBlock
,
uint32_t
*
status
)
{
STaskCostInfo
*
pCost
=
&
pTaskInfo
->
cost
;
STaskCostInfo
*
pCost
=
&
pTaskInfo
->
cost
;
...
...
source/libs/function/src/builtins.c
浏览文件 @
b0310c90
...
@@ -434,6 +434,7 @@ int32_t stubCheckAndGetResultType(SFunctionNode* pFunc) {
...
@@ -434,6 +434,7 @@ int32_t stubCheckAndGetResultType(SFunctionNode* pFunc) {
break
;
break
;
}
}
case
FUNCTION_TYPE_PERCENTILE
:
case
FUNCTION_TYPE_STDDEV
:
case
FUNCTION_TYPE_STDDEV
:
case
FUNCTION_TYPE_SIN
:
case
FUNCTION_TYPE_SIN
:
case
FUNCTION_TYPE_COS
:
case
FUNCTION_TYPE_COS
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录