Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
TDengine
提交
2b55a75e
T
TDengine
项目概览
jobily
/
TDengine
9 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2b55a75e
编写于
6月 21, 2023
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: refact code
上级
7e555e43
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
309 addition
and
143 deletion
+309
-143
include/libs/nodes/plannodes.h
include/libs/nodes/plannodes.h
+0
-1
include/libs/nodes/querynodes.h
include/libs/nodes/querynodes.h
+5
-1
source/libs/executor/inc/hashjoin.h
source/libs/executor/inc/hashjoin.h
+28
-20
source/libs/executor/src/hashjoinoperator.c
source/libs/executor/src/hashjoinoperator.c
+276
-121
未找到文件。
include/libs/nodes/plannodes.h
浏览文件 @
2b55a75e
...
...
@@ -415,7 +415,6 @@ typedef struct SHashJoinPhysiNode {
EJoinType
joinType
;
SNodeList
*
pOnLeft
;
SNodeList
*
pOnRight
;
SNode
*
pOnConditions
;
SNode
*
pFilterConditions
;
SNodeList
*
pTargets
;
SQueryStat
inputStat
[
2
];
...
...
include/libs/nodes/querynodes.h
浏览文件 @
2b55a75e
...
...
@@ -167,7 +167,11 @@ typedef struct STempTableNode {
SNode
*
pSubquery
;
}
STempTableNode
;
typedef
enum
EJoinType
{
JOIN_TYPE_INNER
=
1
}
EJoinType
;
typedef
enum
EJoinType
{
JOIN_TYPE_INNER
=
1
,
JOIN_TYPE_LEFT
,
JOIN_TYPE_RIGHT
,
}
EJoinType
;
typedef
struct
SJoinTableNode
{
STableNode
table
;
// QUERY_NODE_JOIN_TABLE
...
...
source/libs/executor/inc/hashjoin.h
浏览文件 @
2b55a75e
...
...
@@ -19,6 +19,8 @@
extern
"C"
{
#endif
#define HASH_JOIN_DEFAULT_PAGE_SIZE 10485760
typedef
struct
SHJoinCtx
{
bool
rowRemains
;
SBufRowInfo
*
pBuildRow
;
...
...
@@ -31,14 +33,17 @@ typedef struct SRowLocation {
int32_t
pos
;
}
SRowLocation
;
typedef
struct
S
ColBuf
Info
{
typedef
struct
S
HJoinCol
Info
{
int32_t
srcSlot
;
int32_t
dstSlot
;
bool
keyCol
;
bool
vardata
;
int32_t
*
offset
;
int32_t
bytes
;
char
*
data
;
}
SColBufInfo
;
char
*
bitMap
;
char
*
dataInBuf
;
}
SHJoinColInfo
;
typedef
struct
SBufPageInfo
{
int32_t
pageSize
;
...
...
@@ -50,8 +55,7 @@ typedef struct SBufPageInfo {
typedef
struct
SBufRowInfo
{
void
*
next
;
uint16_t
pageId
;
int32_t
offset
:
31
;
int32_t
isNull
:
1
;
int32_t
offset
;
}
SBufRowInfo
;
#pragma pack(pop)
...
...
@@ -59,33 +63,37 @@ typedef struct SGroupData {
SBufRowInfo
*
rows
;
}
SGroupData
;
typedef
struct
SJoinTableInfo
{
typedef
struct
S
H
JoinTableInfo
{
SOperatorInfo
*
downStream
;
int32_t
blkId
;
SQueryStat
inputStat
;
int32_t
keyNum
;
S
ColBufInfo
*
keyCols
;
S
HJoinColInfo
*
keyCols
;
char
*
keyBuf
;
char
*
keyData
;
int32_t
valNum
;
SColBufInfo
*
valCols
;
SHJoinColInfo
*
valCols
;
char
*
valData
;
int32_t
valBitMapSize
;
int32_t
valBufSize
;
bool
valVarData
;
}
SJoinTableInfo
;
SArray
*
valVarCols
;
bool
valColExist
;
}
SHJoinTableInfo
;
typedef
struct
SHJoinOperatorInfo
{
SSDataBlock
*
pRes
;
int32_t
joinType
;
S
JoinTableInfo
tbs
[
2
]
;
S
JoinTableInfo
*
pBuild
;
S
JoinTableInfo
*
pProbe
;
int32_t
pResColNum
;
int8_t
*
pResColMap
;
SArray
*
pRowBufs
;
SNode
*
pCondAfterJoin
;
SSHashObj
*
pKeyHash
;
SHJoinCtx
ctx
;
int32_t
joinType
;
SHJoinTableInfo
tbs
[
2
]
;
S
HJoinTableInfo
*
pBuild
;
S
HJoinTableInfo
*
pProbe
;
S
SDataBlock
*
pRes
;
int32_t
pResColNum
;
int8_t
*
pResColMap
;
SArray
*
pRowBufs
;
SNode
*
pCond
;
SSHashObj
*
pKeyHash
;
SHJoinCtx
ctx
;
}
SHJoinOperatorInfo
;
static
SSDataBlock
*
doHashJoin
(
struct
SOperatorInfo
*
pOperator
);
...
...
source/libs/executor/src/hashjoinoperator.c
浏览文件 @
2b55a75e
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录