mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into zippy.(none):/home/cmiller/work/mysql/mysql-5.1-new__bug18078
This commit is contained in:
commit
2f8b344b06
3 changed files with 48 additions and 9 deletions
|
@ -33,7 +33,6 @@ rpl_row_blob_innodb : BUG#18980 2006-04-10 kent Test fails randomly
|
|||
rpl_row_func003 : BUG#19074 2006-13-04 andrei test failed
|
||||
rpl_row_inexist_tbl : BUG#18948 2006-03-09 mats Disabled since patch makes this test wait forever
|
||||
rpl_sp : BUG#16456 2006-02-16 jmiller
|
||||
mysqldump : BUG#18078 2006-03-10 lars
|
||||
udf : BUG#18564 2006-03-27 ian (Permission by Brian)
|
||||
|
||||
# the below testcase have been reworked to avoid the bug, test contains comment, keep bug open
|
||||
|
|
|
@ -1174,8 +1174,8 @@ create database first;
|
|||
use first;
|
||||
set time_zone = 'UTC';
|
||||
|
||||
## prove one works
|
||||
create event ee1 on schedule at '2035-12-31 20:01:23' do set @a=5;
|
||||
## prove one works (with spaces and tabs on the end)
|
||||
create event ee1 on schedule at '2035-12-31 20:01:23' do set @a=5;
|
||||
show events;
|
||||
show create event ee1;
|
||||
--exec $MYSQL_DUMP --events first > $MYSQLTEST_VARDIR/tmp/bug16853-1.sql
|
||||
|
@ -1187,10 +1187,10 @@ use second;
|
|||
show events;
|
||||
show create event ee1;
|
||||
|
||||
## prove three works
|
||||
## prove three works (with spaces and tabs on the end)
|
||||
# start with one from the previous restore
|
||||
create event ee2 on schedule at '2018-12-31 21:01:23' do set @a=5;
|
||||
create event ee3 on schedule at '2030-12-31 22:01:23' do set @a=5;
|
||||
create event ee2 on schedule at '2018-12-31 21:01:23' do set @a=5;
|
||||
create event ee3 on schedule at '2030-12-31 22:01:23' do set @a=5;
|
||||
show events;
|
||||
--exec $MYSQL_DUMP --events second > $MYSQLTEST_VARDIR/tmp/bug16853-2.sql
|
||||
drop database second;
|
||||
|
|
|
@ -106,6 +106,9 @@ Event_timed::init_name(THD *thd, sp_name *spn)
|
|||
NOTE
|
||||
The body is extracted by copying all data between the
|
||||
start of the body set by another method and the current pointer in Lex.
|
||||
|
||||
Some questionable removal of characters is done in here, and that part
|
||||
should be refactored when the parser is smarter.
|
||||
*/
|
||||
|
||||
void
|
||||
|
@ -116,9 +119,46 @@ Event_timed::init_body(THD *thd)
|
|||
body_begin, thd->lex->ptr));
|
||||
|
||||
body.length= thd->lex->ptr - body_begin;
|
||||
/* Trim nuls at the end */
|
||||
while (body.length && body_begin[body.length-1] == '\0')
|
||||
body.length--;
|
||||
const uchar *body_end= body_begin + body.length - 1;
|
||||
|
||||
/* Trim nuls or close-comments ('*'+'/') or spaces at the end */
|
||||
while (body_begin < body_end)
|
||||
{
|
||||
|
||||
if ((*body_end == '\0') ||
|
||||
(my_isspace(thd->variables.character_set_client, *body_end)))
|
||||
{ /* consume NULs and meaningless whitespace */
|
||||
--body.length;
|
||||
--body_end;
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
consume closing comments
|
||||
|
||||
This is arguably wrong, but it's the best we have until the parser is
|
||||
changed to be smarter. FIXME PARSER
|
||||
|
||||
See also the sp_head code, where something like this is done also.
|
||||
|
||||
One idea is to keep in the lexer structure the count of the number of
|
||||
open-comments we've entered, and scan left-to-right looking for a
|
||||
closing comment IFF the count is greater than zero.
|
||||
|
||||
Another idea is to remove the closing comment-characters wholly in the
|
||||
parser, since that's where it "removes" the opening characters.
|
||||
*/
|
||||
if ((*(body_end - 1) == '*') && (*body_end == '/'))
|
||||
{
|
||||
DBUG_PRINT("info", ("consumend one '*" "/' comment in the query '%s'",
|
||||
body_begin));
|
||||
body.length-= 2;
|
||||
body_end-= 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
break; /* none were found, so we have excised all we can. */
|
||||
}
|
||||
|
||||
/* the first is always whitespace which I cannot skip in the parser */
|
||||
while (my_isspace(thd->variables.character_set_client, *body_begin))
|
||||
|
|
Loading…
Reference in a new issue