Fix const number of fast parse and normal parse is different

This commit is contained in:
obdev
2023-05-10 13:17:17 +00:00
committed by ob-robot
parent d2424c13db
commit ddca87aa3d

View File

@ -1018,10 +1018,18 @@ int ObFastParserBase::process_hex_number(bool is_quote)
}
} else {
// 0X([0-9A-F])+
cur_token_type_ = PARAM_TOKEN;
while (is_hex(next_ch)) {
next_ch = raw_sql_.scan();
}
int64_t next_idf_pos = is_first_identifier_flags(raw_sql_.cur_pos_);
if (-1 != next_idf_pos) {
// it is possible that the next token is a string and needs to fall back to
// the position of quote
raw_sql_.cur_pos_ = pos;
cur_token_type_ = NORMAL_TOKEN;
} else {
cur_token_type_ = PARAM_TOKEN;
}
}
if (OB_SUCC(ret) && PARAM_TOKEN == cur_token_type_) {
char *buf = nullptr;