mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-ps3-4.1
This commit is contained in:
@ -1,4 +0,0 @@
|
||||
-- require r/have_debug.require
|
||||
disable_query_log;
|
||||
select instr(version(),convert('debug' using utf8))!=0;
|
||||
enable_query_log;
|
@ -59,11 +59,16 @@ grp group_concat(d order by a desc)
|
||||
1 a
|
||||
2 b,a
|
||||
3 c,d,d,b,b,a
|
||||
select grp,group_concat(a order by a,d+c) from t1 group by grp;
|
||||
grp group_concat(a order by a,d+c)
|
||||
select grp,group_concat(a order by a,d+c-ascii(c)-a) from t1 group by grp;
|
||||
grp group_concat(a order by a,d+c-ascii(c)-a)
|
||||
1 1
|
||||
2 2,3
|
||||
3 4,5,6,7,8,9
|
||||
select grp,group_concat(a order by d+c-ascii(c),a) from t1 group by grp;
|
||||
grp group_concat(a order by d+c-ascii(c),a)
|
||||
1 1
|
||||
2 3,2
|
||||
3 7,8,4,6,9,5
|
||||
select grp,group_concat(c order by 1) from t1 group by grp;
|
||||
grp group_concat(c order by 1)
|
||||
1 a
|
||||
@ -136,17 +141,7 @@ grp ROUND(group_concat(a separator ""))
|
||||
3 456789
|
||||
drop table t1;
|
||||
create table t1 (grp int, c char(10));
|
||||
insert into t1 values (1,NULL);
|
||||
insert into t1 values (2,"b");
|
||||
insert into t1 values (2,NULL);
|
||||
insert into t1 values (3,"E");
|
||||
insert into t1 values (3,NULL);
|
||||
insert into t1 values (3,"D");
|
||||
insert into t1 values (3,NULL);
|
||||
insert into t1 values (3,NULL);
|
||||
insert into t1 values (3,"D");
|
||||
insert into t1 values (4,"");
|
||||
insert into t1 values (5,NULL);
|
||||
insert into t1 values (1,NULL),(2,"b"),(2,NULL),(3,"E"),(3,NULL),(3,"D"),(3,NULL),(3,NULL),(3,"D"),(4,""),(5,NULL);
|
||||
select grp,group_concat(c order by c) from t1 group by grp;
|
||||
grp group_concat(c order by c)
|
||||
1 NULL
|
||||
@ -207,9 +202,21 @@ NULL
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
create table t1 (bar varchar(32));
|
||||
insert into t1 values('test'),('test2');
|
||||
select * from t1 having group_concat(bar)='';
|
||||
insert into t1 values('test1'),('test2');
|
||||
select group_concat(bar order by concat(bar,bar)) from t1;
|
||||
group_concat(bar order by concat(bar,bar))
|
||||
test1,test2
|
||||
select group_concat(bar order by concat(bar,bar) desc) from t1;
|
||||
group_concat(bar order by concat(bar,bar) desc)
|
||||
test2,test1
|
||||
select bar from t1 having group_concat(bar)='';
|
||||
bar
|
||||
select bar from t1 having instr(group_concat(bar), "test") > 0;
|
||||
bar
|
||||
test1
|
||||
select bar from t1 having instr(group_concat(bar order by concat(bar,bar) desc), "test2,test1") > 0;
|
||||
bar
|
||||
test1
|
||||
drop table t1;
|
||||
create table t1 (a int, a1 varchar(10));
|
||||
create table t2 (a0 int);
|
||||
@ -222,3 +229,75 @@ select group_concat(a1 order by (t1.a)) from t1;
|
||||
group_concat(a1 order by (t1.a))
|
||||
b,a,c
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (id1 tinyint(4) NOT NULL, id2 tinyint(4) NOT NULL);
|
||||
INSERT INTO t1 VALUES (1, 1),(1, 2),(1, 3),(1, 4),(1, 5),(2, 1),(2, 2),(2, 3);
|
||||
CREATE TABLE t2 (id1 tinyint(4) NOT NULL);
|
||||
INSERT INTO t2 VALUES (1),(2),(3),(4),(5);
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 AND t1.id1=1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 1,2,3,4,5
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 1,2,3,4,5
|
||||
2 1,2,3
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 DESC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 5,4,3,2,1
|
||||
2 3,2,1
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 5,4,3,2,1
|
||||
2 3,2,1
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2,6-t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 51,42,33,24,15
|
||||
2 33,24,15
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2,6-t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 51,42,33,24,15
|
||||
2 33,24,15
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2,"/",6-t1.id2 ORDER BY 1+0,6-t1.id2,t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
id1 concat_id
|
||||
1 5/1,4/2,3/3,2/4,1/5
|
||||
2 3/3,2/4,1/5
|
||||
drop table t1,t2;
|
||||
create table t1 (s1 char(10), s2 int not null);
|
||||
insert into t1 values ('a',2),('b',2),('c',1),('a',3),('b',4),('c',4);
|
||||
select distinct s1 from t1 order by s2,s1;
|
||||
s1
|
||||
c
|
||||
a
|
||||
b
|
||||
select group_concat(distinct s1) from t1;
|
||||
group_concat(distinct s1)
|
||||
a,b,c
|
||||
select group_concat(distinct s1 order by s2) from t1 where s2 < 4;
|
||||
group_concat(distinct s1 order by s2)
|
||||
c,b,a
|
||||
select group_concat(distinct s1 order by s2) from t1;
|
||||
group_concat(distinct s1 order by s2)
|
||||
c,b,a,c
|
||||
drop table t1;
|
||||
create table t1 (a int, c int);
|
||||
insert into t1 values (1, 2), (2, 3), (2, 4), (3, 5);
|
||||
create table t2 (a int, c int);
|
||||
insert into t2 values (1, 5), (2, 4), (3, 3), (3,3);
|
||||
select group_concat(c) from t1;
|
||||
group_concat(c)
|
||||
2,3,4,5
|
||||
select group_concat(c order by (select c from t2 where t2.a=t1.a limit 1)) as grp from t1;
|
||||
grp
|
||||
5,4,3,2
|
||||
select group_concat(c order by (select mid(group_concat(c order by a),1,5) from t2 where t2.a=t1.a)) as grp from t1;
|
||||
grp
|
||||
5,4,3,2
|
||||
select group_concat(c order by (select mid(group_concat(c order by a),1,5) from t2 where t2.a=t1.a) desc) as grp from t1;
|
||||
grp
|
||||
2,4,3,5
|
||||
select a,c,(select group_concat(c order by a) from t2 where a=t1.a) as grp from t1 order by grp;
|
||||
a c grp
|
||||
3 5 3,3
|
||||
2 3 4
|
||||
2 4 4
|
||||
1 2 5
|
||||
drop table t1,t2;
|
||||
|
@ -5,6 +5,9 @@ grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option;
|
||||
select current_user();
|
||||
current_user()
|
||||
mysqltest_1@localhost
|
||||
select current_user;
|
||||
current_user
|
||||
mysqltest_1@localhost
|
||||
grant all privileges on `my\_1`.* to mysqltest_2@localhost with grant option;
|
||||
grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_1'@'localhost' to database 'my_%'
|
||||
|
@ -2,6 +2,12 @@ drop table if exists test.t1,mysqltest.t1,mysqltest.t2;
|
||||
drop database if exists mysqltest;
|
||||
reset query cache;
|
||||
flush status;
|
||||
show grants for current_user;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
show grants;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
create database if not exists mysqltest;
|
||||
create table mysqltest.t1 (a int,b int,c int);
|
||||
create table mysqltest.t2 (a int,b int,c int);
|
||||
@ -41,6 +47,10 @@ grant SELECT on mysqltest.* to mysqltest_1@localhost;
|
||||
grant SELECT on mysqltest.t1 to mysqltest_2@localhost;
|
||||
grant SELECT on test.t1 to mysqltest_2@localhost;
|
||||
grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost;
|
||||
show grants for current_user();
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 6
|
||||
@ -101,6 +111,9 @@ Qcache_hits 3
|
||||
show status like "Qcache_not_cached";
|
||||
Variable_name Value
|
||||
Qcache_not_cached 1
|
||||
show grants for current_user();
|
||||
Grants for @localhost
|
||||
GRANT USAGE ON *.* TO ''@'localhost'
|
||||
select "user2";
|
||||
user2
|
||||
user2
|
||||
@ -158,6 +171,10 @@ Qcache_not_cached 7
|
||||
select "user4";
|
||||
user4
|
||||
user4
|
||||
show grants;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
|
||||
select a from t1;
|
||||
ERROR 3D000: No Database Selected
|
||||
select * from mysqltest.t1,test.t1;
|
||||
|
@ -1,2 +0,0 @@
|
||||
instr(version(),convert('debug' using utf8))!=0;
|
||||
1
|
@ -13,7 +13,7 @@ SHOW CREATE TABLE T1;
|
||||
Table Create Table
|
||||
T1 CREATE TABLE `T1` (
|
||||
`a` int(11) default NULL
|
||||
) TYPE=MyISAM
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
RENAME TABLE T1 TO T2;
|
||||
SHOW TABLES LIKE "T2";
|
||||
Tables_in_test (T2)
|
||||
@ -68,7 +68,7 @@ SHOW CREATE TABLE T1;
|
||||
Table Create Table
|
||||
T1 CREATE TABLE `T1` (
|
||||
`a` int(11) default NULL
|
||||
) TYPE=InnoDB
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin
|
||||
RENAME TABLE T1 TO T2;
|
||||
SHOW TABLES LIKE "T2";
|
||||
Tables_in_test (T2)
|
||||
|
@ -1,36 +1,36 @@
|
||||
drop table if exists t1,t2;
|
||||
select 1, 1.0, -1, "hello", NULL;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals
|
||||
def 1 8 1 1 N 32769 0
|
||||
def 1.0 5 3 3 N 32769 1
|
||||
def -1 8 1 2 N 32769 0
|
||||
def hello 254 5 5 N 1 31
|
||||
def NULL 6 0 0 Y 32768 0
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def 1 8 1 1 N 32769 0 8
|
||||
def 1.0 5 3 3 N 32769 1 8
|
||||
def -1 8 1 2 N 32769 0 8
|
||||
def hello 254 5 5 N 1 31 8
|
||||
def NULL 6 0 0 Y 32768 0 8
|
||||
1 1.0 -1 hello NULL
|
||||
1 1.0 -1 hello NULL
|
||||
create table t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float(3,2), g double(4,3), h decimal(5,4), i year, j date, k timestamp, l datetime, m enum('a','b'), n set('a','b'), o char(10));
|
||||
select * from t1;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals
|
||||
def test t1 t1 a a 1 4 0 Y 32768 0
|
||||
def test t1 t1 b b 2 6 0 Y 32768 0
|
||||
def test t1 t1 c c 9 9 0 Y 32768 0
|
||||
def test t1 t1 d d 3 11 0 Y 32768 0
|
||||
def test t1 t1 e e 8 20 0 Y 32768 0
|
||||
def test t1 t1 f f 4 3 0 Y 32768 2
|
||||
def test t1 t1 g g 5 4 0 Y 32768 3
|
||||
def test t1 t1 h h 0 7 0 Y 32768 4
|
||||
def test t1 t1 i i 13 4 0 Y 32864 0
|
||||
def test t1 t1 j j 10 10 0 Y 0 0
|
||||
def test t1 t1 k k 7 19 0 N 1089 0
|
||||
def test t1 t1 l l 12 19 0 Y 0 0
|
||||
def test t1 t1 m m 254 1 0 Y 256 0
|
||||
def test t1 t1 n n 254 3 0 Y 2048 0
|
||||
def test t1 t1 o o 254 10 0 Y 0 0
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 a a 1 4 0 Y 32768 0 63
|
||||
def test t1 t1 b b 2 6 0 Y 32768 0 63
|
||||
def test t1 t1 c c 9 9 0 Y 32768 0 63
|
||||
def test t1 t1 d d 3 11 0 Y 32768 0 63
|
||||
def test t1 t1 e e 8 20 0 Y 32768 0 63
|
||||
def test t1 t1 f f 4 3 0 Y 32768 2 63
|
||||
def test t1 t1 g g 5 4 0 Y 32768 3 63
|
||||
def test t1 t1 h h 0 7 0 Y 32768 4 63
|
||||
def test t1 t1 i i 13 4 0 Y 32864 0 63
|
||||
def test t1 t1 j j 10 10 0 Y 128 0 63
|
||||
def test t1 t1 k k 7 19 0 N 1217 0 63
|
||||
def test t1 t1 l l 12 19 0 Y 128 0 63
|
||||
def test t1 t1 m m 254 1 0 Y 256 0 8
|
||||
def test t1 t1 n n 254 3 0 Y 2048 0 8
|
||||
def test t1 t1 o o 254 10 0 Y 0 0 8
|
||||
a b c d e f g h i j k l m n o
|
||||
select a b, b c from t1 as t2;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals
|
||||
def test t1 t2 a b 1 4 0 Y 32768 0
|
||||
def test t1 t2 b c 2 6 0 Y 32768 0
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t2 a b 1 4 0 Y 32768 0 63
|
||||
def test t1 t2 b c 2 6 0 Y 32768 0 63
|
||||
b c
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (id tinyint(3) default NULL, data varchar(255) default NULL);
|
||||
@ -38,24 +38,24 @@ INSERT INTO t1 VALUES (1,'male'),(2,'female');
|
||||
CREATE TABLE t2 (id tinyint(3) unsigned default NULL, data char(3) default '0');
|
||||
INSERT INTO t2 VALUES (1,'yes'),(2,'no');
|
||||
select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals
|
||||
def test t1 t1 id id 1 3 1 Y 32768 0
|
||||
def test t1 t1 data data 253 255 6 Y 0 0
|
||||
def test t2 t2 data data 254 3 3 Y 0 0
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 id id 1 3 1 Y 32768 0 63
|
||||
def test t1 t1 data data 253 255 6 Y 0 0 8
|
||||
def test t2 t2 data data 254 3 3 Y 0 0 8
|
||||
id data data
|
||||
1 male yes
|
||||
2 female no
|
||||
select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id order by t1.id;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals
|
||||
def test t1 t1 id id 1 3 1 Y 32768 0
|
||||
def test t1 t1 data data 253 255 6 Y 0 0
|
||||
def test t2 t2 data data 254 3 3 Y 0 0
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 id id 1 3 1 Y 32768 0 63
|
||||
def test t1 t1 data data 253 255 6 Y 0 0 8
|
||||
def test t2 t2 data data 254 3 3 Y 0 0 8
|
||||
id data data
|
||||
1 male yes
|
||||
2 female no
|
||||
select t1.id from t1 union select t2.id from t2;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals
|
||||
def test t1 t1 id id 1 3 1 Y 32768 0
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 id id 1 3 1 Y 32768 0 63
|
||||
id
|
||||
1
|
||||
2
|
||||
|
@ -362,3 +362,41 @@ t1 HEAP Fixed 0 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
|
||||
t2 HEAP Fixed 0 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
|
||||
t3 HEAP Fixed 0 9 # # # 9 NULL NULL NULL NULL latin1_swedish_ci NULL
|
||||
drop table t1, t2, t3;
|
||||
create database test_$1;
|
||||
show create database test_$1;
|
||||
Database Create Database
|
||||
test_$1 CREATE DATABASE `test_$1` /*!40100 DEFAULT CHARACTER SET latin1 */
|
||||
create table test_$1.t1(a int);
|
||||
insert into test_$1.t1 values(1);
|
||||
grant select on `test_$1`.* to mysqltest_1@localhost;
|
||||
grant usage on `test_$1`.* to mysqltest_2@localhost;
|
||||
grant drop on `test_$1`.* to mysqltest_3@localhost;
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
show create database test_$1;
|
||||
Database Create Database
|
||||
test_$1 CREATE DATABASE `test_$1` /*!40100 DEFAULT CHARACTER SET latin1 */
|
||||
drop table t1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_1'@'localhost' to database 'test_$1'
|
||||
drop database test_$1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_1'@'localhost' to database 'test_$1'
|
||||
select * from test_$1.t1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
|
||||
show create database test_$1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
|
||||
drop table test_$1.t1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
|
||||
drop database test_$1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_2'@'localhost' to database 'test_$1'
|
||||
select * from test_$1.t1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_3'@'localhost' to database 'test_$1'
|
||||
show create database test_$1;
|
||||
ERROR 42000: Access denied for user: 'mysqltest_3'@'localhost' to database 'test_$1'
|
||||
drop table test_$1.t1;
|
||||
drop database test_$1;
|
||||
delete from mysql.user
|
||||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||||
delete from mysql.db
|
||||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||||
flush privileges;
|
||||
|
@ -1,23 +1,162 @@
|
||||
CREATE TABLE t1 (a int);
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
ALTER TABLE t1 add key(a);
|
||||
CREATE TABLE t1 (x1 int);
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` int(11) default NULL
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (a int);
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
CREATE TABLE t2 (b int);
|
||||
let's take a look at result of create .. like :
|
||||
-----------
|
||||
ERROR HY000: Can't create/write to file './test/t2.frm' (Errcode: 17)
|
||||
-----------
|
||||
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`b` int(11) default NULL
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`xx` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
|
@ -693,7 +693,7 @@ testc
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`dt` char(19) default NULL
|
||||
`dt` binary(19) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 SELECT dt from t2 UNION select sv from t2;
|
||||
@ -704,7 +704,7 @@ testv
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`dt` char(19) default NULL
|
||||
`dt` binary(19) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 SELECT sc from t2 UNION select sv from t2;
|
||||
@ -726,7 +726,7 @@ tetetetetest
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`dt` longblob
|
||||
`dt` blob
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 SELECT sv from t2 UNION select b from t2;
|
||||
|
@ -29,7 +29,8 @@ select grp,group_concat(c order by c) from t1 group by grp;
|
||||
select grp,group_concat(c order by c desc) from t1 group by grp;
|
||||
select grp,group_concat(d order by a) from t1 group by grp;
|
||||
select grp,group_concat(d order by a desc) from t1 group by grp;
|
||||
select grp,group_concat(a order by a,d+c) from t1 group by grp;
|
||||
select grp,group_concat(a order by a,d+c-ascii(c)-a) from t1 group by grp;
|
||||
select grp,group_concat(a order by d+c-ascii(c),a) from t1 group by grp;
|
||||
select grp,group_concat(c order by 1) from t1 group by grp;
|
||||
select grp,group_concat(c order by "c") from t1 group by grp;
|
||||
select grp,group_concat(distinct c order by c) from t1 group by grp;
|
||||
@ -50,22 +51,12 @@ select grp,group_concat(c order by grp desc) from t1 group by grp order by grp;
|
||||
select grp, group_concat(a separator "")+0 from t1 group by grp;
|
||||
select grp, group_concat(a separator "")+0.0 from t1 group by grp;
|
||||
select grp, ROUND(group_concat(a separator "")) from t1 group by grp;
|
||||
drop table t1;
|
||||
|
||||
# Test NULL values
|
||||
|
||||
drop table t1;
|
||||
create table t1 (grp int, c char(10));
|
||||
insert into t1 values (1,NULL);
|
||||
insert into t1 values (2,"b");
|
||||
insert into t1 values (2,NULL);
|
||||
insert into t1 values (3,"E");
|
||||
insert into t1 values (3,NULL);
|
||||
insert into t1 values (3,"D");
|
||||
insert into t1 values (3,NULL);
|
||||
insert into t1 values (3,NULL);
|
||||
insert into t1 values (3,"D");
|
||||
insert into t1 values (4,"");
|
||||
insert into t1 values (5,NULL);
|
||||
insert into t1 values (1,NULL),(2,"b"),(2,NULL),(3,"E"),(3,NULL),(3,"D"),(3,NULL),(3,NULL),(3,"D"),(4,""),(5,NULL);
|
||||
select grp,group_concat(c order by c) from t1 group by grp;
|
||||
|
||||
# Test warnings
|
||||
@ -118,8 +109,12 @@ drop table t2;
|
||||
|
||||
# check having
|
||||
create table t1 (bar varchar(32));
|
||||
insert into t1 values('test'),('test2');
|
||||
select * from t1 having group_concat(bar)='';
|
||||
insert into t1 values('test1'),('test2');
|
||||
select group_concat(bar order by concat(bar,bar)) from t1;
|
||||
select group_concat(bar order by concat(bar,bar) desc) from t1;
|
||||
select bar from t1 having group_concat(bar)='';
|
||||
select bar from t1 having instr(group_concat(bar), "test") > 0;
|
||||
select bar from t1 having instr(group_concat(bar order by concat(bar,bar) desc), "test2,test1") > 0;
|
||||
drop table t1;
|
||||
|
||||
# ORDER BY fix_fields()
|
||||
@ -129,4 +124,58 @@ insert into t1 values (0,"a"),(0,"b"),(1,"c");
|
||||
insert into t2 values (1),(2),(3);
|
||||
select group_concat(a1 order by (t1.a IN (select a0 from t2))) from t1;
|
||||
select group_concat(a1 order by (t1.a)) from t1;
|
||||
drop table t1, t2;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Problem with GROUP BY (Bug #2695)
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (id1 tinyint(4) NOT NULL, id2 tinyint(4) NOT NULL);
|
||||
INSERT INTO t1 VALUES (1, 1),(1, 2),(1, 3),(1, 4),(1, 5),(2, 1),(2, 2),(2, 3);
|
||||
CREATE TABLE t2 (id1 tinyint(4) NOT NULL);
|
||||
INSERT INTO t2 VALUES (1),(2),(3),(4),(5);
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 AND t1.id1=1 GROUP BY t1.id1;
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY t1.id2 DESC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
|
||||
# The following failed when it was run twice:
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2,6-t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2,6-t1.id2 ORDER BY 6-t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
|
||||
SELECT t1.id1, GROUP_CONCAT(t1.id2,"/",6-t1.id2 ORDER BY 1+0,6-t1.id2,t1.id2 ASC) AS concat_id FROM t1, t2 WHERE t1.id1 = t2.id1 GROUP BY t1.id1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Problem with distinct (Bug #3381)
|
||||
#
|
||||
|
||||
create table t1 (s1 char(10), s2 int not null);
|
||||
insert into t1 values ('a',2),('b',2),('c',1),('a',3),('b',4),('c',4);
|
||||
select distinct s1 from t1 order by s2,s1;
|
||||
select group_concat(distinct s1) from t1;
|
||||
select group_concat(distinct s1 order by s2) from t1 where s2 < 4;
|
||||
# The following is wrong and needs to be fixed ASAP
|
||||
select group_concat(distinct s1 order by s2) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test with subqueries (Bug #3319)
|
||||
#
|
||||
|
||||
create table t1 (a int, c int);
|
||||
insert into t1 values (1, 2), (2, 3), (2, 4), (3, 5);
|
||||
create table t2 (a int, c int);
|
||||
insert into t2 values (1, 5), (2, 4), (3, 3), (3,3);
|
||||
select group_concat(c) from t1;
|
||||
select group_concat(c order by (select c from t2 where t2.a=t1.a limit 1)) as grp from t1;
|
||||
|
||||
select group_concat(c order by (select mid(group_concat(c order by a),1,5) from t2 where t2.a=t1.a)) as grp from t1;
|
||||
select group_concat(c order by (select mid(group_concat(c order by a),1,5) from t2 where t2.a=t1.a) desc) as grp from t1;
|
||||
|
||||
# The following returns random results as we are sorting on blob addresses
|
||||
# select group_concat(c order by (select group_concat(c order by a) from t2 where t2.a=t1.a)) as grp from t1;
|
||||
# select group_concat(c order by (select group_concat(c) from t2 where a=t1.a)) as grp from t1;
|
||||
|
||||
select a,c,(select group_concat(c order by a) from t2 where a=t1.a) as grp from t1 order by grp;
|
||||
drop table t1,t2;
|
||||
|
@ -134,7 +134,6 @@ select max(t2.a1) from t1 left outer join t2 on t1.a2=t2.a1 and 1=0 where t2.a1=
|
||||
select max(t1.a2),max(t2.a1) from t1 left outer join t2 on t1.a1=10;
|
||||
drop table t1,t2;
|
||||
|
||||
|
||||
#
|
||||
# Tests to check MIN/MAX query optimization
|
||||
#
|
||||
|
@ -15,6 +15,7 @@ grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option;
|
||||
connect (user1,localhost,mysqltest_1,,);
|
||||
connection user1;
|
||||
select current_user();
|
||||
select current_user;
|
||||
grant all privileges on `my\_1`.* to mysqltest_2@localhost with grant option;
|
||||
--error 1044
|
||||
grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
|
||||
|
@ -12,6 +12,8 @@ reset query cache;
|
||||
flush status;
|
||||
connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
|
||||
connection root;
|
||||
show grants for current_user;
|
||||
show grants;
|
||||
--disable_warnings
|
||||
create database if not exists mysqltest;
|
||||
--enable_warnings
|
||||
@ -43,6 +45,7 @@ grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost;
|
||||
# The following queries should be fetched from cache
|
||||
connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,master.sock);
|
||||
connection user1;
|
||||
show grants for current_user();
|
||||
show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_hits";
|
||||
show status like "Qcache_not_cached";
|
||||
@ -64,6 +67,10 @@ show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_hits";
|
||||
show status like "Qcache_not_cached";
|
||||
|
||||
connect (unkuser,localhost,,,,$MASTER_MYPORT,master.sock);
|
||||
connection unkuser;
|
||||
show grants for current_user();
|
||||
|
||||
# The following queries should be fetched from cache
|
||||
connect (user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,master.sock);
|
||||
connection user2;
|
||||
@ -104,6 +111,7 @@ show status like "Qcache_not_cached";
|
||||
connect (user4,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,master.sock);
|
||||
connection user4;
|
||||
select "user4";
|
||||
show grants;
|
||||
--error 1046
|
||||
select a from t1;
|
||||
# The following query is not cached before (different database)
|
||||
|
@ -256,3 +256,51 @@ delete from t3 where a=5;
|
||||
show table status;
|
||||
|
||||
drop table t1, t2, t3;
|
||||
|
||||
#
|
||||
# Test for bug #3342 SHOW CREATE DATABASE seems to require DROP privilege
|
||||
#
|
||||
|
||||
create database test_$1;
|
||||
show create database test_$1;
|
||||
create table test_$1.t1(a int);
|
||||
insert into test_$1.t1 values(1);
|
||||
grant select on `test_$1`.* to mysqltest_1@localhost;
|
||||
grant usage on `test_$1`.* to mysqltest_2@localhost;
|
||||
grant drop on `test_$1`.* to mysqltest_3@localhost;
|
||||
|
||||
connect (con1,localhost,mysqltest_1,,test_$1);
|
||||
connection con1;
|
||||
select * from t1;
|
||||
show create database test_$1;
|
||||
--error 1044
|
||||
drop table t1;
|
||||
--error 1044
|
||||
drop database test_$1;
|
||||
|
||||
connect (con2,localhost,mysqltest_2,,test);
|
||||
connection con2;
|
||||
--error 1044
|
||||
select * from test_$1.t1;
|
||||
--error 1044
|
||||
show create database test_$1;
|
||||
--error 1044
|
||||
drop table test_$1.t1;
|
||||
--error 1044
|
||||
drop database test_$1;
|
||||
|
||||
connect (con3,localhost,mysqltest_3,,test);
|
||||
connection con3;
|
||||
--error 1044
|
||||
select * from test_$1.t1;
|
||||
--error 1044
|
||||
show create database test_$1;
|
||||
drop table test_$1.t1;
|
||||
drop database test_$1;
|
||||
|
||||
connection default;
|
||||
delete from mysql.user
|
||||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||||
delete from mysql.db
|
||||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||||
flush privileges;
|
||||
|
@ -1 +0,0 @@
|
||||
--exit-info=2048
|
@ -1,45 +1,33 @@
|
||||
-- source include/have_crypt.inc
|
||||
|
||||
#
|
||||
# Test for Bug #2385 CREATE TABLE LIKE lacks locking on source and destination table
|
||||
#
|
||||
|
||||
connect (con_to_sleep,localhost,lock_controller,,);
|
||||
connect (con_to_harm_sleeper,localhost,root,,);
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
# locking of source:
|
||||
connection con_to_sleep;
|
||||
CREATE TABLE t1 (a int);
|
||||
send CREATE TABLE t2 LIKE t1;
|
||||
|
||||
connection con_to_harm_sleeper;
|
||||
sleep 1;
|
||||
ALTER TABLE t1 add key(a);
|
||||
|
||||
connection con_to_sleep;
|
||||
sleep 4;
|
||||
SHOW CREATE TABLE t2;
|
||||
drop table t1, t2;
|
||||
|
||||
# locking of destination:
|
||||
connection con_to_sleep;
|
||||
CREATE TABLE t1 (a int);
|
||||
send CREATE TABLE t2 LIKE t1;
|
||||
|
||||
connection con_to_harm_sleeper;
|
||||
sleep 1;
|
||||
CREATE TABLE t2 (b int);
|
||||
disable_query_log;
|
||||
select "-----------" as "let's take a look at result of create .. like : ";
|
||||
enable_query_log;
|
||||
|
||||
connection con_to_sleep;
|
||||
sleep 1;
|
||||
--error 1
|
||||
reap;
|
||||
disable_query_log;
|
||||
select "" as "-----------";
|
||||
enable_query_log;
|
||||
SHOW CREATE TABLE t2;
|
||||
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (x1 int);
|
||||
let $1= 10;
|
||||
while ($1)
|
||||
{
|
||||
connection con1;
|
||||
send ALTER TABLE t1 CHANGE x1 x2 int;
|
||||
connection con2;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
replace_result x1 xx x2 xx;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
connection con1;
|
||||
reap;
|
||||
send ALTER TABLE t1 CHANGE x2 x1 int;
|
||||
connection con2;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
replace_result x1 xx x2 xx;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
connection con1;
|
||||
reap;
|
||||
dec $1;
|
||||
}
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user