Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FDD-WEB
oceanbase
提交
d4e6e23f
O
oceanbase
项目概览
FDD-WEB
/
oceanbase
与 Fork 源项目一致
Fork自
DP.peng / 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,体验更适合开发者的 AI 搜索 >>
提交
d4e6e23f
编写于
10月 26, 2022
作者:
O
obdev
提交者:
wangzelin.wzl
10月 26, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix predicate hint bug
上级
fe6a702e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
14 deletion
+2
-14
src/sql/rewrite/ob_transform_predicate_move_around.cpp
src/sql/rewrite/ob_transform_predicate_move_around.cpp
+2
-14
未找到文件。
src/sql/rewrite/ob_transform_predicate_move_around.cpp
浏览文件 @
d4e6e23f
...
...
@@ -160,7 +160,6 @@ int ObTransformPredicateMoveAround::check_outline_valid_to_transform(const ObDML
}
else
if
(
NULL
==
(
trans_hint
=
query_hint
->
get_outline_trans_hint
(
tmp_trans_list_loc
))
||
!
trans_hint
->
is_pred_deduce_hint
())
{
break
;
LOG_DEBUG
(
"show debug"
,
K
(
trans_hint
),
K
(
i
));
}
else
{
bool
is_valid
=
query_hint
->
is_valid_outline_transform
(
tmp_trans_list_loc
,
get_hint
(
view
->
get_stmt_hint
()));
...
...
@@ -824,6 +823,8 @@ int ObTransformPredicateMoveAround::pushdown_predicates(
}
else
if
(
OB_ISNULL
(
pullup_preds
))
{
ret
=
OB_ERR_UNEXPECTED
;
LOG_WARN
(
"pullup predicate array is null"
,
K
(
ret
));
}
else
if
(
enable_no_pred_deduce
)
{
//do nothing
}
else
if
(
stmt
->
is_set_stmt
())
{
ObSelectStmt
*
sel_stmt
=
static_cast
<
ObSelectStmt
*>
(
stmt
);
if
(
OB_FAIL
(
pushdown_into_set_stmt
(
sel_stmt
,
...
...
@@ -831,8 +832,6 @@ int ObTransformPredicateMoveAround::pushdown_predicates(
pushdown_preds
)))
{
LOG_WARN
(
"recursive pushdown preds into set stmt failed"
,
K
(
ret
));
}
else
{
/*do nothing*/
}
}
else
if
(
enable_no_pred_deduce
)
{
LOG_TRACE
(
"NO PRED DEDUCE"
);
}
else
if
(
stmt
->
is_hierarchical_query
())
{
ObArray
<
ObRawExpr
*>
dummy_preds
;
for
(
int64_t
i
=
0
;
OB_SUCC
(
ret
)
&&
i
<
stmt
->
get_table_size
();
++
i
)
{
...
...
@@ -847,8 +846,6 @@ int ObTransformPredicateMoveAround::pushdown_predicates(
}
else
{
/*do nothing*/
}
}
}
else
{
LOG_DEBUG
(
"show enable no pred deduce0"
,
K
(
enable_no_pred_deduce
),
K
(
old_where_preds
),
K
(
stmt
->
get_condition_exprs
()));
if
(
OB_FAIL
(
stmt
->
has_rownum
(
has_rownum
)))
{
LOG_WARN
(
"failed to check stmt has rownum"
,
K
(
ret
));
}
else
if
(
stmt
->
is_select_stmt
())
{
...
...
@@ -899,9 +896,6 @@ int ObTransformPredicateMoveAround::pushdown_predicates(
}
}
}
LOG_DEBUG
(
"show enable no pred deduce1"
,
K
(
enable_no_pred_deduce
),
K
(
old_where_preds
),
K
(
stmt
->
get_condition_exprs
()),
K
(
*
stmt
));
if
(
OB_SUCC
(
ret
)
&&
!
stmt
->
is_set_stmt
()
&&
!
stmt
->
is_hierarchical_query
())
{
ObIArray
<
FromItem
>
&
from_items
=
stmt
->
get_from_items
();
ObIArray
<
SemiInfo
*>
&
semi_infos
=
stmt
->
get_semi_infos
();
...
...
@@ -919,15 +913,11 @@ int ObTransformPredicateMoveAround::pushdown_predicates(
}
}
}
LOG_DEBUG
(
"show enable no pred deduce2"
,
K
(
enable_no_pred_deduce
),
K
(
old_where_preds
),
K
(
stmt
->
get_condition_exprs
()));
if
(
OB_SUCC
(
ret
))
{
if
(
OB_FAIL
(
check_transform_happened
(
stmt
,
old_where_preds
,
stmt
->
get_condition_exprs
())))
{
LOG_WARN
(
"failed to check transform happened"
,
K
(
ret
));
}
}
LOG_DEBUG
(
"show enable no pred deduce3"
,
K
(
enable_no_pred_deduce
),
K
(
old_where_preds
),
K
(
stmt
->
get_condition_exprs
()));
return
ret
;
}
...
...
@@ -1908,12 +1898,10 @@ int ObTransformPredicateMoveAround::pushdown_into_joined_table(
//do nothing for full join
}
}
LOG_DEBUG
(
"check trans happen1"
,
K
(
trans_happened_
));
if
(
OB_FAIL
(
ret
))
{
}
else
if
(
check_transform_happened
(
stmt
,
old_join_condition
,
joined_table
->
join_conditions_
))
{
LOG_WARN
(
"failed to check transform happened"
,
K
(
ret
));
}
LOG_DEBUG
(
"check trans happen2"
,
K
(
trans_happened_
));
}
return
ret
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录