Commit 5dac7516 authored by unknown's avatar unknown
Browse files

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


sql/sp_head.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
parents 79a46e0b 42022710
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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
+19 −0
Original line number Diff line number Diff line
@@ -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
#
+6 −2
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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).
+2 −3
Original line number Diff line number Diff line
@@ -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;
Loading