Commit ef4290d5 authored by unknown's avatar unknown
Browse files

Merge igor-inspiron.creware.com:/home/igor/mysql-5.0

into igor-inspiron.creware.com:/home/igor/dev/mysql-5.0-0

parents a20b8753 39968552
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -1923,3 +1923,20 @@ ERROR HY000: Field of view 'test.v2' underlying table doesn't have a default val
set sql_mode=default;
drop view v2,v1;
drop table t1;
CREATE TABLE t1 (s1 int, s2 int);
INSERT  INTO t1 VALUES (1,2);
CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
SELECT * FROM v1;
s1	s2
2	1
CREATE PROCEDURE p1 () SELECT * FROM v1;
CALL p1();
s1	s2
2	1
ALTER VIEW v1 AS SELECT s1 AS s1, s2 AS s2 FROM t1;
CALL p1();
s1	s2
1	2
DROP PROCEDURE p1;
DROP VIEW v1;
DROP TABLE t1;
+17 −0
Original line number Diff line number Diff line
@@ -1761,3 +1761,20 @@ INSERT INTO v2 (vcol1) VALUES(12);
set sql_mode=default;
drop view v2,v1;
drop table t1;

#
# Test for bug #6120: SP cache to be invalidated when altering a view
#

CREATE TABLE t1 (s1 int, s2 int);
INSERT  INTO t1 VALUES (1,2);
CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
SELECT * FROM v1;
CREATE PROCEDURE p1 () SELECT * FROM v1;
CALL p1();
ALTER VIEW v1 AS SELECT s1 AS s1, s2 AS s2 FROM t1;
CALL p1();

DROP PROCEDURE p1;
DROP VIEW v1;
DROP TABLE t1;
+4 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include "parse_file.h"
#include "sp.h"
#include "sp_head.h"
#include "sp_cache.h"

#define MD5_BUFF_LENGTH 33

@@ -141,6 +142,9 @@ bool mysql_create_view(THD *thd,
    goto err;
  }

  if (mode != VIEW_CREATE_NEW)
    sp_cache_invalidate();

#ifndef NO_EMBEDDED_ACCESS_CHECKS
  /*
    Privilege check for view creation: