From 7fda92db9565b69d9218d0edb11099817dac39fe Mon Sep 17 00:00:00 2001 From: chimyue Date: Thu, 5 Dec 2024 07:45:44 +0000 Subject: [PATCH] fix parse bug --- src/objit/src/ob_llvm_di_helper.cpp | 18 +++++++++--------- src/sql/parser/parse_node.h | 2 +- src/sql/parser/sql_parser_base.h | 10 +++------- src/sql/parser/sql_parser_mysql_mode.y | 5 ++--- src/sql/resolver/ddl/ob_explain_resolver.cpp | 6 +++--- 5 files changed, 18 insertions(+), 23 deletions(-) diff --git a/src/objit/src/ob_llvm_di_helper.cpp b/src/objit/src/ob_llvm_di_helper.cpp index eb819b951..f17b4c502 100644 --- a/src/objit/src/ob_llvm_di_helper.cpp +++ b/src/objit/src/ob_llvm_di_helper.cpp @@ -34,9 +34,9 @@ namespace jit uint64_t ObLLVMDIType::get_size_bits() { return OB_ISNULL(v_) ? 0 : v_->getSizeInBits(); -} - -uint64_t ObLLVMDIType::get_align_bits() +} + +uint64_t ObLLVMDIType::get_align_bits() { return OB_ISNULL(v_) ? 0 : v_->getAlignInBits(); } @@ -161,9 +161,9 @@ int ObLLVMDIHelper::create_local_variable(const ObString &name, uint32_t arg_no, } else { var_ptr = (arg_no > 0) ? jc_->dbuilder_.createParameterVariable(sp, StringRef(name.ptr(), name.length()), - arg_no, file, line, type.get_v(), true) : - jc_->dbuilder_.createAutoVariable(sp, StringRef(name.ptr(), name.length()), - file, line, type.get_v(), true); + arg_no, file, line, type.get_v(), true) : + jc_->dbuilder_.createAutoVariable(sp, StringRef(name.ptr(), name.length()), + file, line, type.get_v(), true); if (OB_ISNULL(var_ptr)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to create local variable", K(name), K(ret)); @@ -221,9 +221,9 @@ int ObLLVMDIHelper::create_pointer_type(ObLLVMDIType &pointee_type, int ret = OB_SUCCESS; DIType *pte_type = pointee_type.get_v(); DIType *ptr_type = NULL; - if (OB_ISNULL(jc_)) { - ret = OB_NOT_INIT; - LOG_WARN("jc is NULL", K(ret)); + if (OB_ISNULL(jc_)) { + ret = OB_NOT_INIT; + LOG_WARN("jc is NULL", K(ret)); } else if (OB_ISNULL(ptr_type = jc_->dbuilder_.createPointerType(pte_type, 64, 64))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to create pointer type", K(ret)); diff --git a/src/sql/parser/parse_node.h b/src/sql/parser/parse_node.h index 665a4a1fc..24c15c890 100644 --- a/src/sql/parser/parse_node.h +++ b/src/sql/parser/parse_node.h @@ -62,7 +62,7 @@ enum SelectParserOffset PARSE_SELECT_FETCH_TEMP, //use to temporary store fetch clause in parser PARSE_SELECT_WITH_CHECK_OPTION, PARSE_SELECT_INTO_EXTRA,// ATTENTION!! SELECT_INTO_EXTRA must be the last one - PARSE_SELECT_MAX_IDX + PARSE_SELECT_MAX_IDX // = 24, ATTENTION!! adjust malloc_select_node(node, malloc_pool) after adding a new enum value }; enum GrantParseOffset diff --git a/src/sql/parser/sql_parser_base.h b/src/sql/parser/sql_parser_base.h index a7a6be663..c0b61ea65 100644 --- a/src/sql/parser/sql_parser_base.h +++ b/src/sql/parser/sql_parser_base.h @@ -1008,8 +1008,8 @@ for (int32_t _i = 0; _i < _yyleng; ++_i) { NULL, \ NULL, \ NULL, \ - NULL, \ - NULL); + NULL, /* PARSE_SELECT_WITH_CHECK_OPTION */ \ + NULL /* PARSE_SELECT_INTO_EXTRA */); // only used by setup_token_pos_info_and_dup_string for now #define check_ret(stmt, loc, extra) \ @@ -1391,11 +1391,7 @@ do {\ set_node->children_[0] = left_body; \ set_node->children_[1] = right_body; \ set_node->value_ = 2; \ - select_node = new_non_terminal_node(result->malloc_pool_, T_SELECT, PARSE_SELECT_MAX_IDX, NULL, NULL, NULL, NULL, NULL, \ - NULL, NULL, NULL, NULL, NULL, \ - NULL, NULL, NULL, NULL, NULL, \ - NULL, NULL, NULL, NULL, NULL, \ - NULL, NULL, NULL); \ + malloc_select_node(select_node, result->malloc_pool_); \ if (OB_ISNULL(select_node)) { \ if (OB_PARSER_SUCCESS == result->extra_errno_) { \ result->extra_errno_ = OB_PARSER_ERR_NO_MEMORY; \ diff --git a/src/sql/parser/sql_parser_mysql_mode.y b/src/sql/parser/sql_parser_mysql_mode.y index 8d79f0c2f..7bb65b717 100644 --- a/src/sql/parser/sql_parser_mysql_mode.y +++ b/src/sql/parser/sql_parser_mysql_mode.y @@ -47,8 +47,7 @@ extern int easy_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) malloc_terminal_node(display_node, result->malloc_pool_, display_type); \ } \ malloc_non_terminal_node(explain_stmt, result->malloc_pool_, T_EXPLAIN, 5, \ - type_node, display_node, stmt, into_table, set_statement_id); - + type_node, display_node, into_table, set_statement_id, stmt); %} %destructor {destroy_tree($$);} @@ -14551,7 +14550,7 @@ explain_or_desc relation_factor opt_desc_column_option | explain_or_desc FORMAT COMP_EQ format_name explainable_stmt { (void)($1); - malloc_non_terminal_node($$, result->malloc_pool_, T_EXPLAIN, 5, $4, NULL, $5, NULL, NULL); + malloc_non_terminal_node($$, result->malloc_pool_, T_EXPLAIN, 5, $4, NULL, NULL, NULL, $5); } ; diff --git a/src/sql/resolver/ddl/ob_explain_resolver.cpp b/src/sql/resolver/ddl/ob_explain_resolver.cpp index de88c6ee4..acdd310e6 100644 --- a/src/sql/resolver/ddl/ob_explain_resolver.cpp +++ b/src/sql/resolver/ddl/ob_explain_resolver.cpp @@ -19,9 +19,9 @@ using namespace sql; using namespace common; const static int64_t EXPLAIN_FORMAT = 0; const static int64_t EXPLAIN_DISPLAY_OPTION = 1; -const static int64_t EXPLAIN_CHILD_STMT = 2; -const static int64_t EXPLAIN_INTO_TABLE = 3; -const static int64_t EXPLAIN_STMT_ID = 4; +const static int64_t EXPLAIN_INTO_TABLE = 2; +const static int64_t EXPLAIN_STMT_ID = 3; +const static int64_t EXPLAIN_CHILD_STMT = 4; int ObExplainResolver::resolve(const ParseNode &parse_tree) { int ret = OB_SUCCESS;