Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
dbe026a8
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
dbe026a8
编写于
5月 06, 2021
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-3299]
上级
c18dd031
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
30 addition
and
11 deletion
+30
-11
src/client/src/tscSubquery.c
src/client/src/tscSubquery.c
+0
-1
src/query/src/qPlan.c
src/query/src/qPlan.c
+30
-10
未找到文件。
src/client/src/tscSubquery.c
浏览文件 @
dbe026a8
...
...
@@ -439,7 +439,6 @@ static void tscDestroyJoinSupporter(SJoinSupporter* pSupporter) {
pSupporter
->
f
=
NULL
;
}
if
(
pSupporter
->
pVgroupTables
!=
NULL
)
{
taosArrayDestroy
(
pSupporter
->
pVgroupTables
);
pSupporter
->
pVgroupTables
=
NULL
;
...
...
src/query/src/qPlan.c
浏览文件 @
dbe026a8
#include "os.h"
#include "tschemautil.h"
#include "qPlan.h"
#include "qExecutor.h"
#include "qUtil.h"
#include "texpr.h"
#include "qPlan.h"
#include "tsclient.h"
#include "tscUtil.h"
#include "tsclient.h"
#define QNODE_TAGSCAN 1
#define QNODE_TABLESCAN 2
...
...
@@ -226,13 +227,31 @@ SArray* createQueryPlanImpl(SQueryInfo* pQueryInfo) {
exit
(
-
1
);
}
SArray
*
tableColumnList
=
taosArrayInit
(
4
,
sizeof
(
SColumn
));
tscColumnListCopy
(
tableColumnList
,
pQueryInfo
->
colList
,
uid
);
// 2. create the query execution node
char
name
[
TSDB_TABLE_FNAME_LEN
]
=
{
0
};
tNameExtractFullName
(
&
pTableMetaInfo
->
name
,
name
);
SQueryTableInfo
info
=
{.
tableName
=
strdup
(
name
),
.
id
=
pTableMetaInfo
->
pTableMeta
->
id
,};
// 3. add the join columns (the tags and the primary timestamp column)
tscInsertPrimaryTsSourceColumn
(
pQueryInfo
,
info
.
id
.
uid
);
SArray
*
tableColumnList
=
taosArrayInit
(
4
,
sizeof
(
SColumn
));
tscColumnListCopy
(
tableColumnList
,
pQueryInfo
->
colList
,
uid
);
// TODO add the tag column into the required column list
if
(
UTIL_TABLE_IS_SUPER_TABLE
(
pTableMetaInfo
))
{
int16_t
tagColId
=
tscGetJoinTagColIdByUid
(
&
pQueryInfo
->
tagCond
,
info
.
id
.
uid
);
SSchema
*
s
=
tscGetColumnSchemaById
(
pTableMetaInfo
->
pTableMeta
,
tagColId
);
SColumn
*
col
=
calloc
(
1
,
sizeof
(
SColumn
));
col
->
tableUid
=
info
.
id
.
uid
;
col
->
info
.
colId
=
tagColId
;
col
->
info
.
type
=
s
->
type
;
col
->
info
.
bytes
=
s
->
bytes
;
taosArrayPush
(
pQueryInfo
->
colList
,
&
col
);
}
// 4. add the projection query node
SQueryNode
*
pNode
=
doAddTableColumnNode
(
pQueryInfo
,
pTableMetaInfo
,
&
info
,
exprList
,
tableColumnList
);
taosArrayPush
(
upstream
,
&
pNode
);
...
...
@@ -315,9 +334,9 @@ static int32_t doPrintPlan(char* buf, SQueryNode* pQueryNode, int32_t level, int
switch
(
pQueryNode
->
info
.
type
)
{
case
QNODE_TABLESCAN
:
{
STimeWindow
*
win
=
(
STimeWindow
*
)
pQueryNode
->
pExtInfo
;
len1
=
sprintf
(
buf
+
len
,
"%s #0x%"
PRIx64
") time_range: %"
PRId64
" - %"
PRId64
"
\n
"
,
pQueryNode
->
tableInfo
.
tableName
,
pQueryNode
->
tableInfo
.
id
.
uid
,
win
->
skey
,
win
->
ekey
);
STimeWindow
*
win
=
(
STimeWindow
*
)
pQueryNode
->
pExtInfo
;
len1
=
sprintf
(
buf
+
len
,
"%s #0x%"
PRIx64
") time_range: %"
PRId64
" - %"
PRId64
"
\n
"
,
pQueryNode
->
tableInfo
.
tableName
,
pQueryNode
->
tableInfo
.
id
.
uid
,
win
->
skey
,
win
->
ekey
);
len
+=
len1
;
break
;
}
...
...
@@ -387,8 +406,9 @@ static int32_t doPrintPlan(char* buf, SQueryNode* pQueryNode, int32_t level, int
len
+=
len1
;
SInterval
*
pInterval
=
pQueryNode
->
pExtInfo
;
len1
=
sprintf
(
buf
+
len
,
"interval:%"
PRId64
"(%c), sliding:%"
PRId64
"(%c), offset:%"
PRId64
"
\n
"
,
pInterval
->
interval
,
pInterval
->
intervalUnit
,
pInterval
->
sliding
,
pInterval
->
slidingUnit
,
pInterval
->
offset
);
len1
=
sprintf
(
buf
+
len
,
"interval:%"
PRId64
"(%c), sliding:%"
PRId64
"(%c), offset:%"
PRId64
"
\n
"
,
pInterval
->
interval
,
pInterval
->
intervalUnit
,
pInterval
->
sliding
,
pInterval
->
slidingUnit
,
pInterval
->
offset
);
len
+=
len1
;
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录