Fix the bug of incorrect result from bit cast to decimal, when the value is out of int64_t
This commit is contained in:
@ -6100,7 +6100,7 @@ CAST_FUNC_NAME(bit, number)
|
|||||||
{
|
{
|
||||||
EVAL_ARG()
|
EVAL_ARG()
|
||||||
{
|
{
|
||||||
int64_t in_val = child_res->get_uint();
|
uint64_t in_val = child_res->get_uint();
|
||||||
ObNumStackOnceAlloc tmp_alloc;
|
ObNumStackOnceAlloc tmp_alloc;
|
||||||
number::ObNumber number;
|
number::ObNumber number;
|
||||||
if (OB_FAIL(number.from(in_val, tmp_alloc))) {
|
if (OB_FAIL(number.from(in_val, tmp_alloc))) {
|
||||||
@ -6357,7 +6357,7 @@ CAST_FUNC_NAME(bit, decimalint)
|
|||||||
{
|
{
|
||||||
EVAL_ARG()
|
EVAL_ARG()
|
||||||
{
|
{
|
||||||
int64_t in_val = child_res->get_uint();
|
uint64_t in_val = child_res->get_uint();
|
||||||
ObDecimalIntBuilder tmp_alloc;
|
ObDecimalIntBuilder tmp_alloc;
|
||||||
ObDecimalInt *decint = nullptr;
|
ObDecimalInt *decint = nullptr;
|
||||||
int32_t val_len = 0;
|
int32_t val_len = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user