Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oceanbase
提交
df902a99
O
oceanbase
项目概览
oceanbase
/
oceanbase
2 年多 前同步成功
通知
262
Star
6084
Fork
1301
代码
文件
提交
分支
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看板
提交
df902a99
编写于
11月 12, 2025
作者:
Z
zhengsc01
提交者:
ob-robot
11月 12, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Fix] Disallow index merge plan when query has ES match
上级
bac35408
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
5 deletion
+9
-5
src/sql/optimizer/ob_join_order.cpp
src/sql/optimizer/ob_join_order.cpp
+7
-4
src/sql/optimizer/ob_join_order.h
src/sql/optimizer/ob_join_order.h
+2
-1
未找到文件。
src/sql/optimizer/ob_join_order.cpp
浏览文件 @
df902a99
...
...
@@ -3195,6 +3195,7 @@ int ObJoinOrder::create_access_paths(const uint64_t table_id,
const ParamStore *params = NULL;
bool is_valid = true;
ObSQLSessionInfo *session_info = NULL;
bool is_es_match = false;
bool ignore_normal_access_path = false;
if (OB_ISNULL(get_plan()) ||
OB_ISNULL(stmt = get_plan()->get_stmt()) ||
...
...
@@ -3213,9 +3214,10 @@ int ObJoinOrder::create_access_paths(const uint64_t table_id,
LOG_WARN("get prefix index qual failed", K(ret));
} else if (OB_FAIL(init_basic_text_retrieval_info(table_id,
ref_table_id,
helper))) {
helper,
is_es_match))) {
LOG_WARN("failed to init basic text retrieval info", K(ret));
} else if (OB_FAIL(create_index_merge_access_paths(table_id,
} else if (
!is_es_match &&
OB_FAIL(create_index_merge_access_paths(table_id,
ref_table_id,
helper,
access_paths,
...
...
@@ -21308,7 +21310,8 @@ int ObJoinOrder::process_index_for_match_expr(const uint64_t table_id,
int ObJoinOrder::init_basic_text_retrieval_info(uint64_t table_id,
uint64_t ref_table_id,
PathHelper &helper)
PathHelper &helper,
bool &is_es_match)
{
int ret = OB_SUCCESS;
helper.match_expr_infos_.reuse();
...
...
@@ -21331,7 +21334,7 @@ int ObJoinOrder::init_basic_text_retrieval_info(uint64_t table_id,
LOG_WARN("unexpected null partition info", K(ret));
} else {
// generate selectivity info for each match against expr
bool
is_es_match = false;
is_es_match = false;
for (int64_t i = 0; OB_SUCC(ret) && i < match_exprs.count(); ++i) {
ObMatchFunRawExpr *match_expr = NULL;
uint64_t index_id = OB_INVALID_ID;
src/sql/optimizer/ob_join_order.h
浏览文件 @
df902a99
...
...
@@ -2962,7 +2962,8 @@ struct MergeKeyInfoHelper
static
double
calc_single_parallel_rows
(
double
rows
,
int64_t
parallel
);
int
init_basic_text_retrieval_info
(
uint64_t
table_id
,
uint64_t
ref_table_id
,
PathHelper
&
helper
);
PathHelper
&
helper
,
bool
&
is_es_match
);
int
extract_fts_preliminary_query_range
(
const
ObIArray
<
ColumnItem
>
&
range_columns
,
const
ObIArray
<
ObRawExpr
*>
&
predicates
,
const
ObTableSchema
*
table_schema
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录