mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge neptunus.(none):/home/msvensson/mysql/my50-m-bug21215
into neptunus.(none):/home/msvensson/mysql/mysql-5.0 client/mysql.cc: Auto merged configure.in: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_strfunc.h: Auto merged sql/item_subselect.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_yacc.yy: Auto merged client/mysqldump.c: Manual merge mysql-test/r/mysqldump.result: Manual merge mysql-test/t/mysqldump.test: Manual merge
This commit is contained in:
@ -381,3 +381,14 @@ DROP TABLE t1;
|
||||
select cast(NULL as decimal(6)) as t1;
|
||||
t1
|
||||
NULL
|
||||
set names latin1;
|
||||
select hex(cast('a' as char(2) binary));
|
||||
hex(cast('a' as char(2) binary))
|
||||
61
|
||||
select hex(cast('a' as binary(2)));
|
||||
hex(cast('a' as binary(2)))
|
||||
6100
|
||||
select hex(cast('a' as char(2) binary));
|
||||
hex(cast('a' as char(2) binary))
|
||||
61
|
||||
End of 5.0 tests
|
||||
|
@ -79,3 +79,31 @@ uncompress(a) uncompressed_length(a)
|
||||
NULL NULL
|
||||
a 1
|
||||
drop table t1;
|
||||
create table t1 (a varchar(32) not null);
|
||||
insert into t1 values ('foo');
|
||||
explain select * from t1 where uncompress(a) is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
Warnings:
|
||||
Error 1259 ZLIB: Input data corrupted
|
||||
select * from t1 where uncompress(a) is null;
|
||||
a
|
||||
foo
|
||||
Warnings:
|
||||
Error 1259 ZLIB: Input data corrupted
|
||||
explain select *, uncompress(a) from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
select *, uncompress(a) from t1;
|
||||
a uncompress(a)
|
||||
foo NULL
|
||||
Warnings:
|
||||
Error 1259 ZLIB: Input data corrupted
|
||||
select *, uncompress(a), uncompress(a) is null from t1;
|
||||
a uncompress(a) uncompress(a) is null
|
||||
foo NULL 1
|
||||
Warnings:
|
||||
Error 1259 ZLIB: Input data corrupted
|
||||
Error 1259 ZLIB: Input data corrupted
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
|
@ -2875,3 +2875,19 @@ use mysqldump_dbb;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
drop database mysqldump_dbb;
|
||||
use test;
|
||||
create user mysqltest_1;
|
||||
create table t1(a int, b varchar(34));
|
||||
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
|
||||
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
|
||||
grant RELOAD on *.* to mysqltest_1@localhost;
|
||||
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
|
||||
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
|
||||
grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
|
||||
CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000003', MASTER_LOG_POS=3784;
|
||||
CREATE TABLE `t1` (
|
||||
`a` int(11) default NULL,
|
||||
`b` varchar(34) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
drop table t1;
|
||||
drop user mysqltest_1;
|
||||
|
@ -256,3 +256,39 @@ t1 CREATE TABLE `t1` (
|
||||
`@first_var` longtext
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
set @a=18446744071710965857;
|
||||
select @a;
|
||||
@a
|
||||
18446744071710965857
|
||||
CREATE TABLE `bigfailure` (
|
||||
`afield` BIGINT UNSIGNED NOT NULL
|
||||
);
|
||||
INSERT INTO `bigfailure` VALUES (18446744071710965857);
|
||||
SELECT * FROM bigfailure;
|
||||
afield
|
||||
18446744071710965857
|
||||
select * from (SELECT afield FROM bigfailure) as b;
|
||||
afield
|
||||
18446744071710965857
|
||||
select * from bigfailure where afield = (SELECT afield FROM bigfailure);
|
||||
afield
|
||||
18446744071710965857
|
||||
select * from bigfailure where afield = 18446744071710965857;
|
||||
afield
|
||||
18446744071710965857
|
||||
select * from bigfailure where afield = 18446744071710965856+1;
|
||||
afield
|
||||
18446744071710965857
|
||||
SET @a := (SELECT afield FROM bigfailure);
|
||||
SELECT @a;
|
||||
@a
|
||||
18446744071710965857
|
||||
SET @a := (select afield from (SELECT afield FROM bigfailure) as b);
|
||||
SELECT @a;
|
||||
@a
|
||||
18446744071710965857
|
||||
SET @a := (select * from bigfailure where afield = (SELECT afield FROM bigfailure));
|
||||
SELECT @a;
|
||||
@a
|
||||
18446744071710965857
|
||||
drop table bigfailure;
|
||||
|
@ -204,7 +204,19 @@ SELECT CAST(v AS DECIMAL), CAST(tt AS DECIMAL), CAST(t AS DECIMAL),
|
||||
CAST(mt AS DECIMAL), CAST(lt AS DECIMAL) from t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
# Bug @10237 (CAST(NULL DECIMAL) crashes server)
|
||||
|
||||
#
|
||||
# Bug #10237 (CAST(NULL DECIMAL) crashes server)
|
||||
#
|
||||
select cast(NULL as decimal(6)) as t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug #17903: cast to char results in binary
|
||||
#
|
||||
set names latin1;
|
||||
select hex(cast('a' as char(2) binary));
|
||||
select hex(cast('a' as binary(2)));
|
||||
select hex(cast('a' as char(2) binary));
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -57,3 +57,17 @@ select uncompress(a), uncompressed_length(a) from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# Bug #18539: uncompress(d) is null: impossible?
|
||||
#
|
||||
create table t1 (a varchar(32) not null);
|
||||
insert into t1 values ('foo');
|
||||
explain select * from t1 where uncompress(a) is null;
|
||||
select * from t1 where uncompress(a) is null;
|
||||
explain select *, uncompress(a) from t1;
|
||||
select *, uncompress(a) from t1;
|
||||
select *, uncompress(a), uncompress(a) is null from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -1266,3 +1266,43 @@ use mysqldump_dbb;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
drop database mysqldump_dbb;
|
||||
|
||||
#
|
||||
# Bug#21215 mysqldump creating incomplete backups without warning
|
||||
#
|
||||
use test;
|
||||
|
||||
# Create user without sufficient privs to perform the requested operation
|
||||
create user mysqltest_1;
|
||||
create table t1(a int, b varchar(34));
|
||||
|
||||
# Execute mysqldump, will fail on FLUSH TABLES
|
||||
--error 2
|
||||
--exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1
|
||||
|
||||
# Execute mysqldump, will fail on FLUSH TABLES
|
||||
# use --force, should no affect behaviour
|
||||
--error 2
|
||||
--exec $MYSQL_DUMP --compact --force --master-data -u mysqltest_1 test 2>&1
|
||||
|
||||
# Add RELOAD grants
|
||||
grant RELOAD on *.* to mysqltest_1@localhost;
|
||||
|
||||
# Execute mysqldump, will fail on SHOW MASTER STATUS
|
||||
--error 2
|
||||
--exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1
|
||||
|
||||
# Execute mysqldump, will fail on SHOW MASTER STATUS.
|
||||
# use --force, should not alter behaviour
|
||||
--error 2
|
||||
--exec $MYSQL_DUMP --compact --force --master-data -u mysqltest_1 test 2>&1
|
||||
|
||||
# Add REPLICATION CLIENT grants
|
||||
grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
|
||||
|
||||
# Execute mysqldump, should now succeed
|
||||
--exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1
|
||||
|
||||
# Clean up
|
||||
drop table t1;
|
||||
drop user mysqltest_1;
|
||||
|
@ -171,3 +171,34 @@ set @first_var= cast(NULL as CHAR);
|
||||
create table t1 select @first_var;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #7498 User variable SET saves SIGNED BIGINT as UNSIGNED BIGINT
|
||||
#
|
||||
|
||||
# First part, set user var to large number and select it
|
||||
set @a=18446744071710965857;
|
||||
select @a;
|
||||
|
||||
# Second part, set user var from large number in table
|
||||
# then select it
|
||||
CREATE TABLE `bigfailure` (
|
||||
`afield` BIGINT UNSIGNED NOT NULL
|
||||
);
|
||||
INSERT INTO `bigfailure` VALUES (18446744071710965857);
|
||||
SELECT * FROM bigfailure;
|
||||
select * from (SELECT afield FROM bigfailure) as b;
|
||||
select * from bigfailure where afield = (SELECT afield FROM bigfailure);
|
||||
select * from bigfailure where afield = 18446744071710965857;
|
||||
# This is fixed in 5.0, to be uncommented there
|
||||
#select * from bigfailure where afield = '18446744071710965857';
|
||||
select * from bigfailure where afield = 18446744071710965856+1;
|
||||
|
||||
SET @a := (SELECT afield FROM bigfailure);
|
||||
SELECT @a;
|
||||
SET @a := (select afield from (SELECT afield FROM bigfailure) as b);
|
||||
SELECT @a;
|
||||
SET @a := (select * from bigfailure where afield = (SELECT afield FROM bigfailure));
|
||||
SELECT @a;
|
||||
|
||||
drop table bigfailure;
|
||||
|
Reference in New Issue
Block a user