Fix const number of fast parse and normal parse is different
This commit is contained in:
@ -1018,10 +1018,18 @@ int ObFastParserBase::process_hex_number(bool is_quote)
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 0X([0-9A-F])+
|
// 0X([0-9A-F])+
|
||||||
cur_token_type_ = PARAM_TOKEN;
|
|
||||||
while (is_hex(next_ch)) {
|
while (is_hex(next_ch)) {
|
||||||
next_ch = raw_sql_.scan();
|
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_) {
|
if (OB_SUCC(ret) && PARAM_TOKEN == cur_token_type_) {
|
||||||
char *buf = nullptr;
|
char *buf = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user