Fix prepare stmt error 4016

This commit is contained in:
obdev
2024-01-22 09:42:40 +00:00
committed by ob-robot
parent b3c59d1dc5
commit 7acad5e931
3 changed files with 11 additions and 3 deletions

View File

@ -3539,10 +3539,14 @@ int ObNumber::to_sci_str_(ObString &num_str, char *buf,
}
buf[digit_start_pos] = '1';
buf[digit_start_pos + 1] = '.';
if ('-' == pow_str[1]) {
--pow_size;
} else {
++pow_size;
}
}
}
}
// fill exponent part
if (OB_SUCC(ret)) {
if (OB_FAIL(databuff_printf(pow_str, sizeof(pow_str), pow_pos, "%ld", pow_size))) {

View File

@ -1696,10 +1696,14 @@ int ObNFMBase::num_str_to_sci(const common::ObString &num_str, const int32_t sca
if (decimal_appear) {
buf[digit_start_pos + 1] = '.';
}
if ('-' == pow_str[1]) {
--pow_size;
} else {
++pow_size;
}
}
}
}
if (OB_SUCC(ret) && is_tm) {
int32_t offset = 0;
// 1.0000000000000000000000000000000000E+65 --> 1E+65

View File

@ -54,7 +54,7 @@ int ObPrepareResolver::resolve(const ParseNode &parse_tree)
prepare_stmt->set_prepare_sql(stmt_expr);
}
} else {
ret = OB_ERR_UNEXPECTED;
ret = OB_ERR_PARSER_SYNTAX;
LOG_WARN("invalid name node", K(name_node->type_), K(ret));
}
}