fix stack not enough in parser

This commit is contained in:
jingtaoye35 2024-10-14 18:14:01 +00:00 committed by ob-robot
parent 20c8524579
commit 4e06646126
3 changed files with 4 additions and 25 deletions

View File

@ -994,12 +994,3 @@ ParseNode *adjust_inner_join_inner(int *error_code, ParseNode *inner_join, Parse
}
return ret_node;
}
extern int ob_backtrace_c(void **buffer, int size);
extern char *parray_c(char *buf, int64_t len, int64_t *array, int size);
char *parser_lbt(void **addr_buff, const size_t addr_size,
char *str_buff, const size_t str_size)
{
int size = ob_backtrace_c(addr_buff, addr_size);
return parray_c(str_buff, str_size, (int64_t *)addr_buff, size);
}

View File

@ -69,7 +69,6 @@ extern bool check_real_escape(const struct ObCharsetInfo *cs, char *str, int64_t
int64_t last_escape_check_pos);
int add_alias_name(ParseNode *node, ParseResult *result, int end);
extern char *parser_lbt(void **addr_buff, const size_t addr_size, char *str_buff, const size_t str_size);
#define ISSPACE(c) ((c) == ' ' || (c) == '\n' || (c) == '\r' || (c) == '\t' || (c) == '\f' || (c) == '\v')
@ -141,10 +140,10 @@ do {
if (OB_UNLIKELY(NULL == val_ptr)) \
{ \
((ParseResult *)yyextra)->extra_errno_ = OB_PARSER_ERR_NO_MEMORY; \
void *addrs[100]; \
char buf[1024]; \
char *print_str = parser_lbt(addrs, 100, buf, 1024); \
yyerror(yylloc, yyextra, "No more space for malloc, lbt: %s", print_str); \
yyerror(yylloc, yyextra, "No more space for malloc, start_col:%d, end_col:%d, line:%d", \
((ParseResult *)yyextra)->start_col_, \
((ParseResult *)yyextra)->end_col_, \
((ParseResult *)yyextra)->line_); \
return ERROR; \
} \
} while (0);

View File

@ -65,17 +65,6 @@ bool check_stack_overflow_c()
{
return 0;
}
int ob_backtrace_c(void **buffer, int size)
{
return 0;
}
char *parray_c(char *buf, int64_t len, int64_t *array, int size)
{
snprintf(buf, 0, "oceanbase");
return buf;
}
}
using namespace oceanbase::sql;