mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
after merge fixes
sql/opt_range.h: compatibility fix sql/sql_lex.cc: cleanup
This commit is contained in:
@ -44,7 +44,7 @@ call foo()|
|
|||||||
ERROR 42000: PROCEDURE test.foo does not exist
|
ERROR 42000: PROCEDURE test.foo does not exist
|
||||||
drop procedure if exists foo|
|
drop procedure if exists foo|
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1303 PROCEDURE foo does not exist
|
Warning 1304 PROCEDURE foo does not exist
|
||||||
show create procedure foo|
|
show create procedure foo|
|
||||||
ERROR 42000: PROCEDURE foo does not exist
|
ERROR 42000: PROCEDURE foo does not exist
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
@ -80,7 +80,7 @@ declare y int;
|
|||||||
set x = y;
|
set x = y;
|
||||||
end|
|
end|
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1309 Referring to uninitialized variable y
|
Warning 1310 Referring to uninitialized variable y
|
||||||
drop procedure foo|
|
drop procedure foo|
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
return 42|
|
return 42|
|
||||||
|
@ -49,18 +49,18 @@ create function func1() returns int
|
|||||||
return 42|
|
return 42|
|
||||||
|
|
||||||
# Can't create recursively
|
# Can't create recursively
|
||||||
--error 1301
|
--error 1302
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
create procedure bar() set @x=3|
|
create procedure bar() set @x=3|
|
||||||
--error 1301
|
--error 1302
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
create function bar() returns double return 2.3|
|
create function bar() returns double return 2.3|
|
||||||
|
|
||||||
# Already exists
|
# Already exists
|
||||||
--error 1302
|
--error 1303
|
||||||
create procedure proc1()
|
create procedure proc1()
|
||||||
set @x = 42|
|
set @x = 42|
|
||||||
--error 1302
|
--error 1303
|
||||||
create function func1() returns int
|
create function func1() returns int
|
||||||
return 42|
|
return 42|
|
||||||
|
|
||||||
@ -68,39 +68,39 @@ drop procedure proc1|
|
|||||||
drop function func1|
|
drop function func1|
|
||||||
|
|
||||||
# Does not exist
|
# Does not exist
|
||||||
--error 1303
|
--error 1304
|
||||||
alter procedure foo|
|
alter procedure foo|
|
||||||
--error 1303
|
--error 1304
|
||||||
alter function foo|
|
alter function foo|
|
||||||
--error 1303
|
--error 1304
|
||||||
drop procedure foo|
|
drop procedure foo|
|
||||||
--error 1303
|
--error 1304
|
||||||
drop function foo|
|
drop function foo|
|
||||||
--error 1303
|
--error 1304
|
||||||
call foo()|
|
call foo()|
|
||||||
drop procedure if exists foo|
|
drop procedure if exists foo|
|
||||||
--error 1303
|
--error 1304
|
||||||
show create procedure foo|
|
show create procedure foo|
|
||||||
|
|
||||||
# LEAVE/ITERATE with no match
|
# LEAVE/ITERATE with no match
|
||||||
--error 1306
|
--error 1307
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
foo: loop
|
foo: loop
|
||||||
leave bar;
|
leave bar;
|
||||||
end loop|
|
end loop|
|
||||||
--error 1306
|
--error 1307
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
foo: loop
|
foo: loop
|
||||||
iterate bar;
|
iterate bar;
|
||||||
end loop|
|
end loop|
|
||||||
--error 1306
|
--error 1307
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
foo: begin
|
foo: begin
|
||||||
iterate foo;
|
iterate foo;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
# Redefining label
|
# Redefining label
|
||||||
--error 1307
|
--error 1308
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
foo: loop
|
foo: loop
|
||||||
foo: loop
|
foo: loop
|
||||||
@ -109,7 +109,7 @@ foo: loop
|
|||||||
end loop foo|
|
end loop foo|
|
||||||
|
|
||||||
# End label mismatch
|
# End label mismatch
|
||||||
--error 1308
|
--error 1309
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
foo: loop
|
foo: loop
|
||||||
set @x=2;
|
set @x=2;
|
||||||
@ -124,12 +124,12 @@ end|
|
|||||||
drop procedure foo|
|
drop procedure foo|
|
||||||
|
|
||||||
# RETURN in FUNCTION only
|
# RETURN in FUNCTION only
|
||||||
--error 1311
|
--error 1312
|
||||||
create procedure foo()
|
create procedure foo()
|
||||||
return 42|
|
return 42|
|
||||||
|
|
||||||
# Doesn't allow queries in FUNCTIONs (for now :-( )
|
# Doesn't allow queries in FUNCTIONs (for now :-( )
|
||||||
--error 1312
|
--error 1313
|
||||||
create function foo() returns int
|
create function foo() returns int
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -143,19 +143,19 @@ create procedure p(x int)
|
|||||||
create function f(x int) returns int
|
create function f(x int) returns int
|
||||||
return x+42|
|
return x+42|
|
||||||
|
|
||||||
--error 1316
|
--error 1317
|
||||||
call p()|
|
call p()|
|
||||||
--error 1316
|
--error 1317
|
||||||
call p(1, 2)|
|
call p(1, 2)|
|
||||||
--error 1316
|
--error 1317
|
||||||
select f()|
|
select f()|
|
||||||
--error 1316
|
--error 1317
|
||||||
select f(1, 2)|
|
select f(1, 2)|
|
||||||
|
|
||||||
drop procedure p|
|
drop procedure p|
|
||||||
drop function f|
|
drop function f|
|
||||||
|
|
||||||
--error 1317
|
--error 1318
|
||||||
create procedure p(val int, out res int)
|
create procedure p(val int, out res int)
|
||||||
begin
|
begin
|
||||||
declare x int default 0;
|
declare x int default 0;
|
||||||
@ -169,7 +169,7 @@ begin
|
|||||||
end if;
|
end if;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1317
|
--error 1318
|
||||||
create procedure p(val int, out res int)
|
create procedure p(val int, out res int)
|
||||||
begin
|
begin
|
||||||
declare x int default 0;
|
declare x int default 0;
|
||||||
@ -184,7 +184,7 @@ begin
|
|||||||
end if;
|
end if;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1318
|
--error 1319
|
||||||
create function f(val int) returns int
|
create function f(val int) returns int
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -202,12 +202,12 @@ begin
|
|||||||
end if;
|
end if;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1319
|
--error 1320
|
||||||
select f(10)|
|
select f(10)|
|
||||||
|
|
||||||
drop function f|
|
drop function f|
|
||||||
|
|
||||||
--error 1320
|
--error 1321
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare c cursor for insert into test.t1 values ("foo", 42);
|
declare c cursor for insert into test.t1 values ("foo", 42);
|
||||||
@ -216,7 +216,7 @@ begin
|
|||||||
close c;
|
close c;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1321
|
--error 1322
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -226,7 +226,7 @@ begin
|
|||||||
close c;
|
close c;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1322
|
--error 1323
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare c cursor for select * from test.t;
|
declare c cursor for select * from test.t;
|
||||||
@ -248,7 +248,7 @@ begin
|
|||||||
open c;
|
open c;
|
||||||
close c;
|
close c;
|
||||||
end|
|
end|
|
||||||
--error 1323
|
--error 1324
|
||||||
call p()|
|
call p()|
|
||||||
drop procedure p|
|
drop procedure p|
|
||||||
|
|
||||||
@ -260,11 +260,11 @@ begin
|
|||||||
close c;
|
close c;
|
||||||
close c;
|
close c;
|
||||||
end|
|
end|
|
||||||
--error 1324
|
--error 1325
|
||||||
call p()|
|
call p()|
|
||||||
drop procedure p|
|
drop procedure p|
|
||||||
|
|
||||||
--error 1303
|
--error 1304
|
||||||
alter procedure bar3 sql security invoker|
|
alter procedure bar3 sql security invoker|
|
||||||
--error 1059
|
--error 1059
|
||||||
alter procedure bar3 name
|
alter procedure bar3 name
|
||||||
@ -278,7 +278,7 @@ drop table if exists t1|
|
|||||||
create table t1 (val int, x float)|
|
create table t1 (val int, x float)|
|
||||||
insert into t1 values (42, 3.1), (19, 1.2)|
|
insert into t1 values (42, 3.1), (19, 1.2)|
|
||||||
|
|
||||||
--error 1325
|
--error 1326
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -298,7 +298,7 @@ begin
|
|||||||
fetch c into x;
|
fetch c into x;
|
||||||
close c;
|
close c;
|
||||||
end|
|
end|
|
||||||
--error 1326
|
--error 1327
|
||||||
call p()|
|
call p()|
|
||||||
drop procedure p|
|
drop procedure p|
|
||||||
|
|
||||||
@ -313,34 +313,34 @@ begin
|
|||||||
fetch c into x, y, z;
|
fetch c into x, y, z;
|
||||||
close c;
|
close c;
|
||||||
end|
|
end|
|
||||||
--error 1326
|
--error 1327
|
||||||
call p()|
|
call p()|
|
||||||
drop procedure p|
|
drop procedure p|
|
||||||
|
|
||||||
--error 1328
|
--error 1329
|
||||||
create procedure p(in x int, x char(10))
|
create procedure p(in x int, x char(10))
|
||||||
begin
|
begin
|
||||||
end|
|
end|
|
||||||
--error 1328
|
--error 1329
|
||||||
create function p(x int, x char(10))
|
create function p(x int, x char(10))
|
||||||
begin
|
begin
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1329
|
--error 1330
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare x float;
|
declare x float;
|
||||||
declare x int;
|
declare x int;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1330
|
--error 1331
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare c condition for 1064;
|
declare c condition for 1064;
|
||||||
declare c condition for 1065;
|
declare c condition for 1065;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1331
|
--error 1332
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare c cursor for select * from t1;
|
declare c cursor for select * from t1;
|
||||||
@ -348,18 +348,18 @@ begin
|
|||||||
end|
|
end|
|
||||||
|
|
||||||
# USE is not allowed
|
# USE is not allowed
|
||||||
--error 1334
|
--error 1335
|
||||||
create procedure u()
|
create procedure u()
|
||||||
use sptmp|
|
use sptmp|
|
||||||
|
|
||||||
# Enforced standard order of declarations
|
# Enforced standard order of declarations
|
||||||
--error 1335
|
--error 1336
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare c cursor for select * from t1;
|
declare c cursor for select * from t1;
|
||||||
declare x int;
|
declare x int;
|
||||||
end|
|
end|
|
||||||
--error 1335
|
--error 1336
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -367,7 +367,7 @@ begin
|
|||||||
declare foo condition for sqlstate '42S99';
|
declare foo condition for sqlstate '42S99';
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1336
|
--error 1337
|
||||||
create procedure p()
|
create procedure p()
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -392,13 +392,13 @@ drop procedure bug1965|
|
|||||||
#
|
#
|
||||||
# BUG#1966
|
# BUG#1966
|
||||||
#
|
#
|
||||||
--error 1325
|
--error 1326
|
||||||
select 1 into a|
|
select 1 into a|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#336
|
# BUG#336
|
||||||
#
|
#
|
||||||
--error 1333
|
--error 1334
|
||||||
create procedure bug336(id char(16))
|
create procedure bug336(id char(16))
|
||||||
begin
|
begin
|
||||||
declare x int;
|
declare x int;
|
||||||
@ -408,7 +408,7 @@ end|
|
|||||||
#
|
#
|
||||||
# BUG#1654
|
# BUG#1654
|
||||||
#
|
#
|
||||||
--error 1312
|
--error 1313
|
||||||
create function bug1654()
|
create function bug1654()
|
||||||
returns int
|
returns int
|
||||||
return (select sum(t.data) from test.t2 t)|
|
return (select sum(t.data) from test.t2 t)|
|
||||||
@ -446,7 +446,7 @@ begin
|
|||||||
fetch c1 into v1;
|
fetch c1 into v1;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
--error 1324
|
--error 1325
|
||||||
call bug2259()|
|
call bug2259()|
|
||||||
drop procedure bug2259|
|
drop procedure bug2259|
|
||||||
|
|
||||||
@ -502,7 +502,7 @@ begin
|
|||||||
end case;
|
end case;
|
||||||
return 2;
|
return 2;
|
||||||
end|
|
end|
|
||||||
--error 1337
|
--error 1338
|
||||||
select bug3287()|
|
select bug3287()|
|
||||||
drop function bug3287|
|
drop function bug3287|
|
||||||
|
|
||||||
@ -513,7 +513,7 @@ when 0 then
|
|||||||
when 1 then
|
when 1 then
|
||||||
insert into test.t1 values (x, 1.1);
|
insert into test.t1 values (x, 1.1);
|
||||||
end case|
|
end case|
|
||||||
--error 1337
|
--error 1338
|
||||||
call bug3287(2)|
|
call bug3287(2)|
|
||||||
drop procedure bug3287|
|
drop procedure bug3287|
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ select * from db1_secret.t1;
|
|||||||
# ...and not this
|
# ...and not this
|
||||||
--error 1049
|
--error 1049
|
||||||
create procedure db1_secret.dummy() begin end;
|
create procedure db1_secret.dummy() begin end;
|
||||||
--error 1303
|
--error 1304
|
||||||
drop procedure db1_secret.dummy;
|
drop procedure db1_secret.dummy;
|
||||||
|
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ select * from db1_secret.t1;
|
|||||||
# ...and not this
|
# ...and not this
|
||||||
--error 1049
|
--error 1049
|
||||||
create procedure db1_secret.dummy() begin end;
|
create procedure db1_secret.dummy() begin end;
|
||||||
--error 1303
|
--error 1304
|
||||||
drop procedure db1_secret.dummy;
|
drop procedure db1_secret.dummy;
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ public:
|
|||||||
QS_TYPE_RANGE_DESC = 2,
|
QS_TYPE_RANGE_DESC = 2,
|
||||||
QS_TYPE_FULLTEXT = 3,
|
QS_TYPE_FULLTEXT = 3,
|
||||||
QS_TYPE_ROR_INTERSECT = 4,
|
QS_TYPE_ROR_INTERSECT = 4,
|
||||||
QS_TYPE_ROR_UNION = 5,
|
QS_TYPE_ROR_UNION = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Get type of this quick select - one of the QS_TYPE_* values */
|
/* Get type of this quick select - one of the QS_TYPE_* values */
|
||||||
|
@ -265,8 +265,7 @@ db_find_routine(THD *thd, int type, sp_name *name, sp_head **sphp)
|
|||||||
*/
|
*/
|
||||||
List<Item> vals= thd->lex->value_list;
|
List<Item> vals= thd->lex->value_list;
|
||||||
|
|
||||||
mysql_init_query(thd, TRUE);
|
mysql_init_query(thd, (uchar*)defstr.c_ptr(), defstr.length(), TRUE);
|
||||||
lex_start(thd, (uchar*)defstr.c_ptr(), defstr.length());
|
|
||||||
thd->lex->value_list= vals;
|
thd->lex->value_list= vals;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -690,17 +690,18 @@ sp_head::reset_lex(THD *thd)
|
|||||||
|
|
||||||
(void)m_lex.push_front(oldlex);
|
(void)m_lex.push_front(oldlex);
|
||||||
thd->lex= sublex= new st_lex;
|
thd->lex= sublex= new st_lex;
|
||||||
|
|
||||||
/* Reset most stuff. The length arguments doesn't matter here. */
|
/* Reset most stuff. The length arguments doesn't matter here. */
|
||||||
lex_start(thd, oldlex->buf, oldlex->end_of_query - oldlex->ptr);
|
mysql_init_query(thd,oldlex->buf, oldlex->end_of_query - oldlex->ptr, TRUE);
|
||||||
sublex->yylineno= oldlex->yylineno;
|
|
||||||
/* We must reset ptr and end_of_query again */
|
/* We must reset ptr and end_of_query again */
|
||||||
sublex->ptr= oldlex->ptr;
|
sublex->ptr= oldlex->ptr;
|
||||||
sublex->end_of_query= oldlex->end_of_query;
|
sublex->end_of_query= oldlex->end_of_query;
|
||||||
sublex->tok_start= oldlex->tok_start;
|
sublex->tok_start= oldlex->tok_start;
|
||||||
|
sublex->yylineno= oldlex->yylineno;
|
||||||
/* And keep the SP stuff too */
|
/* And keep the SP stuff too */
|
||||||
sublex->sphead= oldlex->sphead;
|
sublex->sphead= oldlex->sphead;
|
||||||
sublex->spcont= oldlex->spcont;
|
sublex->spcont= oldlex->spcont;
|
||||||
mysql_init_query(thd, true); // Only init lex
|
|
||||||
sublex->sp_lex_in_use= FALSE;
|
sublex->sp_lex_in_use= FALSE;
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
@ -111,8 +111,8 @@ void lex_start(THD *thd, uchar *buf,uint length)
|
|||||||
LEX *lex= thd->lex;
|
LEX *lex= thd->lex;
|
||||||
lex->thd= thd;
|
lex->thd= thd;
|
||||||
lex->next_state=MY_LEX_START;
|
lex->next_state=MY_LEX_START;
|
||||||
lex->buf= buf;
|
lex->buf= lex->ptr= buf;
|
||||||
lex->end_of_query=(lex->ptr=buf)+length;
|
lex->end_of_query=buf+length;
|
||||||
lex->yylineno = 1;
|
lex->yylineno = 1;
|
||||||
lex->in_comment=0;
|
lex->in_comment=0;
|
||||||
lex->length=0;
|
lex->length=0;
|
||||||
|
@ -563,8 +563,7 @@ mysql_make_view(File_parser *parser, TABLE_LIST *table)
|
|||||||
now Lex placed in statement memory
|
now Lex placed in statement memory
|
||||||
*/
|
*/
|
||||||
table->view= lex= thd->lex= (LEX*) new(&thd->mem_root) st_lex_local;
|
table->view= lex= thd->lex= (LEX*) new(&thd->mem_root) st_lex_local;
|
||||||
lex_start(thd, (uchar*)table->query.str, table->query.length);
|
mysql_init_query(thd, (uchar*)table->query.str, table->query.length, TRUE);
|
||||||
mysql_init_query(thd, true);
|
|
||||||
lex->select_lex.select_number= ++thd->select_number;
|
lex->select_lex.select_number= ++thd->select_number;
|
||||||
old_lex->derived_tables|= DERIVED_VIEW;
|
old_lex->derived_tables|= DERIVED_VIEW;
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user