Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug1-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-merge1-5.0
This commit is contained in:
commit
b1f0e78146
@ -2424,6 +2424,18 @@ f1 sum(f2)
|
||||
NULL 12
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
drop procedure if exists p1;
|
||||
create procedure p1 () deterministic
|
||||
begin
|
||||
create view v1 as select 1;
|
||||
end;
|
||||
//
|
||||
call p1();
|
||||
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;
|
||||
drop procedure p1;
|
||||
CREATE VIEW v1 AS SELECT 42 AS Meaning;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
CREATE FUNCTION f1() RETURNS INTEGER
|
||||
|
@ -2281,6 +2281,25 @@ select f1, sum(f2) from v1 group by f1;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#14885: incorrect SOURCE in view created in a procedure
|
||||
# TODO: here SOURCE string must be shown when it will be possible
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists p1;
|
||||
--enable_warnings
|
||||
delimiter //;
|
||||
create procedure p1 () deterministic
|
||||
begin
|
||||
create view v1 as select 1;
|
||||
end;
|
||||
//
|
||||
delimiter ;//
|
||||
call p1();
|
||||
show create view v1;
|
||||
drop view v1;
|
||||
drop procedure p1;
|
||||
|
||||
#
|
||||
# BUG#15096: using function with view for view creation
|
||||
#
|
||||
|
@ -954,8 +954,12 @@ int sp_head::execute(THD *thd)
|
||||
m_first_instance->m_first_free_instance= m_next_cached_sp;
|
||||
DBUG_PRINT("info", ("first free for 0x%lx ++: 0x%lx->0x%lx, level: %lu, flags %x",
|
||||
(ulong)m_first_instance, this, m_next_cached_sp,
|
||||
m_next_cached_sp->m_recursion_level,
|
||||
m_next_cached_sp->m_flags));
|
||||
(m_next_cached_sp ?
|
||||
m_next_cached_sp->m_recursion_level :
|
||||
0),
|
||||
(m_next_cached_sp ?
|
||||
m_next_cached_sp->m_flags :
|
||||
0)));
|
||||
/*
|
||||
Check that if there are not any instances after this one then
|
||||
pointer to the last instance points on this instance or if there are
|
||||
|
@ -738,8 +738,8 @@ typedef struct st_lex
|
||||
TABLE_LIST **query_tables_last;
|
||||
/* store original leaf_tables for INSERT SELECT and PS/SP */
|
||||
TABLE_LIST *leaf_tables_insert;
|
||||
char *create_view_start;
|
||||
char *create_view_select_start;
|
||||
/* Position (first character index) of SELECT of CREATE VIEW statement */
|
||||
uint create_view_select_start;
|
||||
|
||||
/*
|
||||
The definer of the object being created (view, trigger, stored routine).
|
||||
|
@ -650,10 +650,9 @@ static int mysql_register_view(THD *thd, TABLE_LIST *view,
|
||||
/* fill structure */
|
||||
view->query.str= (char*)str.ptr();
|
||||
view->query.length= str.length()-1; // we do not need last \0
|
||||
view->source.str= thd->lex->create_view_select_start;
|
||||
view->source.str= thd->query + thd->lex->create_view_select_start;
|
||||
view->source.length= (thd->query_length -
|
||||
(thd->lex->create_view_select_start -
|
||||
thd->lex->create_view_start));
|
||||
thd->lex->create_view_select_start);
|
||||
view->file_version= 1;
|
||||
view->calc_md5(md5);
|
||||
view->md5.str= md5;
|
||||
|
@ -3380,7 +3380,6 @@ alter:
|
||||
THD *thd= YYTHD;
|
||||
LEX *lex= thd->lex;
|
||||
lex->sql_command= SQLCOM_CREATE_VIEW;
|
||||
lex->create_view_start= thd->query;
|
||||
lex->create_view_mode= VIEW_ALTER;
|
||||
/* first table in list is target VIEW name */
|
||||
lex->select_lex.add_table_to_list(thd, $6, NULL, 0);
|
||||
@ -8984,7 +8983,6 @@ view_tail:
|
||||
THD *thd= YYTHD;
|
||||
LEX *lex= thd->lex;
|
||||
lex->sql_command= SQLCOM_CREATE_VIEW;
|
||||
lex->create_view_start= thd->query;
|
||||
/* first table in list is target VIEW name */
|
||||
if (!lex->select_lex.add_table_to_list(thd, $3, NULL, 0))
|
||||
YYABORT;
|
||||
@ -9015,11 +9013,21 @@ view_list:
|
||||
view_select:
|
||||
SELECT_SYM remember_name select_init2
|
||||
{
|
||||
Lex->create_view_select_start= $2;
|
||||
THD *thd=YYTHD;
|
||||
LEX *lex= thd->lex;
|
||||
char *stmt_beg= (lex->sphead ?
|
||||
(char *)lex->sphead->m_tmp_query :
|
||||
thd->query);
|
||||
lex->create_view_select_start= $2 - stmt_beg;
|
||||
}
|
||||
| '(' remember_name select_paren ')' union_opt
|
||||
{
|
||||
Lex->create_view_select_start= $2;
|
||||
THD *thd=YYTHD;
|
||||
LEX *lex= thd->lex;
|
||||
char *stmt_beg= (lex->sphead ?
|
||||
(char *)lex->sphead->m_tmp_query :
|
||||
thd->query);
|
||||
lex->create_view_select_start= $2 - stmt_beg;
|
||||
}
|
||||
;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user