fix invalid str off in ps mode
This commit is contained in:
@ -1379,6 +1379,7 @@ BEGIN(in_c_comment);
|
|||||||
}
|
}
|
||||||
if (IS_FAST_PARAMETERIZE) {
|
if (IS_FAST_PARAMETERIZE) {
|
||||||
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
||||||
|
yylval->node->sql_str_off_ = yylloc->first_column - 1;
|
||||||
check_malloc(yylval->node->raw_text_);
|
check_malloc(yylval->node->raw_text_);
|
||||||
STORE_PARAM_NODE();
|
STORE_PARAM_NODE();
|
||||||
} else {
|
} else {
|
||||||
@ -1399,6 +1400,7 @@ BEGIN(in_c_comment);
|
|||||||
yylval->node->value_ = get_question_mark(&p->question_mark_ctx_, p->malloc_pool_, yytext);
|
yylval->node->value_ = get_question_mark(&p->question_mark_ctx_, p->malloc_pool_, yytext);
|
||||||
if (IS_FAST_PARAMETERIZE) {
|
if (IS_FAST_PARAMETERIZE) {
|
||||||
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
||||||
|
yylval->node->sql_str_off_ = yylloc->first_column - 1;
|
||||||
check_malloc(yylval->node->raw_text_);
|
check_malloc(yylval->node->raw_text_);
|
||||||
STORE_PARAM_NODE();
|
STORE_PARAM_NODE();
|
||||||
} else {
|
} else {
|
||||||
@ -1424,6 +1426,7 @@ BEGIN(in_c_comment);
|
|||||||
}
|
}
|
||||||
if (IS_FAST_PARAMETERIZE) {
|
if (IS_FAST_PARAMETERIZE) {
|
||||||
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
||||||
|
yylval->node->sql_str_off_ = yylloc->first_column - 1;
|
||||||
check_malloc(yylval->node->raw_text_);
|
check_malloc(yylval->node->raw_text_);
|
||||||
STORE_PARAM_NODE();
|
STORE_PARAM_NODE();
|
||||||
} else {
|
} else {
|
||||||
@ -1443,6 +1446,7 @@ BEGIN(in_c_comment);
|
|||||||
yylval->node->value_ = get_question_mark(&p->question_mark_ctx_, p->malloc_pool_, yytext);
|
yylval->node->value_ = get_question_mark(&p->question_mark_ctx_, p->malloc_pool_, yytext);
|
||||||
if (IS_FAST_PARAMETERIZE) {
|
if (IS_FAST_PARAMETERIZE) {
|
||||||
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
yylval->node->raw_text_ = parse_strdup(yytext, p->malloc_pool_, &(yylval->node->text_len_));
|
||||||
|
yylval->node->sql_str_off_ = yylloc->first_column - 1;
|
||||||
check_malloc(yylval->node->raw_text_);
|
check_malloc(yylval->node->raw_text_);
|
||||||
STORE_PARAM_NODE();
|
STORE_PARAM_NODE();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -2669,6 +2669,7 @@ MOD '(' expr ',' expr ')'
|
|||||||
malloc_terminal_node(param_node, result->malloc_pool_, T_SFU_DOUBLE);
|
malloc_terminal_node(param_node, result->malloc_pool_, T_SFU_DOUBLE);
|
||||||
int64_t len = strlen("2.718281828459045");
|
int64_t len = strlen("2.718281828459045");
|
||||||
param_node->str_value_ = parse_strndup("2.718281828459045", len, result->malloc_pool_);
|
param_node->str_value_ = parse_strndup("2.718281828459045", len, result->malloc_pool_);
|
||||||
|
param_node->is_hidden_const_ = 1;
|
||||||
if (OB_UNLIKELY(NULL == param_node->str_value_)) {
|
if (OB_UNLIKELY(NULL == param_node->str_value_)) {
|
||||||
yyerror(NULL, result, "No more space for mallocing string\n");
|
yyerror(NULL, result, "No more space for mallocing string\n");
|
||||||
YYABORT_NO_MEMORY;
|
YYABORT_NO_MEMORY;
|
||||||
@ -2686,6 +2687,7 @@ MOD '(' expr ',' expr ')'
|
|||||||
malloc_terminal_node(param_node, result->malloc_pool_, T_SFU_DOUBLE);
|
malloc_terminal_node(param_node, result->malloc_pool_, T_SFU_DOUBLE);
|
||||||
int64_t len = strlen("2.718281828459045");
|
int64_t len = strlen("2.718281828459045");
|
||||||
param_node->str_value_ = parse_strndup("2.718281828459045", len, result->malloc_pool_);
|
param_node->str_value_ = parse_strndup("2.718281828459045", len, result->malloc_pool_);
|
||||||
|
param_node->is_hidden_const_ = 1;
|
||||||
if (OB_UNLIKELY(NULL == param_node->str_value_)) {
|
if (OB_UNLIKELY(NULL == param_node->str_value_)) {
|
||||||
yyerror(NULL, result, "No more space for mallocing string\n");
|
yyerror(NULL, result, "No more space for mallocing string\n");
|
||||||
YYABORT_NO_MEMORY;
|
YYABORT_NO_MEMORY;
|
||||||
|
|||||||
Reference in New Issue
Block a user