Merge bk-internal:/home/bk/mysql-5.1-maint
into shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
This commit is contained in:
commit
29238d914c
@ -9,3 +9,4 @@
|
|||||||
451ab499rgdjXyOnUDqHu-wBDoS-OQ
|
451ab499rgdjXyOnUDqHu-wBDoS-OQ
|
||||||
45214442pBGT9KuZEGixBH71jTzbOA
|
45214442pBGT9KuZEGixBH71jTzbOA
|
||||||
45214a07hVsIGwvwa-WrO-jpeaSwVw
|
45214a07hVsIGwvwa-WrO-jpeaSwVw
|
||||||
|
452a92d0-31-8wSzSfZi165fcGcXPA
|
||||||
|
@ -386,6 +386,21 @@ int main(int argc,char *argv[])
|
|||||||
else
|
else
|
||||||
status.add_to_history=1;
|
status.add_to_history=1;
|
||||||
status.exit_status=1;
|
status.exit_status=1;
|
||||||
|
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
The file descriptor-layer may be out-of-sync with the file-number layer,
|
||||||
|
so we make sure that "stdout" is really open. If its file is closed then
|
||||||
|
explicitly close the FD layer.
|
||||||
|
*/
|
||||||
|
int stdout_fileno_copy;
|
||||||
|
stdout_fileno_copy= dup(fileno(stdout)); /* Okay if fileno fails. */
|
||||||
|
if (stdout_fileno_copy == -1)
|
||||||
|
fclose(stdout);
|
||||||
|
else
|
||||||
|
close(stdout_fileno_copy); /* Clean up dup(). */
|
||||||
|
}
|
||||||
|
|
||||||
load_defaults("my",load_default_groups,&argc,&argv);
|
load_defaults("my",load_default_groups,&argc,&argv);
|
||||||
defaults_argv=argv;
|
defaults_argv=argv;
|
||||||
if (get_options(argc, (char **) argv))
|
if (get_options(argc, (char **) argv))
|
||||||
|
@ -97,15 +97,25 @@ int my_date_to_str(const MYSQL_TIME *l_time, char *to);
|
|||||||
int my_datetime_to_str(const MYSQL_TIME *l_time, char *to);
|
int my_datetime_to_str(const MYSQL_TIME *l_time, char *to);
|
||||||
int my_TIME_to_str(const MYSQL_TIME *l_time, char *to);
|
int my_TIME_to_str(const MYSQL_TIME *l_time, char *to);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The following must be sorted so that simple intervals comes first.
|
Available interval types used in any statement.
|
||||||
(get_interval_value() depends on this)
|
|
||||||
|
'interval_type' must be sorted so that simple intervals comes first,
|
||||||
|
ie year, quarter, month, week, day, hour, etc. The order based on
|
||||||
|
interval size is also important and the intervals should be kept in a
|
||||||
|
large to smaller order. (get_interval_value() depends on this)
|
||||||
|
|
||||||
|
Note: If you change the order of elements in this enum you should fix
|
||||||
|
order of elements in 'interval_type_to_name' and 'interval_names'
|
||||||
|
arrays
|
||||||
|
|
||||||
|
See also interval_type_to_name, get_interval_value, interval_names
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum interval_type
|
enum interval_type
|
||||||
{
|
{
|
||||||
INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_DAY, INTERVAL_HOUR,
|
INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_WEEK, INTERVAL_DAY,
|
||||||
INTERVAL_MINUTE, INTERVAL_WEEK, INTERVAL_SECOND, INTERVAL_MICROSECOND ,
|
INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND, INTERVAL_MICROSECOND,
|
||||||
INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE,
|
INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE,
|
||||||
INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND,
|
INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND,
|
||||||
INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND, INTERVAL_HOUR_MICROSECOND,
|
INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND, INTERVAL_HOUR_MICROSECOND,
|
||||||
|
@ -71,3 +71,17 @@ NULL
|
|||||||
NULL
|
NULL
|
||||||
NULL
|
NULL
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
End of 4.1 tests
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY;
|
||||||
|
CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY
|
||||||
|
2006-09-27
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH;
|
||||||
|
CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH
|
||||||
|
2006-10-26
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR;
|
||||||
|
CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR
|
||||||
|
2007-09-26
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK;
|
||||||
|
CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK
|
||||||
|
2006-10-03
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -612,7 +612,7 @@ date_add(date,INTERVAL "1 1:1:1" DAY_SECOND)
|
|||||||
2003-01-03 01:01:01
|
2003-01-03 01:01:01
|
||||||
select date_add(date,INTERVAL "1" WEEK) from t1;
|
select date_add(date,INTERVAL "1" WEEK) from t1;
|
||||||
date_add(date,INTERVAL "1" WEEK)
|
date_add(date,INTERVAL "1" WEEK)
|
||||||
2003-01-09 00:00:00
|
2003-01-09
|
||||||
select date_add(date,INTERVAL "1" QUARTER) from t1;
|
select date_add(date,INTERVAL "1" QUARTER) from t1;
|
||||||
date_add(date,INTERVAL "1" QUARTER)
|
date_add(date,INTERVAL "1" QUARTER)
|
||||||
2003-04-02
|
2003-04-02
|
||||||
@ -621,7 +621,7 @@ timestampadd(MINUTE, 1, date)
|
|||||||
2003-01-02 00:01:00
|
2003-01-02 00:01:00
|
||||||
select timestampadd(WEEK, 1, date) from t1;
|
select timestampadd(WEEK, 1, date) from t1;
|
||||||
timestampadd(WEEK, 1, date)
|
timestampadd(WEEK, 1, date)
|
||||||
2003-01-09 00:00:00
|
2003-01-09
|
||||||
select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
|
select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
|
||||||
timestampadd(SQL_TSI_SECOND, 1, date)
|
timestampadd(SQL_TSI_SECOND, 1, date)
|
||||||
2003-01-02 00:00:01
|
2003-01-02 00:00:01
|
||||||
|
@ -149,4 +149,17 @@ ERROR at line 1: USE must be followed by a database name
|
|||||||
\\
|
\\
|
||||||
';
|
';
|
||||||
';
|
';
|
||||||
|
create table t17583 (a int);
|
||||||
|
insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
select count(*) from t17583;
|
||||||
|
count(*)
|
||||||
|
1280
|
||||||
|
drop table t17583;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -499,54 +499,6 @@ create temporary table if not exists t1 (a1 int);
|
|||||||
execute stmt;
|
execute stmt;
|
||||||
drop temporary table t1;
|
drop temporary table t1;
|
||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
CREATE TABLE t1(
|
|
||||||
ID int(10) unsigned NOT NULL auto_increment,
|
|
||||||
Member_ID varchar(15) NOT NULL default '',
|
|
||||||
Action varchar(12) NOT NULL,
|
|
||||||
Action_Date datetime NOT NULL,
|
|
||||||
Track varchar(15) default NULL,
|
|
||||||
User varchar(12) default NULL,
|
|
||||||
Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update
|
|
||||||
CURRENT_TIMESTAMP,
|
|
||||||
PRIMARY KEY (ID),
|
|
||||||
KEY Action (Action),
|
|
||||||
KEY Action_Date (Action_Date)
|
|
||||||
);
|
|
||||||
INSERT INTO t1(Member_ID, Action, Action_Date, Track) VALUES
|
|
||||||
('111111', 'Disenrolled', '2006-03-01', 'CAD' ),
|
|
||||||
('111111', 'Enrolled', '2006-03-01', 'CAD' ),
|
|
||||||
('111111', 'Disenrolled', '2006-07-03', 'CAD' ),
|
|
||||||
('222222', 'Enrolled', '2006-03-07', 'CAD' ),
|
|
||||||
('222222', 'Enrolled', '2006-03-07', 'CHF' ),
|
|
||||||
('222222', 'Disenrolled', '2006-08-02', 'CHF' ),
|
|
||||||
('333333', 'Enrolled', '2006-03-01', 'CAD' ),
|
|
||||||
('333333', 'Disenrolled', '2006-03-01', 'CAD' ),
|
|
||||||
('444444', 'Enrolled', '2006-03-01', 'CAD' ),
|
|
||||||
('555555', 'Disenrolled', '2006-03-01', 'CAD' ),
|
|
||||||
('555555', 'Enrolled', '2006-07-21', 'CAD' ),
|
|
||||||
('555555', 'Disenrolled', '2006-03-01', 'CHF' ),
|
|
||||||
('666666', 'Enrolled', '2006-02-09', 'CAD' ),
|
|
||||||
('666666', 'Enrolled', '2006-05-12', 'CHF' ),
|
|
||||||
('666666', 'Disenrolled', '2006-06-01', 'CAD' );
|
|
||||||
PREPARE STMT FROM
|
|
||||||
"SELECT GROUP_CONCAT(Track SEPARATOR ', ') FROM t1
|
|
||||||
WHERE Member_ID=? AND Action='Enrolled' AND
|
|
||||||
(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t1
|
|
||||||
WHERE Member_ID=?
|
|
||||||
GROUP BY Track
|
|
||||||
HAVING Track>='CAD' AND
|
|
||||||
MAX(Action_Date)>'2006-03-01')";
|
|
||||||
SET @id='111111';
|
|
||||||
EXECUTE STMT USING @id,@id;
|
|
||||||
GROUP_CONCAT(Track SEPARATOR ', ')
|
|
||||||
NULL
|
|
||||||
SET @id='222222';
|
|
||||||
EXECUTE STMT USING @id,@id;
|
|
||||||
GROUP_CONCAT(Track SEPARATOR ', ')
|
|
||||||
CAD
|
|
||||||
DEALLOCATE PREPARE STMT;
|
|
||||||
DROP TABLE t1;
|
|
||||||
End of 4.1 tests
|
|
||||||
create table t1 (a varchar(20));
|
create table t1 (a varchar(20));
|
||||||
insert into t1 values ('foo');
|
insert into t1 values ('foo');
|
||||||
prepare stmt FROM 'SELECT char_length (a) FROM t1';
|
prepare stmt FROM 'SELECT char_length (a) FROM t1';
|
||||||
@ -564,77 +516,6 @@ SELECT FOUND_ROWS();
|
|||||||
FOUND_ROWS()
|
FOUND_ROWS()
|
||||||
2
|
2
|
||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
create table t1 (a char(3) not null, b char(3) not null,
|
|
||||||
c char(3) not null, primary key (a, b, c));
|
|
||||||
create table t2 like t1;
|
|
||||||
prepare stmt from
|
|
||||||
"select t1.a from (t1 left outer join t2 on t2.a=1 and t1.b=t2.b)
|
|
||||||
where t1.a=1";
|
|
||||||
execute stmt;
|
|
||||||
a
|
|
||||||
execute stmt;
|
|
||||||
a
|
|
||||||
execute stmt;
|
|
||||||
a
|
|
||||||
prepare stmt from
|
|
||||||
"select t1.a, t1.b, t1.c, t2.a, t2.b, t2.c from
|
|
||||||
(t1 left outer join t2 on t2.a=? and t1.b=t2.b)
|
|
||||||
left outer join t2 t3 on t3.a=? where t1.a=?";
|
|
||||||
set @a:=1, @b:=1, @c:=1;
|
|
||||||
execute stmt using @a, @b, @c;
|
|
||||||
a b c a b c
|
|
||||||
execute stmt using @a, @b, @c;
|
|
||||||
a b c a b c
|
|
||||||
execute stmt using @a, @b, @c;
|
|
||||||
a b c a b c
|
|
||||||
deallocate prepare stmt;
|
|
||||||
drop table t1,t2;
|
|
||||||
SET @aux= "SELECT COUNT(*)
|
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS A,
|
|
||||||
INFORMATION_SCHEMA.COLUMNS B
|
|
||||||
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
|
|
||||||
AND A.TABLE_NAME = B.TABLE_NAME
|
|
||||||
AND A.COLUMN_NAME = B.COLUMN_NAME AND
|
|
||||||
A.TABLE_NAME = 'user'";
|
|
||||||
prepare my_stmt from @aux;
|
|
||||||
execute my_stmt;
|
|
||||||
COUNT(*)
|
|
||||||
39
|
|
||||||
execute my_stmt;
|
|
||||||
COUNT(*)
|
|
||||||
39
|
|
||||||
execute my_stmt;
|
|
||||||
COUNT(*)
|
|
||||||
39
|
|
||||||
deallocate prepare my_stmt;
|
|
||||||
drop procedure if exists p1|
|
|
||||||
drop table if exists t1|
|
|
||||||
create table t1 (id int)|
|
|
||||||
insert into t1 values(1)|
|
|
||||||
create procedure p1(a int, b int)
|
|
||||||
begin
|
|
||||||
declare c int;
|
|
||||||
select max(id)+1 into c from t1;
|
|
||||||
insert into t1 select a+b;
|
|
||||||
insert into t1 select a-b;
|
|
||||||
insert into t1 select a-c;
|
|
||||||
end|
|
|
||||||
set @a= 3, @b= 4|
|
|
||||||
prepare stmt from "call p1(?, ?)"|
|
|
||||||
execute stmt using @a, @b|
|
|
||||||
execute stmt using @a, @b|
|
|
||||||
select * from t1|
|
|
||||||
id
|
|
||||||
1
|
|
||||||
7
|
|
||||||
-1
|
|
||||||
1
|
|
||||||
7
|
|
||||||
-1
|
|
||||||
-5
|
|
||||||
deallocate prepare stmt|
|
|
||||||
drop procedure p1|
|
|
||||||
drop table t1|
|
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1051 Unknown table 't1'
|
Note 1051 Unknown table 't1'
|
||||||
@ -698,47 +579,6 @@ id
|
|||||||
3
|
3
|
||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
create table t1 (a int);
|
|
||||||
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
|
||||||
prepare stmt from "select * from t1 limit ?, ?";
|
|
||||||
set @offset=0, @limit=1;
|
|
||||||
execute stmt using @offset, @limit;
|
|
||||||
a
|
|
||||||
1
|
|
||||||
select * from t1 limit 0, 1;
|
|
||||||
a
|
|
||||||
1
|
|
||||||
set @offset=3, @limit=2;
|
|
||||||
execute stmt using @offset, @limit;
|
|
||||||
a
|
|
||||||
4
|
|
||||||
5
|
|
||||||
select * from t1 limit 3, 2;
|
|
||||||
a
|
|
||||||
4
|
|
||||||
5
|
|
||||||
prepare stmt from "select * from t1 limit ?";
|
|
||||||
execute stmt using @limit;
|
|
||||||
a
|
|
||||||
1
|
|
||||||
2
|
|
||||||
prepare stmt from "select * from t1 where a in (select a from t1 limit ?)";
|
|
||||||
ERROR 42000: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
|
|
||||||
prepare stmt from "select * from t1 union all select * from t1 limit ?, ?";
|
|
||||||
set @offset=9;
|
|
||||||
set @limit=2;
|
|
||||||
execute stmt using @offset, @limit;
|
|
||||||
a
|
|
||||||
10
|
|
||||||
1
|
|
||||||
prepare stmt from "(select * from t1 limit ?, ?) union all
|
|
||||||
(select * from t1 limit ?, ?) order by a limit ?";
|
|
||||||
execute stmt using @offset, @limit, @offset, @limit, @limit;
|
|
||||||
a
|
|
||||||
10
|
|
||||||
10
|
|
||||||
drop table t1;
|
|
||||||
deallocate prepare stmt;
|
|
||||||
create table t1 (id int);
|
create table t1 (id int);
|
||||||
prepare stmt from "insert into t1 (id) select id from t1 union select id from t1";
|
prepare stmt from "insert into t1 (id) select id from t1 union select id from t1";
|
||||||
execute stmt;
|
execute stmt;
|
||||||
@ -839,15 +679,6 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
select ? from t1;
|
select ? from t1;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t1' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t1' at line 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE b12651_T1(a int) ENGINE=MYISAM;
|
|
||||||
CREATE TABLE b12651_T2(b int) ENGINE=MYISAM;
|
|
||||||
CREATE VIEW b12651_V1 as SELECT b FROM b12651_T2;
|
|
||||||
PREPARE b12651 FROM 'SELECT 1 FROM b12651_T1 WHERE a IN (SELECT b FROM b12651_V1)';
|
|
||||||
EXECUTE b12651;
|
|
||||||
1
|
|
||||||
DROP VIEW b12651_V1;
|
|
||||||
DROP TABLE b12651_T1, b12651_T2;
|
|
||||||
DEALLOCATE PREPARE b12651;
|
|
||||||
prepare stmt from "select @@time_zone";
|
prepare stmt from "select @@time_zone";
|
||||||
execute stmt;
|
execute stmt;
|
||||||
@@time_zone
|
@@time_zone
|
||||||
@ -1064,6 +895,194 @@ select @@max_prepared_stmt_count, @@prepared_stmt_count;
|
|||||||
@@max_prepared_stmt_count @@prepared_stmt_count
|
@@max_prepared_stmt_count @@prepared_stmt_count
|
||||||
3 0
|
3 0
|
||||||
set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
|
set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
|
||||||
|
drop table if exists t1;
|
||||||
|
create temporary table if not exists t1 (a1 int);
|
||||||
|
prepare stmt from "delete t1 from t1 where (cast(a1/3 as unsigned) * 3) = a1";
|
||||||
|
drop temporary table t1;
|
||||||
|
create temporary table if not exists t1 (a1 int);
|
||||||
|
execute stmt;
|
||||||
|
drop temporary table t1;
|
||||||
|
create temporary table if not exists t1 (a1 int);
|
||||||
|
execute stmt;
|
||||||
|
drop temporary table t1;
|
||||||
|
create temporary table if not exists t1 (a1 int);
|
||||||
|
execute stmt;
|
||||||
|
drop temporary table t1;
|
||||||
|
deallocate prepare stmt;
|
||||||
|
CREATE TABLE t1(
|
||||||
|
ID int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Member_ID varchar(15) NOT NULL default '',
|
||||||
|
Action varchar(12) NOT NULL,
|
||||||
|
Action_Date datetime NOT NULL,
|
||||||
|
Track varchar(15) default NULL,
|
||||||
|
User varchar(12) default NULL,
|
||||||
|
Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update
|
||||||
|
CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
KEY Action (Action),
|
||||||
|
KEY Action_Date (Action_Date)
|
||||||
|
);
|
||||||
|
INSERT INTO t1(Member_ID, Action, Action_Date, Track) VALUES
|
||||||
|
('111111', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('111111', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('111111', 'Disenrolled', '2006-07-03', 'CAD' ),
|
||||||
|
('222222', 'Enrolled', '2006-03-07', 'CAD' ),
|
||||||
|
('222222', 'Enrolled', '2006-03-07', 'CHF' ),
|
||||||
|
('222222', 'Disenrolled', '2006-08-02', 'CHF' ),
|
||||||
|
('333333', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('333333', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('444444', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('555555', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('555555', 'Enrolled', '2006-07-21', 'CAD' ),
|
||||||
|
('555555', 'Disenrolled', '2006-03-01', 'CHF' ),
|
||||||
|
('666666', 'Enrolled', '2006-02-09', 'CAD' ),
|
||||||
|
('666666', 'Enrolled', '2006-05-12', 'CHF' ),
|
||||||
|
('666666', 'Disenrolled', '2006-06-01', 'CAD' );
|
||||||
|
PREPARE STMT FROM
|
||||||
|
"SELECT GROUP_CONCAT(Track SEPARATOR ', ') FROM t1
|
||||||
|
WHERE Member_ID=? AND Action='Enrolled' AND
|
||||||
|
(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t1
|
||||||
|
WHERE Member_ID=?
|
||||||
|
GROUP BY Track
|
||||||
|
HAVING Track>='CAD' AND
|
||||||
|
MAX(Action_Date)>'2006-03-01')";
|
||||||
|
SET @id='111111';
|
||||||
|
EXECUTE STMT USING @id,@id;
|
||||||
|
GROUP_CONCAT(Track SEPARATOR ', ')
|
||||||
|
NULL
|
||||||
|
SET @id='222222';
|
||||||
|
EXECUTE STMT USING @id,@id;
|
||||||
|
GROUP_CONCAT(Track SEPARATOR ', ')
|
||||||
|
CAD
|
||||||
|
DEALLOCATE PREPARE STMT;
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 4.1 tests
|
||||||
|
create table t1 (a varchar(20));
|
||||||
|
insert into t1 values ('foo');
|
||||||
|
prepare stmt FROM 'SELECT char_length (a) FROM t1';
|
||||||
|
ERROR 42000: FUNCTION test.char_length does not exist
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (a char(3) not null, b char(3) not null,
|
||||||
|
c char(3) not null, primary key (a, b, c));
|
||||||
|
create table t2 like t1;
|
||||||
|
prepare stmt from
|
||||||
|
"select t1.a from (t1 left outer join t2 on t2.a=1 and t1.b=t2.b)
|
||||||
|
where t1.a=1";
|
||||||
|
execute stmt;
|
||||||
|
a
|
||||||
|
execute stmt;
|
||||||
|
a
|
||||||
|
execute stmt;
|
||||||
|
a
|
||||||
|
prepare stmt from
|
||||||
|
"select t1.a, t1.b, t1.c, t2.a, t2.b, t2.c from
|
||||||
|
(t1 left outer join t2 on t2.a=? and t1.b=t2.b)
|
||||||
|
left outer join t2 t3 on t3.a=? where t1.a=?";
|
||||||
|
set @a:=1, @b:=1, @c:=1;
|
||||||
|
execute stmt using @a, @b, @c;
|
||||||
|
a b c a b c
|
||||||
|
execute stmt using @a, @b, @c;
|
||||||
|
a b c a b c
|
||||||
|
execute stmt using @a, @b, @c;
|
||||||
|
a b c a b c
|
||||||
|
deallocate prepare stmt;
|
||||||
|
drop table t1,t2;
|
||||||
|
SET @aux= "SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS A,
|
||||||
|
INFORMATION_SCHEMA.COLUMNS B
|
||||||
|
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
|
||||||
|
AND A.TABLE_NAME = B.TABLE_NAME
|
||||||
|
AND A.COLUMN_NAME = B.COLUMN_NAME AND
|
||||||
|
A.TABLE_NAME = 'user'";
|
||||||
|
prepare my_stmt from @aux;
|
||||||
|
execute my_stmt;
|
||||||
|
COUNT(*)
|
||||||
|
39
|
||||||
|
execute my_stmt;
|
||||||
|
COUNT(*)
|
||||||
|
39
|
||||||
|
execute my_stmt;
|
||||||
|
COUNT(*)
|
||||||
|
39
|
||||||
|
deallocate prepare my_stmt;
|
||||||
|
drop procedure if exists p1|
|
||||||
|
drop table if exists t1|
|
||||||
|
create table t1 (id int)|
|
||||||
|
insert into t1 values(1)|
|
||||||
|
create procedure p1(a int, b int)
|
||||||
|
begin
|
||||||
|
declare c int;
|
||||||
|
select max(id)+1 into c from t1;
|
||||||
|
insert into t1 select a+b;
|
||||||
|
insert into t1 select a-b;
|
||||||
|
insert into t1 select a-c;
|
||||||
|
end|
|
||||||
|
set @a= 3, @b= 4|
|
||||||
|
prepare stmt from "call p1(?, ?)"|
|
||||||
|
execute stmt using @a, @b|
|
||||||
|
execute stmt using @a, @b|
|
||||||
|
select * from t1|
|
||||||
|
id
|
||||||
|
1
|
||||||
|
7
|
||||||
|
-1
|
||||||
|
1
|
||||||
|
7
|
||||||
|
-1
|
||||||
|
-5
|
||||||
|
deallocate prepare stmt|
|
||||||
|
drop procedure p1|
|
||||||
|
drop table t1|
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
||||||
|
prepare stmt from "select * from t1 limit ?, ?";
|
||||||
|
set @offset=0, @limit=1;
|
||||||
|
execute stmt using @offset, @limit;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select * from t1 limit 0, 1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
set @offset=3, @limit=2;
|
||||||
|
execute stmt using @offset, @limit;
|
||||||
|
a
|
||||||
|
4
|
||||||
|
5
|
||||||
|
select * from t1 limit 3, 2;
|
||||||
|
a
|
||||||
|
4
|
||||||
|
5
|
||||||
|
prepare stmt from "select * from t1 limit ?";
|
||||||
|
execute stmt using @limit;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
prepare stmt from "select * from t1 where a in (select a from t1 limit ?)";
|
||||||
|
ERROR 42000: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
|
||||||
|
prepare stmt from "select * from t1 union all select * from t1 limit ?, ?";
|
||||||
|
set @offset=9;
|
||||||
|
set @limit=2;
|
||||||
|
execute stmt using @offset, @limit;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
1
|
||||||
|
prepare stmt from "(select * from t1 limit ?, ?) union all
|
||||||
|
(select * from t1 limit ?, ?) order by a limit ?";
|
||||||
|
execute stmt using @offset, @limit, @offset, @limit, @limit;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
10
|
||||||
|
drop table t1;
|
||||||
|
deallocate prepare stmt;
|
||||||
|
CREATE TABLE b12651_T1(a int) ENGINE=MYISAM;
|
||||||
|
CREATE TABLE b12651_T2(b int) ENGINE=MYISAM;
|
||||||
|
CREATE VIEW b12651_V1 as SELECT b FROM b12651_T2;
|
||||||
|
PREPARE b12651 FROM 'SELECT 1 FROM b12651_T1 WHERE a IN (SELECT b FROM b12651_V1)';
|
||||||
|
EXECUTE b12651;
|
||||||
|
1
|
||||||
|
DROP VIEW b12651_V1;
|
||||||
|
DROP TABLE b12651_T1, b12651_T2;
|
||||||
|
DEALLOCATE PREPARE b12651;
|
||||||
create table t1 (id int);
|
create table t1 (id int);
|
||||||
prepare ins_call from "insert into t1 (id) values (1)";
|
prepare ins_call from "insert into t1 (id) values (1)";
|
||||||
execute ins_call;
|
execute ins_call;
|
||||||
@ -1365,22 +1384,26 @@ create procedure proc_1() reset query cache;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin reset query cache; return 1; end|
|
create function func_1() returns int begin reset query cache; return 1; end|
|
||||||
|
ERROR 0A000: RESET is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: RESET is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "reset query cache";
|
prepare abc from "reset query cache";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
create procedure proc_1() reset master;
|
create procedure proc_1() reset master;
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin reset master; return 1; end|
|
create function func_1() returns int begin reset master; return 1; end|
|
||||||
|
ERROR 0A000: RESET is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: RESET is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "reset master";
|
prepare abc from "reset master";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1390,11 +1413,13 @@ create procedure proc_1() reset slave;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin reset slave; return 1; end|
|
create function func_1() returns int begin reset slave; return 1; end|
|
||||||
|
ERROR 0A000: RESET is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: RESET is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "reset slave";
|
prepare abc from "reset slave";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1429,13 +1454,13 @@ call proc_1();
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush hosts; return 1; end|
|
create function func_1() returns int begin flush hosts; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush hosts";
|
prepare abc from "flush hosts";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1445,13 +1470,13 @@ create procedure proc_1() flush privileges;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush privileges; return 1; end|
|
create function func_1() returns int begin flush privileges; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush privileges";
|
prepare abc from "flush privileges";
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
create procedure proc_1() flush tables with read lock;
|
create procedure proc_1() flush tables with read lock;
|
||||||
@ -1461,9 +1486,13 @@ call proc_1();
|
|||||||
unlock tables;
|
unlock tables;
|
||||||
call proc_1();
|
call proc_1();
|
||||||
unlock tables;
|
unlock tables;
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush tables with read lock; return 1; end|
|
create function func_1() returns int begin flush tables with read lock; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
|
select func_1(), func_1(), func_1() from dual;
|
||||||
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush tables with read lock";
|
prepare abc from "flush tables with read lock";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1474,13 +1503,13 @@ create procedure proc_1() flush tables;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush tables; return 1; end|
|
create function func_1() returns int begin flush tables; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush tables";
|
prepare abc from "flush tables";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1540,13 +1569,13 @@ mysql user 0 0
|
|||||||
mysql general_log 1 0
|
mysql general_log 1 0
|
||||||
mysql host 0 0
|
mysql host 0 0
|
||||||
flush tables;
|
flush tables;
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush tables; return 1; end|
|
create function func_1() returns int begin flush tables; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
flush tables;
|
flush tables;
|
||||||
select Host, User from mysql.user limit 0;
|
select Host, User from mysql.user limit 0;
|
||||||
Host User
|
Host User
|
||||||
@ -1603,13 +1632,13 @@ create procedure proc_1() flush logs;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush logs; return 1; end|
|
create function func_1() returns int begin flush logs; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush logs";
|
prepare abc from "flush logs";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1619,13 +1648,13 @@ create procedure proc_1() flush status;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush status; return 1; end|
|
create function func_1() returns int begin flush status; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush status";
|
prepare abc from "flush status";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1635,39 +1664,39 @@ create procedure proc_1() flush slave;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush slave; return 1; end|
|
create function func_1() returns int begin flush slave; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush slave";
|
prepare abc from "flush slave";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
create procedure proc_1() flush master;
|
create procedure proc_1() flush master;
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush master; return 1; end|
|
create function func_1() returns int begin flush master; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush master";
|
prepare abc from "flush master";
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
create procedure proc_1() flush des_key_file;
|
create procedure proc_1() flush des_key_file;
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush des_key_file; return 1; end|
|
create function func_1() returns int begin flush des_key_file; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush des_key_file";
|
prepare abc from "flush des_key_file";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1677,13 +1706,13 @@ create procedure proc_1() flush user_resources;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin flush user_resources; return 1; end|
|
create function func_1() returns int begin flush user_resources; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
drop procedure proc_1;
|
||||||
prepare abc from "flush user_resources";
|
prepare abc from "flush user_resources";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1763,18 +1792,6 @@ Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|||||||
execute abc;
|
execute abc;
|
||||||
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
create procedure proc_1() show scheduler status;
|
|
||||||
drop procedure proc_1;
|
|
||||||
create function func_1() returns int begin show scheduler status; return 1; end|
|
|
||||||
ERROR 0A000: Not allowed to return a result set from a function
|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
|
||||||
drop function func_1;
|
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
|
||||||
prepare abc from "show scheduler status";
|
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
|
||||||
deallocate prepare abc;
|
|
||||||
ERROR HY000: Unknown prepared statement handler (abc) given to DEALLOCATE PREPARE
|
|
||||||
drop procedure if exists a;
|
drop procedure if exists a;
|
||||||
create procedure a() select 42;
|
create procedure a() select 42;
|
||||||
create procedure proc_1(a char(2)) show create procedure a;
|
create procedure proc_1(a char(2)) show create procedure a;
|
||||||
@ -1952,11 +1969,11 @@ ERROR HY000: No paths allowed for shared library
|
|||||||
drop procedure proc_1;
|
drop procedure proc_1;
|
||||||
create procedure proc_1() install plugin my_plug soname 'some_plugin.so';
|
create procedure proc_1() install plugin my_plug soname 'some_plugin.so';
|
||||||
call proc_1();
|
call proc_1();
|
||||||
ERROR HY000: Can't open shared library '/work/mysql-5.1-runtime/mysql-test/lib/mysql/some_plugin.so' (errno: 0 cannot open shared object file: No such file or directory)
|
ERROR HY000: Can't open shared library
|
||||||
call proc_1();
|
call proc_1();
|
||||||
ERROR HY000: Can't open shared library '/work/mysql-5.1-runtime/mysql-test/lib/mysql/some_plugin.so' (errno: 22 cannot open shared object file: No such file or directory)
|
ERROR HY000: Can't open shared library
|
||||||
call proc_1();
|
call proc_1();
|
||||||
ERROR HY000: Can't open shared library '/work/mysql-5.1-runtime/mysql-test/lib/mysql/some_plugin.so' (errno: 22 cannot open shared object file: No such file or directory)
|
ERROR HY000: Can't open shared library
|
||||||
drop procedure proc_1;
|
drop procedure proc_1;
|
||||||
create function func_1() returns int begin install plugin my_plug soname '/tmp/plugin'; return 1; end|
|
create function func_1() returns int begin install plugin my_plug soname '/tmp/plugin'; return 1; end|
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
||||||
@ -2086,7 +2103,7 @@ drop user pstest_xyz@localhost;
|
|||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
drop event if exists xyz;
|
drop event if exists xyz;
|
||||||
create function func_1() returns int begin create event xyz on schedule at now() do select 123; return 1; end|
|
create function func_1() returns int begin create event xyz on schedule at now() do select 123; return 1; end|
|
||||||
ERROR 0A000: Not allowed to return a result set from a function
|
ERROR HY000: Recursivity of EVENT DDL statements is forbidden when body is present
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
ERROR 42000: FUNCTION test.func_1 does not exist
|
ERROR 42000: FUNCTION test.func_1 does not exist
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
@ -15,7 +15,6 @@ ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t
|
|||||||
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
||||||
ndb_load : BUG#17233 2006-05-04 tomas failed load data from infile causes mysqld dbug_assert, binlog not flushed
|
ndb_load : BUG#17233 2006-05-04 tomas failed load data from infile causes mysqld dbug_assert, binlog not flushed
|
||||||
partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table
|
partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table
|
||||||
ps : BUG#21524 2006-08-08 pgalbraith 'ps' test fails in --ps-protocol test AMD64 bit
|
|
||||||
ps_7ndb : BUG#18950 2006-02-16 jmiller create table like does not obtain LOCK_open
|
ps_7ndb : BUG#18950 2006-02-16 jmiller create table like does not obtain LOCK_open
|
||||||
rpl_ndb_2innodb : BUG#19227 2006-04-20 pekka pk delete apparently not replicated
|
rpl_ndb_2innodb : BUG#19227 2006-04-20 pekka pk delete apparently not replicated
|
||||||
rpl_ndb_2myisam : BUG#19227 Seems to pass currently
|
rpl_ndb_2myisam : BUG#19227 Seems to pass currently
|
||||||
|
@ -64,4 +64,17 @@ insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY));
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
--echo End of 4.1 tests
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#21811
|
||||||
|
#
|
||||||
|
# Make sure we end up with an appropriate
|
||||||
|
# date format (DATE) after addition operation
|
||||||
|
#
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY;
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH;
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR;
|
||||||
|
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -153,4 +153,21 @@ drop table t1;
|
|||||||
--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
|
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#17583: mysql drops connection when stdout is not writable
|
||||||
|
#
|
||||||
|
create table t17583 (a int);
|
||||||
|
insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
insert into t17583 select a from t17583;
|
||||||
|
# Close to the minimal data needed to exercise bug.
|
||||||
|
select count(*) from t17583;
|
||||||
|
--exec echo "select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; " |$MYSQL test >&-
|
||||||
|
drop table t17583;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -1447,13 +1447,15 @@ create procedure proc_1() reset query cache;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin reset query cache; return 1; end|
|
create function func_1() returns int begin reset query cache; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "reset query cache";
|
prepare abc from "reset query cache";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1462,13 +1464,15 @@ deallocate prepare abc;
|
|||||||
|
|
||||||
|
|
||||||
create procedure proc_1() reset master;
|
create procedure proc_1() reset master;
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin reset master; return 1; end|
|
create function func_1() returns int begin reset master; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "reset master";
|
prepare abc from "reset master";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1480,13 +1484,15 @@ create procedure proc_1() reset slave;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin reset slave; return 1; end|
|
create function func_1() returns int begin reset slave; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "reset slave";
|
prepare abc from "reset slave";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1527,15 +1533,15 @@ call proc_1();
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush hosts; return 1; end|
|
create function func_1() returns int begin flush hosts; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush hosts";
|
prepare abc from "flush hosts";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1547,15 +1553,15 @@ create procedure proc_1() flush privileges;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush privileges; return 1; end|
|
create function func_1() returns int begin flush privileges; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush privileges";
|
prepare abc from "flush privileges";
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
|
|
||||||
@ -1567,11 +1573,15 @@ call proc_1();
|
|||||||
unlock tables;
|
unlock tables;
|
||||||
call proc_1();
|
call proc_1();
|
||||||
unlock tables;
|
unlock tables;
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush tables with read lock; return 1; end|
|
create function func_1() returns int begin flush tables with read lock; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
|
select func_1(), func_1(), func_1() from dual;
|
||||||
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush tables with read lock";
|
prepare abc from "flush tables with read lock";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1584,15 +1594,15 @@ create procedure proc_1() flush tables;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush tables; return 1; end|
|
create function func_1() returns int begin flush tables; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush tables";
|
prepare abc from "flush tables";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1622,15 +1632,15 @@ select Host, User from mysql.user limit 0;
|
|||||||
select Host, Db from mysql.host limit 0;
|
select Host, Db from mysql.host limit 0;
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
flush tables;
|
flush tables;
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush tables; return 1; end|
|
create function func_1() returns int begin flush tables; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
flush tables;
|
flush tables;
|
||||||
select Host, User from mysql.user limit 0;
|
select Host, User from mysql.user limit 0;
|
||||||
select Host, Db from mysql.host limit 0;
|
select Host, Db from mysql.host limit 0;
|
||||||
@ -1659,15 +1669,15 @@ create procedure proc_1() flush logs;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush logs; return 1; end|
|
create function func_1() returns int begin flush logs; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush logs";
|
prepare abc from "flush logs";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1679,15 +1689,15 @@ create procedure proc_1() flush status;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush status; return 1; end|
|
create function func_1() returns int begin flush status; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush status";
|
prepare abc from "flush status";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1699,15 +1709,15 @@ create procedure proc_1() flush slave;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush slave; return 1; end|
|
create function func_1() returns int begin flush slave; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush slave";
|
prepare abc from "flush slave";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1716,15 +1726,15 @@ deallocate prepare abc;
|
|||||||
|
|
||||||
|
|
||||||
create procedure proc_1() flush master;
|
create procedure proc_1() flush master;
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush master; return 1; end|
|
create function func_1() returns int begin flush master; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush master";
|
prepare abc from "flush master";
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
|
|
||||||
@ -1733,15 +1743,15 @@ create procedure proc_1() flush des_key_file;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush des_key_file; return 1; end|
|
create function func_1() returns int begin flush des_key_file; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush des_key_file";
|
prepare abc from "flush des_key_file";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1753,15 +1763,15 @@ create procedure proc_1() flush user_resources;
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
create function func_1() returns int begin flush user_resources; return 1; end|
|
create function func_1() returns int begin flush user_resources; return 1; end|
|
||||||
|
create function func_1() returns int begin call proc_1(); return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
select func_1(), func_1(), func_1() from dual;
|
select func_1(), func_1(), func_1() from dual;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
drop function func_1;
|
||||||
|
drop procedure proc_1;
|
||||||
prepare abc from "flush user_resources";
|
prepare abc from "flush user_resources";
|
||||||
execute abc;
|
execute abc;
|
||||||
execute abc;
|
execute abc;
|
||||||
@ -1865,22 +1875,6 @@ execute abc;
|
|||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
|
|
||||||
|
|
||||||
create procedure proc_1() show scheduler status;
|
|
||||||
drop procedure proc_1;
|
|
||||||
delimiter |;
|
|
||||||
--error ER_SP_NO_RETSET
|
|
||||||
create function func_1() returns int begin show scheduler status; return 1; end|
|
|
||||||
delimiter ;|
|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
select func_1(), func_1(), func_1() from dual;
|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
|
||||||
drop function func_1;
|
|
||||||
--error ER_UNSUPPORTED_PS
|
|
||||||
prepare abc from "show scheduler status";
|
|
||||||
--error ER_UNKNOWN_STMT_HANDLER
|
|
||||||
deallocate prepare abc;
|
|
||||||
|
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop procedure if exists a;
|
drop procedure if exists a;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
@ -1997,10 +1991,13 @@ call proc_1();
|
|||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
drop procedure proc_1;
|
||||||
create procedure proc_1() install plugin my_plug soname 'some_plugin.so';
|
create procedure proc_1() install plugin my_plug soname 'some_plugin.so';
|
||||||
|
--replace_regex /(Can\'t open shared library).*$/\1/
|
||||||
--error ER_CANT_OPEN_LIBRARY
|
--error ER_CANT_OPEN_LIBRARY
|
||||||
call proc_1();
|
call proc_1();
|
||||||
|
--replace_regex /(Can\'t open shared library).*$/\1/
|
||||||
--error ER_CANT_OPEN_LIBRARY
|
--error ER_CANT_OPEN_LIBRARY
|
||||||
call proc_1();
|
call proc_1();
|
||||||
|
--replace_regex /(Can\'t open shared library).*$/\1/
|
||||||
--error ER_CANT_OPEN_LIBRARY
|
--error ER_CANT_OPEN_LIBRARY
|
||||||
call proc_1();
|
call proc_1();
|
||||||
drop procedure proc_1;
|
drop procedure proc_1;
|
||||||
@ -2150,7 +2147,7 @@ drop event if exists xyz;
|
|||||||
#drop event xyz;
|
#drop event xyz;
|
||||||
#drop procedure proc_1;
|
#drop procedure proc_1;
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_SP_NO_RETSET
|
--error ER_EVENT_RECURSIVITY_FORBIDDEN
|
||||||
create function func_1() returns int begin create event xyz on schedule at now() do select 123; return 1; end|
|
create function func_1() returns int begin create event xyz on schedule at now() do select 123; return 1; end|
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_SP_DOES_NOT_EXIST
|
||||||
|
@ -2030,11 +2030,15 @@ bool Item_date_add_interval::eq(const Item *item, bool binary_cmp) const
|
|||||||
(date_sub_interval == other->date_sub_interval));
|
(date_sub_interval == other->date_sub_interval));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
'interval_names' reflects the order of the enumeration interval_type.
|
||||||
|
See item_timefunc.h
|
||||||
|
*/
|
||||||
|
|
||||||
static const char *interval_names[]=
|
static const char *interval_names[]=
|
||||||
{
|
{
|
||||||
"year", "quarter", "month", "day", "hour",
|
"year", "quarter", "month", "week", "day",
|
||||||
"minute", "week", "second", "microsecond",
|
"hour", "minute", "second", "microsecond",
|
||||||
"year_month", "day_hour", "day_minute",
|
"year_month", "day_hour", "day_minute",
|
||||||
"day_second", "hour_minute", "hour_second",
|
"day_second", "hour_minute", "hour_second",
|
||||||
"minute_second", "day_microsecond",
|
"minute_second", "day_microsecond",
|
||||||
|
13
sql/time.cc
13
sql/time.cc
@ -25,14 +25,25 @@
|
|||||||
|
|
||||||
#ifndef TESTTIME
|
#ifndef TESTTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name description of interval names used in statements.
|
||||||
|
|
||||||
|
'interval_type_to_name' is ordered and sorted on interval size and
|
||||||
|
interval complexity.
|
||||||
|
Order of elements in 'interval_type_to_name' should correspond to
|
||||||
|
the order of elements in 'interval_type' enum
|
||||||
|
|
||||||
|
See also interval_type, interval_names
|
||||||
|
*/
|
||||||
|
|
||||||
LEX_STRING interval_type_to_name[INTERVAL_LAST] = {
|
LEX_STRING interval_type_to_name[INTERVAL_LAST] = {
|
||||||
{ C_STRING_WITH_LEN("YEAR")},
|
{ C_STRING_WITH_LEN("YEAR")},
|
||||||
{ C_STRING_WITH_LEN("QUARTER")},
|
{ C_STRING_WITH_LEN("QUARTER")},
|
||||||
{ C_STRING_WITH_LEN("MONTH")},
|
{ C_STRING_WITH_LEN("MONTH")},
|
||||||
|
{ C_STRING_WITH_LEN("WEEK")},
|
||||||
{ C_STRING_WITH_LEN("DAY")},
|
{ C_STRING_WITH_LEN("DAY")},
|
||||||
{ C_STRING_WITH_LEN("HOUR")},
|
{ C_STRING_WITH_LEN("HOUR")},
|
||||||
{ C_STRING_WITH_LEN("MINUTE")},
|
{ C_STRING_WITH_LEN("MINUTE")},
|
||||||
{ C_STRING_WITH_LEN("WEEK")},
|
|
||||||
{ C_STRING_WITH_LEN("SECOND")},
|
{ C_STRING_WITH_LEN("SECOND")},
|
||||||
{ C_STRING_WITH_LEN("MICROSECOND")},
|
{ C_STRING_WITH_LEN("MICROSECOND")},
|
||||||
{ C_STRING_WITH_LEN("YEAR_MONTH")},
|
{ C_STRING_WITH_LEN("YEAR_MONTH")},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user