Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Metz
oceanbase
提交
b6dbe82e
O
oceanbase
项目概览
Metz
/
oceanbase
与 Fork 源项目一致
Fork自
oceanbase / oceanbase
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b6dbe82e
编写于
11月 23, 2021
作者:
B
br0
提交者:
LINGuanRen
11月 23, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix some WhiteScan errors
上级
df7cdeaa
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
29 deletion
+10
-29
src/sql/engine/join/ob_join.cpp
src/sql/engine/join/ob_join.cpp
+6
-28
src/sql/engine/join/ob_nested_loop_join.cpp
src/sql/engine/join/ob_nested_loop_join.cpp
+4
-1
未找到文件。
src/sql/engine/join/ob_join.cpp
浏览文件 @
b6dbe82e
...
...
@@ -349,10 +349,7 @@ int ObJoin::calc_equal_conds(
ObCompareCtx
cmp_ctx
(
ObMaxType
,
CS_TYPE_INVALID
,
true
,
tz_offset
,
default_null_pos
());
DLIST_FOREACH
(
node
,
equal_join_conds_
)
{
if
(
OB_ISNULL
(
node
))
{
ret
=
OB_BAD_NULL_ERROR
;
LOG_WARN
(
"node or node expr is null"
,
K
(
ret
));
}
else
if
(
node
->
is_equijoin_cond
(
col1
,
col2
,
cmp_ctx
.
cmp_type_
,
cmp_ctx
.
cmp_cs_type_
,
is_null_safe
))
{
if
(
node
->
is_equijoin_cond
(
col1
,
col2
,
cmp_ctx
.
cmp_type_
,
cmp_ctx
.
cmp_cs_type_
,
is_null_safe
))
{
// The character set saved by cmp_ctx.cmp_cs_type_ needs to be
// used for type conversion, otherwise there is no setting. MySQL
// mode will use utf8mb4_general_ci as default
...
...
@@ -439,10 +436,7 @@ int ObJoin::calc_other_conds(ObJoinCtx& join_ctx, bool& is_match) const
ObSqlExpression
*
expr
=
NULL
;
DLIST_FOREACH
(
node
,
other_join_conds_
)
{
if
(
OB_ISNULL
(
node
))
{
ret
=
OB_BAD_NULL_ERROR
;
LOG_WARN
(
"node or node expr is null"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
OB_I
(
t1
)
node
->
calc
(
expr_ctx
,
*
join_ctx
.
left_row_
,
*
join_ctx
.
right_row_
,
calc_ret
)))
{
if
(
OB_FAIL
(
OB_I
(
t1
)
node
->
calc
(
expr_ctx
,
*
join_ctx
.
left_row_
,
*
join_ctx
.
right_row_
,
calc_ret
)))
{
LOG_WARN
(
"failed to calc other cond expr"
,
K
(
ret
),
K
(
expr
));
}
else
if
(
OB_FAIL
(
ObObjEvaluator
::
is_true
(
calc_ret
,
is_match
)))
{
LOG_WARN
(
"failed to get calc result"
,
K
(
ret
),
K
(
calc_ret
));
...
...
@@ -559,10 +553,7 @@ OB_DEF_SERIALIZE(ObJoin)
}
else
{
DLIST_FOREACH
(
node
,
equal_join_conds_
)
{
if
(
OB_ISNULL
(
node
))
{
ret
=
OB_BAD_NULL_ERROR
;
LOG_WARN
(
"node or node expr is null"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
OB_I
(
t5
)
node
->
serialize
(
buf
,
buf_len
,
pos
)))
{
if
(
OB_FAIL
(
OB_I
(
t5
)
node
->
serialize
(
buf
,
buf_len
,
pos
)))
{
LOG_WARN
(
"failed to serialize equal join conds"
,
K
(
ret
));
}
}
...
...
@@ -575,10 +566,7 @@ OB_DEF_SERIALIZE(ObJoin)
}
else
{
DLIST_FOREACH
(
node
,
other_join_conds_
)
{
if
(
OB_ISNULL
(
node
))
{
ret
=
OB_BAD_NULL_ERROR
;
LOG_WARN
(
"node or node expr is null"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
OB_I
(
t9
)
node
->
serialize
(
buf
,
buf_len
,
pos
)))
{
if
(
OB_FAIL
(
OB_I
(
t9
)
node
->
serialize
(
buf
,
buf_len
,
pos
)))
{
LOG_WARN
(
"failed to serialize equal join conds"
,
K
(
ret
));
}
}
...
...
@@ -693,23 +681,13 @@ OB_DEF_SERIALIZE_SIZE(ObJoin)
DLIST_FOREACH_NORET
(
expr
,
equal_join_conds_
)
{
if
(
OB_ISNULL
(
expr
))
{
len
=
-
1
;
LOG_WARN
(
"expr is null"
,
"ret"
,
OB_BAD_NULL_ERROR
);
}
else
{
OB_UNIS_ADD_LEN
(
*
expr
);
}
OB_UNIS_ADD_LEN
(
*
expr
);
}
OB_UNIS_ADD_LEN
(
other_join_conds_
.
get_size
());
DLIST_FOREACH_NORET
(
expr
,
other_join_conds_
)
{
if
(
OB_ISNULL
(
expr
))
{
len
=
-
1
;
LOG_WARN
(
"expr is null"
,
"ret"
,
OB_BAD_NULL_ERROR
);
}
else
{
OB_UNIS_ADD_LEN
(
*
expr
);
}
OB_UNIS_ADD_LEN
(
*
expr
);
}
OB_UNIS_ADD_LEN
(
pump_row_desc_
);
...
...
src/sql/engine/join/ob_nested_loop_join.cpp
浏览文件 @
b6dbe82e
...
...
@@ -582,7 +582,10 @@ int ObNestedLoopJoin::bij_fill_left_rows(ObExecContext& exec_ctx) const
int
ret
=
OB_SUCCESS
;
ObNestedLoopJoinCtx
*
join_ctx
=
GET_PHY_OPERATOR_CTX
(
ObNestedLoopJoinCtx
,
exec_ctx
,
get_id
());
int64_t
BATCH_SIZE
=
1000
;
if
(
OB_ISNULL
(
right_op_
))
{
if
(
OB_ISNULL
(
join_ctx
))
{
ret
=
OB_ERR_UNEXPECTED
;
LOG_WARN
(
"failed to get nested loop join ctx"
,
K
(
ret
));
}
else
if
(
OB_ISNULL
(
right_op_
))
{
ret
=
OB_ERR_UNEXPECTED
;
LOG_WARN
(
"right_op is null"
,
K
(
ret
),
K
(
right_op_
));
}
else
if
(
PHY_TABLE_SCAN
!=
right_op_
->
get_type
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录