Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Metz
oceanbase
提交
dcd9d2fa
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,发现更多精彩内容 >>
提交
dcd9d2fa
编写于
2月 15, 2022
作者:
L
leslieyuchen
提交者:
LINGuanRen
2月 15, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix print ddl log coredump casued by genearted column index
上级
e81af678
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
4 deletion
+19
-4
src/share/ob_index_builder_util.cpp
src/share/ob_index_builder_util.cpp
+19
-4
未找到文件。
src/share/ob_index_builder_util.cpp
浏览文件 @
dcd9d2fa
...
...
@@ -498,9 +498,13 @@ int ObIndexBuilderUtil::adjust_fulltext_args(
int
ret
=
OB_SUCCESS
;
ObIArray
<
ObString
>&
fulltext_columns
=
arg
.
fulltext_columns_
;
ObIArray
<
ObColumnSortItem
>&
sort_items
=
arg
.
index_columns_
;
ObIAllocator
*
allocator
=
arg
.
index_schema_
.
get_allocator
();
ObArray
<
ObColumnSortItem
>
new_sort_items
;
uint64_t
virtual_column_id
=
OB_INVALID_ID
;
if
(
fulltext_columns
.
count
()
>
0
)
{
if
(
OB_ISNULL
(
allocator
))
{
ret
=
OB_ALLOCATE_MEMORY_FAILED
;
LOG_WARN
(
"allocator is null"
,
K
(
ret
));
}
else
if
(
fulltext_columns
.
count
()
>
0
)
{
OrderFTColumns
order_ft_columns
;
int64_t
ft_begin_index
=
0
;
// first column idx in ft index
int64_t
ft_end_index
=
0
;
// last column idx in ft index
...
...
@@ -534,7 +538,9 @@ int ObIndexBuilderUtil::adjust_fulltext_args(
LOG_WARN
(
"generate fulltext column failed"
,
K
(
ret
));
}
else
if
(
OB_ISNULL
(
tmp_ft_col
))
{
LOG_WARN
(
"fulltext column schema is null"
,
K
(
ret
));
}
else
if
(
FALSE_IT
(
ft_sort_item
.
column_name_
=
tmp_ft_col
->
get_column_name_str
()))
{
}
else
if
(
OB_FAIL
(
ob_write_string
(
*
allocator
,
tmp_ft_col
->
get_column_name_str
(),
ft_sort_item
.
column_name_
)))
{
// to keep the memory lifetime of column_name consistent with index_arg
LOG_WARN
(
"deep copy column name failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
new_sort_items
.
push_back
(
ft_sort_item
)))
{
LOG_WARN
(
"store new sort items failed"
,
K
(
ret
));
}
else
if
(
data_schema
.
get_column_count
()
>
old_cnt
)
{
...
...
@@ -557,12 +563,17 @@ int ObIndexBuilderUtil::adjust_ordinary_index_column_args(
ObCreateIndexArg
&
arg
,
ObTableSchema
&
data_schema
,
ObIArray
<
ObColumnSchemaV2
*>&
gen_columns
)
{
int
ret
=
OB_SUCCESS
;
ObIArray
<
ObColumnSortItem
>&
sort_items
=
arg
.
index_columns_
;
ObIAllocator
*
allocator
=
arg
.
index_schema_
.
get_allocator
();
ObIArray
<
ObColumnSortItem
>
&
sort_items
=
arg
.
index_columns_
;
ObArray
<
ObColumnSortItem
>
new_sort_items
;
ObWorker
::
CompatMode
compat_mode
=
ObWorker
::
CompatMode
::
MYSQL
;
uint64_t
tenant_id
=
extract_tenant_id
(
data_schema
.
get_table_id
());
ObCompatModeGetter
::
get_tenant_mode
(
tenant_id
,
compat_mode
);
CompatModeGuard
compat_guard
(
compat_mode
);
if
(
OB_ISNULL
(
allocator
))
{
ret
=
OB_ERR_UNEXPECTED
;
LOG_WARN
(
"allocator is null"
,
K
(
ret
));
}
for
(
int64_t
i
=
0
;
OB_SUCC
(
ret
)
&&
i
<
sort_items
.
count
();
++
i
)
{
int64_t
old_cnt
=
data_schema
.
get_column_count
();
ObColumnSortItem
new_sort_item
=
sort_items
.
at
(
i
);
...
...
@@ -628,7 +639,11 @@ int ObIndexBuilderUtil::adjust_ordinary_index_column_args(
}
}
if
(
OB_SUCC
(
ret
))
{
if
(
OB_FAIL
(
new_sort_items
.
push_back
(
new_sort_item
)))
{
ObString
tmp_name
=
new_sort_item
.
column_name_
;
// Keep the memory lifetime of column_name consistent with index_arg
if
(
OB_FAIL
(
ob_write_string
(
*
allocator
,
tmp_name
,
new_sort_item
.
column_name_
)))
{
LOG_WARN
(
"deep copy column name failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
new_sort_items
.
push_back
(
new_sort_item
)))
{
LOG_WARN
(
"store new sort item failed"
,
K
(
ret
),
K
(
new_sort_item
));
}
else
if
(
data_schema
.
get_column_count
()
>
old_cnt
)
{
LOG_INFO
(
"column info"
,
KPC
(
gen_col
),
K
(
old_cnt
),
K
(
data_schema
.
get_column_count
()));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录