mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into gleb.loc:/home/uchum/work/bk/5.1-opt
This commit is contained in:
@ -362,6 +362,32 @@ 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
|
||||||
create table t1 select -9223372036854775808 bi;
|
create table t1 select -9223372036854775808 bi;
|
||||||
describe t1;
|
describe t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
|
@ -2394,4 +2394,80 @@ C
|
|||||||
2707236321
|
2707236321
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
SELECT LOCATE('foo', NULL) FROM DUAL;
|
||||||
|
LOCATE('foo', NULL)
|
||||||
|
NULL
|
||||||
|
SELECT LOCATE(NULL, 'o') FROM DUAL;
|
||||||
|
LOCATE(NULL, 'o')
|
||||||
|
NULL
|
||||||
|
SELECT LOCATE(NULL, NULL) FROM DUAL;
|
||||||
|
LOCATE(NULL, NULL)
|
||||||
|
NULL
|
||||||
|
SELECT LOCATE('foo', NULL) IS NULL FROM DUAL;
|
||||||
|
LOCATE('foo', NULL) IS NULL
|
||||||
|
1
|
||||||
|
SELECT LOCATE(NULL, 'o') IS NULL FROM DUAL;
|
||||||
|
LOCATE(NULL, 'o') IS NULL
|
||||||
|
1
|
||||||
|
SELECT LOCATE(NULL, NULL) IS NULL FROM DUAL;
|
||||||
|
LOCATE(NULL, NULL) IS NULL
|
||||||
|
1
|
||||||
|
SELECT ISNULL(LOCATE('foo', NULL)) FROM DUAL;
|
||||||
|
ISNULL(LOCATE('foo', NULL))
|
||||||
|
1
|
||||||
|
SELECT ISNULL(LOCATE(NULL, 'o')) FROM DUAL;
|
||||||
|
ISNULL(LOCATE(NULL, 'o'))
|
||||||
|
1
|
||||||
|
SELECT ISNULL(LOCATE(NULL, NULL)) FROM DUAL;
|
||||||
|
ISNULL(LOCATE(NULL, NULL))
|
||||||
|
1
|
||||||
|
SELECT LOCATE('foo', NULL) <=> NULL FROM DUAL;
|
||||||
|
LOCATE('foo', NULL) <=> NULL
|
||||||
|
1
|
||||||
|
SELECT LOCATE(NULL, 'o') <=> NULL FROM DUAL;
|
||||||
|
LOCATE(NULL, 'o') <=> NULL
|
||||||
|
1
|
||||||
|
SELECT LOCATE(NULL, NULL) <=> NULL FROM DUAL;
|
||||||
|
LOCATE(NULL, NULL) <=> NULL
|
||||||
|
1
|
||||||
|
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a varchar(10), p varchar(10));
|
||||||
|
INSERT INTO t1 VALUES (1, 'foo', 'o');
|
||||||
|
INSERT INTO t1 VALUES (2, 'foo', NULL);
|
||||||
|
INSERT INTO t1 VALUES (3, NULL, 'o');
|
||||||
|
INSERT INTO t1 VALUES (4, NULL, NULL);
|
||||||
|
SELECT id, LOCATE(a,p) FROM t1;
|
||||||
|
id LOCATE(a,p)
|
||||||
|
1 0
|
||||||
|
2 NULL
|
||||||
|
3 NULL
|
||||||
|
4 NULL
|
||||||
|
SELECT id, LOCATE(a,p) IS NULL FROM t1;
|
||||||
|
id LOCATE(a,p) IS NULL
|
||||||
|
1 0
|
||||||
|
2 1
|
||||||
|
3 1
|
||||||
|
4 1
|
||||||
|
SELECT id, ISNULL(LOCATE(a,p)) FROM t1;
|
||||||
|
id ISNULL(LOCATE(a,p))
|
||||||
|
1 0
|
||||||
|
2 1
|
||||||
|
3 1
|
||||||
|
4 1
|
||||||
|
SELECT id, LOCATE(a,p) <=> NULL FROM t1;
|
||||||
|
id LOCATE(a,p) <=> NULL
|
||||||
|
1 0
|
||||||
|
2 1
|
||||||
|
3 1
|
||||||
|
4 1
|
||||||
|
SELECT id FROM t1 WHERE LOCATE(a,p) IS NULL;
|
||||||
|
id
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
SELECT id FROM t1 WHERE LOCATE(a,p) <=> NULL;
|
||||||
|
id
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -295,6 +295,22 @@ 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# PS protocol gives different metadata for `Max length' column
|
||||||
|
--disable_ps_protocol
|
||||||
|
--enable_metadata
|
||||||
|
select -9223372036854775808;
|
||||||
|
select -(9223372036854775808);
|
||||||
|
select -((9223372036854775808));
|
||||||
|
select -(-(9223372036854775808));
|
||||||
|
--disable_metadata
|
||||||
|
--endble_ps_protocol
|
||||||
|
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||||
|
select -(-9223372036854775808), -(-(-9223372036854775808));
|
||||||
|
|
||||||
# Bug #28005 Partitions: can't use -9223372036854775808
|
# Bug #28005 Partitions: can't use -9223372036854775808
|
||||||
create table t1 select -9223372036854775808 bi;
|
create table t1 select -9223372036854775808 bi;
|
||||||
describe t1;
|
describe t1;
|
||||||
|
@ -1183,4 +1183,37 @@ SELECT * FROM (SELECT * FROM v1) x;
|
|||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #27932: LOCATE with argument evaluated to NULL
|
||||||
|
#
|
||||||
|
|
||||||
|
SELECT LOCATE('foo', NULL) FROM DUAL;
|
||||||
|
SELECT LOCATE(NULL, 'o') FROM DUAL;
|
||||||
|
SELECT LOCATE(NULL, NULL) FROM DUAL;
|
||||||
|
SELECT LOCATE('foo', NULL) IS NULL FROM DUAL;
|
||||||
|
SELECT LOCATE(NULL, 'o') IS NULL FROM DUAL;
|
||||||
|
SELECT LOCATE(NULL, NULL) IS NULL FROM DUAL;
|
||||||
|
SELECT ISNULL(LOCATE('foo', NULL)) FROM DUAL;
|
||||||
|
SELECT ISNULL(LOCATE(NULL, 'o')) FROM DUAL;
|
||||||
|
SELECT ISNULL(LOCATE(NULL, NULL)) FROM DUAL;
|
||||||
|
SELECT LOCATE('foo', NULL) <=> NULL FROM DUAL;
|
||||||
|
SELECT LOCATE(NULL, 'o') <=> NULL FROM DUAL;
|
||||||
|
SELECT LOCATE(NULL, NULL) <=> NULL FROM DUAL;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a varchar(10), p varchar(10));
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (1, 'foo', 'o');
|
||||||
|
INSERT INTO t1 VALUES (2, 'foo', NULL);
|
||||||
|
INSERT INTO t1 VALUES (3, NULL, 'o');
|
||||||
|
INSERT INTO t1 VALUES (4, NULL, NULL);
|
||||||
|
|
||||||
|
SELECT id, LOCATE(a,p) FROM t1;
|
||||||
|
SELECT id, LOCATE(a,p) IS NULL FROM t1;
|
||||||
|
SELECT id, ISNULL(LOCATE(a,p)) FROM t1;
|
||||||
|
SELECT id, LOCATE(a,p) <=> NULL FROM t1;
|
||||||
|
SELECT id FROM t1 WHERE LOCATE(a,p) IS NULL;
|
||||||
|
SELECT id FROM t1 WHERE LOCATE(a,p) <=> NULL;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -1520,16 +1520,20 @@ 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();
|
||||||
Ensure that result is converted to DECIMAL, as longlong can't hold
|
if ((ulonglong) val >= (ulonglong) LONGLONG_MIN &&
|
||||||
the negated number
|
((ulonglong) val != (ulonglong) LONGLONG_MIN ||
|
||||||
*/
|
args[0]->type() != INT_ITEM))
|
||||||
hybrid_type= DECIMAL_RESULT;
|
{
|
||||||
DBUG_PRINT("info", ("Type changed: DECIMAL_RESULT"));
|
/*
|
||||||
|
Ensure that result is converted to DECIMAL, as longlong can't hold
|
||||||
|
the negated number
|
||||||
|
*/
|
||||||
|
hybrid_type= DECIMAL_RESULT;
|
||||||
|
DBUG_PRINT("info", ("Type changed: DECIMAL_RESULT"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
unsigned_flag= 0;
|
unsigned_flag= 0;
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
@ -2499,7 +2503,6 @@ longlong Item_func_coercibility::val_int()
|
|||||||
|
|
||||||
void Item_func_locate::fix_length_and_dec()
|
void Item_func_locate::fix_length_and_dec()
|
||||||
{
|
{
|
||||||
maybe_null= 0;
|
|
||||||
max_length= MY_INT32_NUM_DECIMAL_DIGITS;
|
max_length= MY_INT32_NUM_DECIMAL_DIGITS;
|
||||||
agg_arg_charsets(cmp_collation, args, 2, MY_COLL_CMP_CONV, 1);
|
agg_arg_charsets(cmp_collation, args, 2, MY_COLL_CMP_CONV, 1);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user