Fix the bug of creating multiple indexes on materialized view
This commit is contained in:
@ -450,6 +450,7 @@ int ObCreateIndexResolver::resolve(const ParseNode &parse_tree)
|
||||
ParseNode &parse_node = const_cast<ParseNode &>(parse_tree);
|
||||
ParseNode *if_not_exist_node = NULL;
|
||||
const ObTableSchema *tbl_schema = NULL;
|
||||
const ObTableSchema *data_tbl_schema = NULL;
|
||||
bool has_synonym = false;
|
||||
ObString new_db_name;
|
||||
ObString new_tbl_name;
|
||||
@ -532,12 +533,14 @@ int ObCreateIndexResolver::resolve(const ParseNode &parse_tree)
|
||||
index_schema.set_tenant_id(session_info_->get_effective_tenant_id());
|
||||
crt_idx_stmt->set_table_id(mv_container_table_schema->get_table_id());
|
||||
crt_idx_stmt->set_table_name(mv_container_table_name);
|
||||
data_tbl_schema = mv_container_table_schema;
|
||||
}
|
||||
} else {
|
||||
is_oracle_temp_table_ = (tbl_schema->is_oracle_tmp_table());
|
||||
ObTableSchema &index_schema = crt_idx_stmt->get_create_index_arg().index_schema_;
|
||||
index_schema.set_tenant_id(session_info_->get_effective_tenant_id());
|
||||
crt_idx_stmt->set_table_id(tbl_schema->get_table_id());
|
||||
data_tbl_schema = tbl_schema;
|
||||
}
|
||||
if (OB_SUCC(ret) && has_synonym) {
|
||||
ObString tmp_new_db_name;
|
||||
@ -560,14 +563,14 @@ int ObCreateIndexResolver::resolve(const ParseNode &parse_tree)
|
||||
parse_tree.children_[0]->value_,
|
||||
parse_tree.children_[3],
|
||||
crt_idx_stmt,
|
||||
tbl_schema))) {
|
||||
data_tbl_schema))) {
|
||||
LOG_WARN("fail to resolve index column node", K(ret));
|
||||
} else if (NULL != parse_node.children_[4]
|
||||
&& OB_FAIL(resolve_index_method_node(parse_node.children_[4], crt_idx_stmt))) {
|
||||
LOG_WARN("fail to resolve index method node", K(ret));
|
||||
} else if (OB_FAIL(resolve_index_option_node(parse_node.children_[3],
|
||||
crt_idx_stmt,
|
||||
tbl_schema,
|
||||
data_tbl_schema,
|
||||
NULL != parse_node.children_[5]))) {
|
||||
LOG_WARN("fail to resolve index option node", K(ret));
|
||||
} else if (global_ && OB_FAIL(generate_global_index_schema(crt_idx_stmt))) {
|
||||
|
Reference in New Issue
Block a user