diff --git a/src/sql/resolver/dml/ob_select_resolver.cpp b/src/sql/resolver/dml/ob_select_resolver.cpp index 89a7ef85f..e0e8ebf9d 100644 --- a/src/sql/resolver/dml/ob_select_resolver.cpp +++ b/src/sql/resolver/dml/ob_select_resolver.cpp @@ -1069,7 +1069,9 @@ int ObSelectResolver::resolve_normal_query(const ParseNode &parse_tree) OZ( resolve_with_clause(parse_tree.children_[PARSE_SELECT_WITH]) ); /* normal select */ - select_stmt->assign_set_op(ObSelectStmt::NONE); + if (OB_SUCC(ret)) { + select_stmt->assign_set_op(ObSelectStmt::NONE); + } OZ( resolve_query_options(parse_tree.children_[PARSE_SELECT_DISTINCT]) ); if (OB_SUCC(ret) && is_only_full_group_by_on(session_info_->get_sql_mode())) { OZ( standard_group_checker_.init() ); diff --git a/src/sql/resolver/ob_stmt.h b/src/sql/resolver/ob_stmt.h index f091be41a..5aae91392 100644 --- a/src/sql/resolver/ob_stmt.h +++ b/src/sql/resolver/ob_stmt.h @@ -623,6 +623,8 @@ public: stmt = NULL; } else if (OB_FAIL(stmt->init_stmt(table_hash_allocator_, wrapper_allocator_))) { SQL_RESV_LOG(WARN, "failed to init tables hash", K(ret)); + stmt->~StmtType(); + stmt = NULL; } } return ret;