[CP] Reset the system view status when restarting the server to ensure the eventual consistency of the system vie
This commit is contained in:
committed by
ob-robot
parent
6676674171
commit
e1769950fd
@ -235,7 +235,10 @@ int ObInfoSchemaColumnsTable::iterate_table_schema_array(const bool is_filter_ta
|
|||||||
}
|
}
|
||||||
// for system view, its column info depend on hard code, so its valid by default, but do not have column meta
|
// for system view, its column info depend on hard code, so its valid by default, but do not have column meta
|
||||||
// status default value is valid, old version also work whether what status it read because its column count = 0
|
// status default value is valid, old version also work whether what status it read because its column count = 0
|
||||||
bool view_is_invalid = (0 == table_schema->get_object_status() || 0 == table_schema->get_column_count());
|
bool view_is_invalid = (0 == table_schema->get_object_status()
|
||||||
|
|| 0 == table_schema->get_column_count()
|
||||||
|
|| (table_schema->is_sys_view()
|
||||||
|
&& table_schema->get_schema_version() <= GCTX.start_time_));
|
||||||
if (OB_FAIL(ret)) {
|
if (OB_FAIL(ret)) {
|
||||||
} else if (is_normal_view && view_is_invalid) {
|
} else if (is_normal_view && view_is_invalid) {
|
||||||
mem_context_->reset_remain_one_page();
|
mem_context_->reset_remain_one_page();
|
||||||
|
|||||||
@ -5193,8 +5193,13 @@ int ObSQLUtils::async_recompile_view(const share::schema::ObTableSchema &old_vie
|
|||||||
} else if (OB_ISNULL(GCTX.sql_engine_)) {
|
} else if (OB_ISNULL(GCTX.sql_engine_)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("failed to get sql engine", K(ret));
|
LOG_WARN("failed to get sql engine", K(ret));
|
||||||
} else if ((0 == old_view_schema.get_object_status() || 0 == old_view_schema.get_column_count())) {
|
} else if ((0 == old_view_schema.get_object_status()
|
||||||
if (!reset_column_infos) {
|
|| 0 == old_view_schema.get_column_count()
|
||||||
|
|| (old_view_schema.is_sys_view()
|
||||||
|
&& old_view_schema.get_schema_version() <= GCTX.start_time_))) {
|
||||||
|
if (old_view_schema.is_sys_view() && GCONF.in_upgrade_mode()) {
|
||||||
|
//do not recompile sys view until upgrade finish
|
||||||
|
} else if (!reset_column_infos) {
|
||||||
ObArray<ObString> dummy_column_list;
|
ObArray<ObString> dummy_column_list;
|
||||||
if (OB_ISNULL(select_stmt)) {
|
if (OB_ISNULL(select_stmt)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
|||||||
Reference in New Issue
Block a user