mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into gleb.loc:/home/uchum/work/bk/5.0-opt-28625 sql/item_func.cc: Auto merged
This commit is contained in:
@@ -362,3 +362,29 @@ cast(-19999999999999999999 as signed)
|
|||||||
-9223372036854775808
|
-9223372036854775808
|
||||||
Warnings:
|
Warnings:
|
||||||
Error 1292 Truncated incorrect DECIMAL value: ''
|
Error 1292 Truncated incorrect DECIMAL value: ''
|
||||||
|
select -9223372036854775808;
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def -9223372036854775808 8 20 20 N 32897 0 63
|
||||||
|
-9223372036854775808
|
||||||
|
-9223372036854775808
|
||||||
|
select -(9223372036854775808);
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def -(9223372036854775808) 8 20 20 N 32897 0 63
|
||||||
|
-(9223372036854775808)
|
||||||
|
-9223372036854775808
|
||||||
|
select -((9223372036854775808));
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def -((9223372036854775808)) 8 20 20 N 32897 0 63
|
||||||
|
-((9223372036854775808))
|
||||||
|
-9223372036854775808
|
||||||
|
select -(-(9223372036854775808));
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def -(-(9223372036854775808)) 246 21 19 N 129 0 63
|
||||||
|
-(-(9223372036854775808))
|
||||||
|
9223372036854775808
|
||||||
|
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||||
|
--9223372036854775808 ---9223372036854775808 ----9223372036854775808
|
||||||
|
9223372036854775808 -9223372036854775808 9223372036854775808
|
||||||
|
select -(-9223372036854775808), -(-(-9223372036854775808));
|
||||||
|
-(-9223372036854775808) -(-(-9223372036854775808))
|
||||||
|
9223372036854775808 -9223372036854775808
|
||||||
|
@@ -294,3 +294,16 @@ drop table t1;
|
|||||||
|
|
||||||
select cast(19999999999999999999 as signed);
|
select cast(19999999999999999999 as signed);
|
||||||
select cast(-19999999999999999999 as signed);
|
select cast(-19999999999999999999 as signed);
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #28625: -9223372036854775808 doesn't fit in BIGINT.
|
||||||
|
#
|
||||||
|
|
||||||
|
--enable_metadata
|
||||||
|
select -9223372036854775808;
|
||||||
|
select -(9223372036854775808);
|
||||||
|
select -((9223372036854775808));
|
||||||
|
select -(-(9223372036854775808));
|
||||||
|
--disable_metadata
|
||||||
|
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||||
|
select -(-9223372036854775808), -(-(-9223372036854775808));
|
||||||
|
@@ -1523,9 +1523,12 @@ void Item_func_neg::fix_length_and_dec()
|
|||||||
Use val() to get value as arg_type doesn't mean that item is
|
Use val() to get value as arg_type doesn't mean that item is
|
||||||
Item_int or Item_real due to existence of Item_param.
|
Item_int or Item_real due to existence of Item_param.
|
||||||
*/
|
*/
|
||||||
if (hybrid_type == INT_RESULT &&
|
if (hybrid_type == INT_RESULT && args[0]->const_item())
|
||||||
args[0]->type() == INT_ITEM &&
|
{
|
||||||
((ulonglong) args[0]->val_int() >= (ulonglong) LONGLONG_MIN))
|
longlong val= args[0]->val_int();
|
||||||
|
if ((ulonglong) val >= (ulonglong) LONGLONG_MIN &&
|
||||||
|
((ulonglong) val != (ulonglong) LONGLONG_MIN ||
|
||||||
|
args[0]->type() != INT_ITEM))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Ensure that result is converted to DECIMAL, as longlong can't hold
|
Ensure that result is converted to DECIMAL, as longlong can't hold
|
||||||
@@ -1534,6 +1537,7 @@ void Item_func_neg::fix_length_and_dec()
|
|||||||
hybrid_type= DECIMAL_RESULT;
|
hybrid_type= DECIMAL_RESULT;
|
||||||
DBUG_PRINT("info", ("Type changed: DECIMAL_RESULT"));
|
DBUG_PRINT("info", ("Type changed: DECIMAL_RESULT"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
unsigned_flag= 0;
|
unsigned_flag= 0;
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user