mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 19:41:47 +01:00
Merge mysql.com:/home/tomash/src/mysql_ab/mysql-5.0
into mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-bug17203
This commit is contained in:
commit
73eb784b67
19 changed files with 200 additions and 36 deletions
|
@ -143,7 +143,7 @@ explain extended select last_insert_id();
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache last_insert_id() AS `last_insert_id()`
|
||||
Note 1003 select last_insert_id() AS `last_insert_id()`
|
||||
insert into t1 set i = 254;
|
||||
ERROR 23000: Duplicate entry '254' for key 1
|
||||
select last_insert_id();
|
||||
|
|
|
@ -11,7 +11,7 @@ explain extended select uncompress(compress(@test_compress_string));
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache uncompress(compress((@test_compress_string))) AS `uncompress(compress(@test_compress_string))`
|
||||
Note 1003 select uncompress(compress((@test_compress_string))) AS `uncompress(compress(@test_compress_string))`
|
||||
select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string);
|
||||
uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)
|
||||
1
|
||||
|
@ -19,7 +19,7 @@ explain extended select uncompressed_length(compress(@test_compress_string))=len
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache (uncompressed_length(compress((@test_compress_string))) = length((@test_compress_string))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)`
|
||||
Note 1003 select (uncompressed_length(compress((@test_compress_string))) = length((@test_compress_string))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)`
|
||||
select uncompressed_length(compress(@test_compress_string));
|
||||
uncompressed_length(compress(@test_compress_string))
|
||||
117
|
||||
|
|
|
@ -90,7 +90,7 @@ explain extended select rand(999999),rand();
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache rand(999999) AS `rand(999999)`,rand() AS `rand()`
|
||||
Note 1003 select rand(999999) AS `rand(999999)`,rand() AS `rand()`
|
||||
select pi(),format(sin(pi()/2),6),format(cos(pi()/2),6),format(abs(tan(pi())),6),format(cot(1),6),format(asin(1),6),format(acos(0),6),format(atan(1),6);
|
||||
pi() format(sin(pi()/2),6) format(cos(pi()/2),6) format(abs(tan(pi())),6) format(cot(1),6) format(asin(1),6) format(acos(0),6) format(atan(1),6)
|
||||
3.141593 1.000000 0.000000 0.000000 0.642093 1.570796 1.570796 0.785398
|
||||
|
|
|
@ -41,7 +41,7 @@ explain extended select database(), user();
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache database() AS `database()`,user() AS `user()`
|
||||
Note 1003 select database() AS `database()`,user() AS `user()`
|
||||
create table t1 (version char(40)) select database(), user(), version() as 'version';
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
|
|
|
@ -723,7 +723,7 @@ explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_d
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache period_add(_latin1'9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,_latin1'9404') AS `period_diff(199505,"9404")`,from_days(to_days(_latin1'960101')) AS `from_days(to_days("960101"))`,dayofmonth(_latin1'1997-01-02') AS `dayofmonth("1997-01-02")`,month(_latin1'1997-01-02') AS `month("1997-01-02")`,monthname(_latin1'1972-03-04') AS `monthname("1972-03-04")`,dayofyear(_latin1'0000-00-00') AS `dayofyear("0000-00-00")`,hour(_latin1'1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute(_latin1'23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week(_latin1'1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek(_latin1'2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year(_latin1'98-02-03') AS `year("98-02-03")`,(weekday(curdate()) - weekday(now())) AS `weekday(curdate())-weekday(now())`,dayname(_latin1'1962-03-03') AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec(_latin1'0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format(_latin1'1997-01-02 03:04:05',_latin1'%M %W %D %Y %y %m %d %h %i %s %w') AS `date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")`,from_unixtime(unix_timestamp(_latin1'1994-03-02 10:11:12')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,(_latin1'1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,(_latin1'1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from _latin1'1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)`
|
||||
Note 1003 select period_add(_latin1'9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,_latin1'9404') AS `period_diff(199505,"9404")`,from_days(to_days(_latin1'960101')) AS `from_days(to_days("960101"))`,dayofmonth(_latin1'1997-01-02') AS `dayofmonth("1997-01-02")`,month(_latin1'1997-01-02') AS `month("1997-01-02")`,monthname(_latin1'1972-03-04') AS `monthname("1972-03-04")`,dayofyear(_latin1'0000-00-00') AS `dayofyear("0000-00-00")`,hour(_latin1'1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute(_latin1'23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week(_latin1'1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek(_latin1'2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year(_latin1'98-02-03') AS `year("98-02-03")`,(weekday(curdate()) - weekday(now())) AS `weekday(curdate())-weekday(now())`,dayname(_latin1'1962-03-03') AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec(_latin1'0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format(_latin1'1997-01-02 03:04:05',_latin1'%M %W %D %Y %y %m %d %h %i %s %w') AS `date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")`,from_unixtime(unix_timestamp(_latin1'1994-03-02 10:11:12')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,(_latin1'1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,(_latin1'1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from _latin1'1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)`
|
||||
SET @TMP=NOW();
|
||||
CREATE TABLE t1 (d DATETIME);
|
||||
INSERT INTO t1 VALUES (NOW());
|
||||
|
|
|
@ -369,11 +369,11 @@ show keys from v4;
|
|||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
select * from information_schema.views where TABLE_NAME like "v%";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
|
||||
NULL test v0 select sql_no_cache `schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO root@localhost DEFINER
|
||||
NULL test v1 select sql_no_cache `tables`.`TABLE_NAME` AS `c` from `information_schema`.`tables` where (`tables`.`TABLE_NAME` = _utf8'v1') NONE NO root@localhost DEFINER
|
||||
NULL test v2 select sql_no_cache `columns`.`COLUMN_NAME` AS `c` from `information_schema`.`columns` where (`columns`.`TABLE_NAME` = _utf8'v2') NONE NO root@localhost DEFINER
|
||||
NULL test v3 select sql_no_cache `character_sets`.`CHARACTER_SET_NAME` AS `c` from `information_schema`.`character_sets` where (`character_sets`.`CHARACTER_SET_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
|
||||
NULL test v4 select sql_no_cache `collations`.`COLLATION_NAME` AS `c` from `information_schema`.`collations` where (`collations`.`COLLATION_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
|
||||
NULL test v0 select `schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO root@localhost DEFINER
|
||||
NULL test v1 select `tables`.`TABLE_NAME` AS `c` from `information_schema`.`tables` where (`tables`.`TABLE_NAME` = _utf8'v1') NONE NO root@localhost DEFINER
|
||||
NULL test v2 select `columns`.`COLUMN_NAME` AS `c` from `information_schema`.`columns` where (`columns`.`TABLE_NAME` = _utf8'v2') NONE NO root@localhost DEFINER
|
||||
NULL test v3 select `character_sets`.`CHARACTER_SET_NAME` AS `c` from `information_schema`.`character_sets` where (`character_sets`.`CHARACTER_SET_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
|
||||
NULL test v4 select `collations`.`COLLATION_NAME` AS `c` from `information_schema`.`collations` where (`collations`.`COLLATION_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
|
||||
drop view v0, v1, v2, v3, v4;
|
||||
create table t1 (a int);
|
||||
grant select,update,insert on t1 to mysqltest_1@localhost;
|
||||
|
@ -687,7 +687,7 @@ Warnings:
|
|||
Warning 1356 View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
show create table v3;
|
||||
View Create View
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select sql_no_cache `test`.`sub1`(1) AS `c`
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `test`.`sub1`(1) AS `c`
|
||||
Warnings:
|
||||
Warning 1356 View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
drop view v2;
|
||||
|
|
|
@ -231,7 +231,7 @@ explain extended select benchmark(1,1) from t1;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache benchmark(1,1) AS `benchmark(1,1)` from `test`.`t1`
|
||||
Note 1003 select benchmark(1,1) AS `benchmark(1,1)` from `test`.`t1`
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
|
|
|
@ -25,7 +25,7 @@ explain extended select is_free_lock("lock"), is_used_lock("lock");
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache is_free_lock(_latin1'lock') AS `is_free_lock("lock")`,is_used_lock(_latin1'lock') AS `is_used_lock("lock")`
|
||||
Note 1003 select is_free_lock(_latin1'lock') AS `is_free_lock("lock")`,is_used_lock(_latin1'lock') AS `is_used_lock("lock")`
|
||||
select is_free_lock("lock2");
|
||||
is_free_lock("lock2")
|
||||
1
|
||||
|
|
|
@ -11,7 +11,7 @@ explain extended select master_pos_wait('master-bin.999999',0,2);
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache master_pos_wait(_latin1'master-bin.999999',0,2) AS `master_pos_wait('master-bin.999999',0,2)`
|
||||
Note 1003 select master_pos_wait(_latin1'master-bin.999999',0,2) AS `master_pos_wait('master-bin.999999',0,2)`
|
||||
select master_pos_wait('master-bin.999999',0);
|
||||
stop slave sql_thread;
|
||||
master_pos_wait('master-bin.999999',0)
|
||||
|
|
|
@ -565,3 +565,63 @@ DROP TABLE tyt2;
|
|||
DROP TABLE urkunde;
|
||||
SHOW TABLES FROM non_existing_database;
|
||||
ERROR 42000: Unknown database 'non_existing_database'
|
||||
DROP VIEW IF EXISTS v1;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
CREATE VIEW v1 AS SELECT 1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE 1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache 1 AS `1`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select now() AS `NOW()`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache now() AS `NOW()`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
|
||||
DROP VIEW v1;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
SET @s= 'CREATE VIEW v1 AS SELECT SQL_CACHE 1';
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
END |
|
||||
CALL p1();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1`
|
||||
DROP PROCEDURE p1;
|
||||
DROP VIEW v1;
|
||||
|
|
|
@ -1019,19 +1019,19 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
|
||||
2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache (select sql_no_cache rand() AS `RAND()` from `test`.`t1`) AS `(SELECT RAND() FROM t1)` from `test`.`t1`
|
||||
Note 1003 select (select rand() AS `RAND()` from `test`.`t1`) AS `(SELECT RAND() FROM t1)` from `test`.`t1`
|
||||
EXPLAIN EXTENDED SELECT (SELECT ENCRYPT('test') FROM t1) FROM t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
|
||||
2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache (select sql_no_cache encrypt(_latin1'test') AS `ENCRYPT('test')` from `test`.`t1`) AS `(SELECT ENCRYPT('test') FROM t1)` from `test`.`t1`
|
||||
Note 1003 select (select encrypt(_latin1'test') AS `ENCRYPT('test')` from `test`.`t1`) AS `(SELECT ENCRYPT('test') FROM t1)` from `test`.`t1`
|
||||
EXPLAIN EXTENDED SELECT (SELECT BENCHMARK(1,1) FROM t1) FROM t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
|
||||
2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache (select sql_no_cache benchmark(1,1) AS `BENCHMARK(1,1)` from `test`.`t1`) AS `(SELECT BENCHMARK(1,1) FROM t1)` from `test`.`t1`
|
||||
Note 1003 select (select benchmark(1,1) AS `BENCHMARK(1,1)` from `test`.`t1`) AS `(SELECT BENCHMARK(1,1) FROM t1)` from `test`.`t1`
|
||||
drop table t1;
|
||||
CREATE TABLE `t1` (
|
||||
`mot` varchar(30) character set latin1 NOT NULL default '',
|
||||
|
@ -1126,7 +1126,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
2 UNCACHEABLE SUBQUERY t1 ALL NULL NULL NULL NULL 3
|
||||
3 UNCACHEABLE SUBQUERY t1 ALL NULL NULL NULL NULL 3
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache `test`.`t1`.`a` AS `a`,(select sql_no_cache (select sql_no_cache rand() AS `rand()` from `test`.`t1` limit 1) AS `(select rand() from t1 limit 1)` from `test`.`t1` limit 1) AS `(select (select rand() from t1 limit 1) from t1 limit 1)` from `test`.`t1`
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,(select (select rand() AS `rand()` from `test`.`t1` limit 1) AS `(select rand() from t1 limit 1)` from `test`.`t1` limit 1) AS `(select (select rand() from t1 limit 1) from t1 limit 1)` from `test`.`t1`
|
||||
drop table t1;
|
||||
select t1.Continent, t2.Name, t2.Population from t1 LEFT JOIN t2 ON t1.Code = t2.Country where t2.Population IN (select max(t2.Population) AS Population from t2, t1 where t2.Country = t1.Code group by Continent);
|
||||
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||
|
|
|
@ -517,7 +517,7 @@ coercibility(load_file('../../std_data/words.dat'));
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache charset(load_file(_latin1'../../std_data/words.dat')) AS `charset(load_file('../../std_data/words.dat'))`,collation(load_file(_latin1'../../std_data/words.dat')) AS `collation(load_file('../../std_data/words.dat'))`,coercibility(load_file(_latin1'../../std_data/words.dat')) AS `coercibility(load_file('../../std_data/words.dat'))`
|
||||
Note 1003 select charset(load_file(_latin1'../../std_data/words.dat')) AS `charset(load_file('../../std_data/words.dat'))`,collation(load_file(_latin1'../../std_data/words.dat')) AS `collation(load_file('../../std_data/words.dat'))`,coercibility(load_file(_latin1'../../std_data/words.dat')) AS `coercibility(load_file('../../std_data/words.dat'))`
|
||||
update t1 set imagem=load_file('../../std_data/words.dat') where id=1;
|
||||
select if(imagem is null, "ERROR", "OK"),length(imagem) from t1 where id = 1;
|
||||
if(imagem is null, "ERROR", "OK") length(imagem)
|
||||
|
|
|
@ -75,7 +75,7 @@ explain extended select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache (@t1:=((@t2:=1) + (@t3:=4))) AS `@t1:=(@t2:=1)+@t3:=4`,(@t1) AS `@t1`,(@t2) AS `@t2`,(@t3) AS `@t3`
|
||||
Note 1003 select (@t1:=((@t2:=1) + (@t3:=4))) AS `@t1:=(@t2:=1)+@t3:=4`,(@t1) AS `@t1`,(@t2) AS `@t2`,(@t3) AS `@t3`
|
||||
select @t5;
|
||||
@t5
|
||||
1.23456
|
||||
|
@ -135,7 +135,7 @@ explain extended select last_insert_id(345);
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache last_insert_id(345) AS `last_insert_id(345)`
|
||||
Note 1003 select last_insert_id(345) AS `last_insert_id(345)`
|
||||
select @@IDENTITY,last_insert_id(), @@identity;
|
||||
@@IDENTITY last_insert_id() @@identity
|
||||
345 345 345
|
||||
|
@ -143,7 +143,7 @@ explain extended select @@IDENTITY,last_insert_id(), @@identity;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache 345 AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,345 AS `@@identity`
|
||||
Note 1003 select 345 AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,345 AS `@@identity`
|
||||
set big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
|
||||
set global concurrent_insert=2;
|
||||
show variables like 'concurrent_insert';
|
||||
|
|
|
@ -672,7 +672,7 @@ drop table t1;
|
|||
CREATE VIEW v1 (f1,f2,f3,f4) AS SELECT connection_id(), pi(), current_user(), version();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache connection_id() AS `f1`,pi() AS `f2`,current_user() AS `f3`,version() AS `f4`
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select connection_id() AS `f1`,pi() AS `f2`,current_user() AS `f3`,version() AS `f4`
|
||||
drop view v1;
|
||||
create table t1 (s1 int);
|
||||
create table t2 (s2 int);
|
||||
|
@ -787,7 +787,7 @@ create function `f``1` () returns int return 5;
|
|||
create view v1 as select test.`f``1` ();
|
||||
show create view v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `test`.`f``1`() AS `test.``f````1`` ()`
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`f``1`() AS `test.``f````1`` ()`
|
||||
select * from v1;
|
||||
test.`f``1` ()
|
||||
5
|
||||
|
@ -1868,14 +1868,14 @@ create table t2 (b timestamp default now());
|
|||
create view v1 as select a,b,t1.a < now() from t1,t2 where t1.a < now();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `t1`.`a` AS `a`,`t2`.`b` AS `b`,(`t1`.`a` < now()) AS `t1.a < now()` from (`t1` join `t2`) where (`t1`.`a` < now())
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t2`.`b` AS `b`,(`t1`.`a` < now()) AS `t1.a < now()` from (`t1` join `t2`) where (`t1`.`a` < now())
|
||||
drop view v1;
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 ( a varchar(50) );
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = CURRENT_USER();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `t1`.`a` AS `a` from `t1` where (`t1`.`a` = current_user())
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = current_user())
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = VERSION();
|
||||
SHOW CREATE VIEW v1;
|
||||
|
@ -1885,7 +1885,7 @@ DROP VIEW v1;
|
|||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = DATABASE();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `t1`.`a` AS `a` from `t1` where (`t1`.`a` = database())
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = database())
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col1 time);
|
||||
|
@ -2538,7 +2538,7 @@ show create view v1;
|
|||
drop view v1;
|
||||
//
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `test`.`t1`.`id` AS `id` from `t1`
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
|
||||
create table t1(f1 int, f2 int);
|
||||
create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb
|
||||
.f1 and ta.f2=tb.f2;
|
||||
|
@ -2683,7 +2683,7 @@ SELECT (year(now())-year(DOB)) AS Age
|
|||
FROM t1 HAVING Age < 75;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75)
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75)
|
||||
SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75;
|
||||
Age
|
||||
42
|
||||
|
|
|
@ -424,3 +424,75 @@ DROP TABLE urkunde;
|
|||
#
|
||||
--error 1049
|
||||
SHOW TABLES FROM non_existing_database;
|
||||
|
||||
|
||||
#
|
||||
# Bug#17203: "sql_no_cache sql_cache" in views created from prepared
|
||||
# statement
|
||||
#
|
||||
# The problem was that initial user setting was forgotten, and current
|
||||
# runtime-determined values of the flags were shown instead.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP VIEW IF EXISTS v1;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
--enable_warnings
|
||||
|
||||
# Check that SHOW CREATE VIEW shows SQL_CACHE flag exaclty as
|
||||
# specified by the user.
|
||||
CREATE VIEW v1 AS SELECT 1;
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE 1;
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1;
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
# Usage of NOW() disables caching, but we still have show what the
|
||||
# user have specified.
|
||||
CREATE VIEW v1 AS SELECT NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
# Check that SQL_NO_CACHE always wins.
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW();
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
# Check CREATE VIEW in a prepared statement in a procedure.
|
||||
delimiter |;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
SET @s= 'CREATE VIEW v1 AS SELECT SQL_CACHE 1';
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
END |
|
||||
delimiter ;|
|
||||
CALL p1();
|
||||
SHOW CREATE VIEW v1;
|
||||
|
||||
DROP PROCEDURE p1;
|
||||
DROP VIEW v1;
|
||||
|
||||
# End of 5.0 tests.
|
||||
|
|
|
@ -140,6 +140,7 @@ void lex_start(THD *thd, uchar *buf,uint length)
|
|||
lex->select_lex.link_next= lex->select_lex.slave= lex->select_lex.next= 0;
|
||||
lex->select_lex.link_prev= (st_select_lex_node**)&(lex->all_selects_list);
|
||||
lex->select_lex.options= 0;
|
||||
lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
|
||||
lex->select_lex.init_order();
|
||||
lex->select_lex.group_list.empty();
|
||||
lex->describe= 0;
|
||||
|
@ -1063,6 +1064,7 @@ int MYSQLlex(void *arg, void *yythd)
|
|||
void st_select_lex_node::init_query()
|
||||
{
|
||||
options= 0;
|
||||
sql_cache= SQL_CACHE_UNSPECIFIED;
|
||||
linkage= UNSPECIFIED_TYPE;
|
||||
no_error= no_table_names_allowed= 0;
|
||||
uncacheable= 0;
|
||||
|
@ -1139,6 +1141,7 @@ void st_select_lex::init_select()
|
|||
table_join_options= 0;
|
||||
in_sum_expr= with_wild= 0;
|
||||
options= 0;
|
||||
sql_cache= SQL_CACHE_UNSPECIFIED;
|
||||
braces= 0;
|
||||
when_list.empty();
|
||||
expr_list.empty();
|
||||
|
|
|
@ -311,6 +311,14 @@ protected:
|
|||
public:
|
||||
|
||||
ulonglong options;
|
||||
|
||||
/*
|
||||
In sql_cache we store SQL_CACHE flag as specified by user to be
|
||||
able to restore SELECT statement from internal structures.
|
||||
*/
|
||||
enum e_sql_cache { SQL_CACHE_UNSPECIFIED, SQL_NO_CACHE, SQL_CACHE };
|
||||
e_sql_cache sql_cache;
|
||||
|
||||
/*
|
||||
result of this query can't be cached, bit field, can be :
|
||||
UNCACHEABLE_DEPENDENT
|
||||
|
|
|
@ -14277,10 +14277,19 @@ void st_select_lex::print(THD *thd, String *str)
|
|||
str->append(STRING_WITH_LEN("sql_buffer_result "));
|
||||
if (options & OPTION_FOUND_ROWS)
|
||||
str->append(STRING_WITH_LEN("sql_calc_found_rows "));
|
||||
if (!thd->lex->safe_to_cache_query)
|
||||
str->append(STRING_WITH_LEN("sql_no_cache "));
|
||||
if (options & OPTION_TO_QUERY_CACHE)
|
||||
str->append(STRING_WITH_LEN("sql_cache "));
|
||||
switch (sql_cache)
|
||||
{
|
||||
case SQL_NO_CACHE:
|
||||
str->append(STRING_WITH_LEN("sql_no_cache "));
|
||||
break;
|
||||
case SQL_CACHE:
|
||||
str->append(STRING_WITH_LEN("sql_cache "));
|
||||
break;
|
||||
case SQL_CACHE_UNSPECIFIED:
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
|
||||
//Item List
|
||||
bool first= 1;
|
||||
|
|
|
@ -4002,10 +4002,21 @@ select_option:
|
|||
YYABORT;
|
||||
Select->options|= OPTION_FOUND_ROWS;
|
||||
}
|
||||
| SQL_NO_CACHE_SYM { Lex->safe_to_cache_query=0; }
|
||||
| SQL_NO_CACHE_SYM
|
||||
{
|
||||
Lex->safe_to_cache_query=0;
|
||||
Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
|
||||
Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
|
||||
}
|
||||
| SQL_CACHE_SYM
|
||||
{
|
||||
Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
|
||||
/* Honor this flag only if SQL_NO_CACHE wasn't specified. */
|
||||
if (Lex->select_lex.sql_cache != SELECT_LEX::SQL_NO_CACHE)
|
||||
{
|
||||
Lex->safe_to_cache_query=1;
|
||||
Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
|
||||
Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
|
||||
}
|
||||
}
|
||||
| ALL { Select->options|= SELECT_ALL; }
|
||||
;
|
||||
|
@ -6319,6 +6330,7 @@ truncate:
|
|||
LEX* lex= Lex;
|
||||
lex->sql_command= SQLCOM_TRUNCATE;
|
||||
lex->select_lex.options= 0;
|
||||
lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
|
||||
lex->select_lex.init_order();
|
||||
}
|
||||
;
|
||||
|
|
Loading…
Add table
Reference in a new issue