fix bug for sequence
This commit is contained in:
@ -89,13 +89,18 @@ int ObAlterSequenceResolver::resolve(const ParseNode& parse_tree)
|
||||
}
|
||||
|
||||
/* sequence options */
|
||||
if (OB_SUCC(ret) && NULL != parse_tree.children_[1]) {
|
||||
if (OB_UNLIKELY(T_SEQUENCE_OPTION_LIST != parse_tree.children_[1]->type_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_ERROR("invalid option node type", K(parse_tree.children_[1]->type_), K(ret));
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_NOT_NULL(parse_tree.children_[1])) {
|
||||
if (OB_UNLIKELY(T_SEQUENCE_OPTION_LIST != parse_tree.children_[1]->type_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_ERROR("invalid option node type", K(parse_tree.children_[1]->type_), K(ret));
|
||||
} else {
|
||||
ObSequenceResolver<ObAlterSequenceStmt> resolver;
|
||||
ret = resolver.resolve_sequence_options(mystmt, parse_tree.children_[1]);
|
||||
}
|
||||
} else {
|
||||
ObSequenceResolver<ObAlterSequenceStmt> resolver;
|
||||
ret = resolver.resolve_sequence_options(mystmt, parse_tree.children_[1]);
|
||||
ret = OB_ERR_REQUIRE_ALTER_SEQ_OPTION;
|
||||
LOG_USER_ERROR(OB_ERR_REQUIRE_ALTER_SEQ_OPTION);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
||||
@ -1449,7 +1449,7 @@ int ObCreateTableResolver::resolve_table_elements_from_select(const ParseNode& p
|
||||
ParseNode* sub_sel_node = parse_tree.children_[CREATE_TABLE_AS_SEL_NUM_CHILD - 1];
|
||||
ObSelectStmt* select_stmt = NULL;
|
||||
ObSelectResolver select_resolver(params_);
|
||||
select_resolver.params_.is_from_create_view_ = true;
|
||||
select_resolver.params_.is_from_create_table_ = true;
|
||||
// select stmt can not see upper insert stmt.
|
||||
select_resolver.set_parent_namespace_resolver(NULL);
|
||||
if (OB_ISNULL(session_info_)) {
|
||||
@ -1510,6 +1510,8 @@ int ObCreateTableResolver::resolve_table_elements_from_select(const ParseNode& p
|
||||
LOG_WARN("invalid null expr in select_item", K(ret), K(select_item.expr_));
|
||||
} else if (select_item.is_real_alias_ || T_REF_COLUMN == select_item.expr_->get_expr_type()) {
|
||||
// do nothing
|
||||
} else if (select_item.expr_->get_expr_type() == T_FUN_SYS_SEQ_NEXTVAL) {
|
||||
// do nothing
|
||||
} else {
|
||||
ret = OB_NO_COLUMN_ALIAS;
|
||||
LOG_USER_ERROR(OB_NO_COLUMN_ALIAS, select_item.expr_name_.length(), select_item.expr_name_.ptr());
|
||||
|
||||
Reference in New Issue
Block a user