Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
天地威能
oceanbase
提交
543ec6c9
O
oceanbase
项目概览
天地威能
/
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,发现更多精彩内容 >>
提交
543ec6c9
编写于
11月 24, 2022
作者:
S
simonjoylet
提交者:
wangzelin.wzl
11月 24, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ddl task get schema with version
上级
c898272f
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
37 addition
and
1 deletion
+37
-1
src/rootserver/ddl_task/ob_constraint_task.cpp
src/rootserver/ddl_task/ob_constraint_task.cpp
+2
-0
src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp
src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp
+2
-0
src/rootserver/ddl_task/ob_ddl_retry_task.cpp
src/rootserver/ddl_task/ob_ddl_retry_task.cpp
+3
-1
src/rootserver/ddl_task/ob_ddl_task.cpp
src/rootserver/ddl_task/ob_ddl_task.cpp
+23
-0
src/rootserver/ddl_task/ob_ddl_task.h
src/rootserver/ddl_task/ob_ddl_task.h
+1
-0
src/rootserver/ddl_task/ob_drop_index_task.cpp
src/rootserver/ddl_task/ob_drop_index_task.cpp
+2
-0
src/rootserver/ddl_task/ob_index_build_task.cpp
src/rootserver/ddl_task/ob_index_build_task.cpp
+2
-0
src/rootserver/ddl_task/ob_modify_autoinc_task.cpp
src/rootserver/ddl_task/ob_modify_autoinc_task.cpp
+2
-0
未找到文件。
src/rootserver/ddl_task/ob_constraint_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -1752,6 +1752,8 @@ int ObConstraintTask::check_health()
need_retry_
=
false
;
}
else
if
(
OB_FAIL
(
refresh_status
()))
{
// refresh task status
LOG_WARN
(
"refresh status failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
refresh_schema_version
()))
{
LOG_WARN
(
"refresh schema version failed"
,
K
(
ret
));
}
else
{
ObMultiVersionSchemaService
&
schema_service
=
root_service
->
get_schema_service
();
ObSchemaGetterGuard
schema_guard
;
...
...
src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -1327,6 +1327,8 @@ int ObDDLRedefinitionTask::check_health()
need_retry_
=
false
;
}
else
if
(
OB_FAIL
(
refresh_status
()))
{
// refresh task status
LOG_WARN
(
"refresh status failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
refresh_schema_version
()))
{
LOG_WARN
(
"refresh schema version failed"
,
K
(
ret
));
}
else
{
ObMultiVersionSchemaService
&
schema_service
=
root_service
->
get_schema_service
();
ObSchemaGetterGuard
schema_guard
;
...
...
src/rootserver/ddl_task/ob_ddl_retry_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -447,6 +447,8 @@ int ObDDLRetryTask::check_health()
need_retry_
=
false
;
}
else
if
(
OB_FAIL
(
refresh_status
()))
{
LOG_WARN
(
"refresh status failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
refresh_schema_version
()))
{
LOG_WARN
(
"refresh schema version failed"
,
K
(
ret
));
}
if
(
ObDDLTaskStatus
::
FAIL
==
static_cast
<
ObDDLTaskStatus
>
(
task_status_
)
||
ObDDLTaskStatus
::
SUCCESS
==
static_cast
<
ObDDLTaskStatus
>
(
task_status_
))
{
...
...
src/rootserver/ddl_task/ob_ddl_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -364,6 +364,29 @@ int ObDDLTask::refresh_status()
return
ret
;
}
int
ObDDLTask
::
refresh_schema_version
()
{
int
ret
=
OB_SUCCESS
;
if
(
OB_UNLIKELY
(
!
is_inited_
))
{
ret
=
OB_NOT_INIT
;
LOG_WARN
(
"ObDDLTask has not been inited"
,
K
(
ret
));
}
else
if
(
schema_version_
>
0
&&
schema_version_
!=
UINT64_MAX
)
{
ObMultiVersionSchemaService
&
schema_service
=
ObMultiVersionSchemaService
::
get_instance
();
int64_t
refreshed_schema_version
=
0
;
if
(
OB_FAIL
(
schema_service
.
async_refresh_schema
(
tenant_id_
,
schema_version_
)))
{
LOG_WARN
(
"async refresh schema version failed"
,
K
(
ret
),
K
(
tenant_id_
),
K
(
schema_version_
));
}
else
if
(
OB_FAIL
(
schema_service
.
get_tenant_refreshed_schema_version
(
tenant_id_
,
refreshed_schema_version
)))
{
LOG_WARN
(
"get refreshed schema version failed"
,
K
(
ret
),
K
(
tenant_id_
));
}
else
if
(
refreshed_schema_version
<
schema_version_
)
{
ret
=
OB_SCHEMA_EAGAIN
;
if
(
REACH_TIME_INTERVAL
(
1000L
*
1000L
))
{
LOG_INFO
(
"tenant schema not refreshed to the target version"
,
K
(
ret
),
K
(
tenant_id_
),
K
(
schema_version_
),
K
(
refreshed_schema_version
));
}
}
}
return
ret
;
}
int
ObDDLTask
::
remove_task_record
()
{
int
ret
=
OB_SUCCESS
;
...
...
src/rootserver/ddl_task/ob_ddl_task.h
浏览文件 @
543ec6c9
...
...
@@ -299,6 +299,7 @@ public:
int
convert_to_record
(
ObDDLTaskRecord
&
task_record
,
common
::
ObIAllocator
&
allocator
);
int
switch_status
(
share
::
ObDDLTaskStatus
new_status
,
const
int
ret_code
);
int
refresh_status
();
int
refresh_schema_version
();
int
remove_task_record
();
int
report_error_code
(
const
ObString
&
forward_user_message
,
const
int64_t
affected_rows
=
0
);
int
wait_trans_end
(
...
...
src/rootserver/ddl_task/ob_drop_index_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -364,6 +364,8 @@ int ObDropIndexTask::check_switch_succ()
}
else
if
(
OB_ISNULL
(
root_service_
))
{
ret
=
OB_ERR_SYS
;
LOG_WARN
(
"error sys"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
refresh_schema_version
()))
{
LOG_WARN
(
"refresh schema version failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
root_service_
->
get_schema_service
().
get_tenant_schema_guard
(
tenant_id_
,
schema_guard
)))
{
LOG_WARN
(
"get tenant schema failed"
,
K
(
ret
),
K
(
tenant_id_
));
}
else
if
(
OB_FAIL
(
schema_guard
.
check_table_exist
(
tenant_id_
,
target_object_id_
,
is_index_exist
)))
{
...
...
src/rootserver/ddl_task/ob_index_build_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -395,6 +395,8 @@ int ObIndexBuildTask::check_health()
need_retry_
=
false
;
// only stop run the task, need not clean up task context
}
else
if
(
OB_FAIL
(
refresh_status
()))
{
// refresh task status
LOG_WARN
(
"refresh status failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
refresh_schema_version
()))
{
LOG_WARN
(
"refresh schema version failed"
,
K
(
ret
));
}
else
{
ObMultiVersionSchemaService
&
schema_service
=
root_service_
->
get_schema_service
();
ObSchemaGetterGuard
schema_guard
;
...
...
src/rootserver/ddl_task/ob_modify_autoinc_task.cpp
浏览文件 @
543ec6c9
...
...
@@ -544,6 +544,8 @@ int ObModifyAutoincTask::check_health()
need_retry_
=
false
;
}
else
if
(
OB_FAIL
(
refresh_status
()))
{
// refresh task status
LOG_WARN
(
"refresh status failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
refresh_schema_version
()))
{
LOG_WARN
(
"refresh schema version failed"
,
K
(
ret
));
}
else
{
ObMultiVersionSchemaService
&
schema_service
=
root_service
->
get_schema_service
();
ObSchemaGetterGuard
schema_guard
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录