bugfix : json object key value with colon && timestamp_tz return value

This commit is contained in:
obdev
2023-02-07 17:49:06 +08:00
committed by ob-robot
parent c3eb8f3b5a
commit a9d66dae7a
3 changed files with 72 additions and 2 deletions

View File

@ -2587,6 +2587,8 @@ int ObFastParserOracle::process_identifier(bool is_number_begin)
int ObFastParserOracle::parse_next_token()
{
int ret = OB_SUCCESS;
char last_ch;
last_ch = '0';
while (OB_SUCC(ret) && !raw_sql_.is_search_end()) {
process_leading_space();
char ch = raw_sql_.char_at(raw_sql_.cur_pos_);
@ -2659,7 +2661,7 @@ int ObFastParserOracle::parse_next_token()
break;
}
case ':': {
if (-1 != is_first_identifier_flags(raw_sql_.cur_pos_ + 1) || is_digit(raw_sql_.peek())) {
if ((-1 != is_first_identifier_flags(raw_sql_.cur_pos_ + 1) || is_digit(raw_sql_.peek())) && last_ch != '\'') {
raw_sql_.scan();
OZ (process_ps_statement());
} else {
@ -2701,6 +2703,7 @@ int ObFastParserOracle::parse_next_token()
break;
}
} // end switch
last_ch = ch;
OX (process_token());
} // end while
if (OB_SUCC(ret)) {