summaryrefslogtreecommitdiff
path: root/mysql-test/t/view.test
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@gleb.loc>2007-06-01 02:40:49 +0500
committerunknown <gshchepa/uchum@gleb.loc>2007-06-01 02:40:49 +0500
commite8bf6c5b6971fb4686932f7379d43e95ea1df7f4 (patch)
treedf200bad60ebe9e4b82cfbcf97b56c4354e345d6 /mysql-test/t/view.test
parent8fe16346eb4aabddb72b296a9fafaea30681c4bb (diff)
parente2c7a5b044ae6fb2dbe19de5c3cb7c009b7d8ac6 (diff)
downloadmariadb-git-e8bf6c5b6971fb4686932f7379d43e95ea1df7f4.tar.gz
Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-27827-fresh
into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt mysql-test/r/view.result: Merge with bug #27827 fix. mysql-test/t/view.test: Merge with bug #27827 fix.
Diffstat (limited to 'mysql-test/t/view.test')
-rw-r--r--mysql-test/t/view.test52
1 files changed, 52 insertions, 0 deletions
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index c1f324fffda..f574451af08 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -3268,4 +3268,56 @@ UPDATE v1 SET c=1;
DROP VIEW v1;
DROP TABLE t1,t2;
+#
+# Bug #27827: CHECK OPTION ignores ON conditions when updating
+# a multi-table view with CHECK OPTION.
+#
+
+CREATE TABLE t1 (a1 INT, c INT DEFAULT 0);
+CREATE TABLE t2 (a2 INT);
+CREATE TABLE t3 (a3 INT);
+CREATE TABLE t4 (a4 INT);
+INSERT INTO t1 (a1) VALUES (1),(2);
+INSERT INTO t2 (a2) VALUES (1),(2);
+INSERT INTO t3 (a3) VALUES (1),(2);
+INSERT INTO t4 (a4) VALUES (1),(2);
+
+CREATE VIEW v1 AS
+ SELECT t1.a1, t1.c FROM t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3
+ WITH CHECK OPTION;
+SELECT * FROM v1;
+--error 1369
+UPDATE v1 SET c=3;
+PREPARE t FROM 'UPDATE v1 SET c=3';
+--error 1369
+EXECUTE t;
+--error 1369
+EXECUTE t;
+--error 1369
+INSERT INTO v1(a1, c) VALUES (3, 3);
+UPDATE v1 SET c=1 WHERE a1=1;
+SELECT * FROM v1;
+SELECT * FROM t1;
+
+CREATE VIEW v2 AS SELECT t1.a1, t1.c
+ FROM (t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3)
+ JOIN (t3 JOIN t4 ON t3.a3=t4.a4)
+ ON t2.a2=t3.a3 WITH CHECK OPTION;
+SELECT * FROM v2;
+--error 1369
+UPDATE v2 SET c=3;
+PREPARE t FROM 'UPDATE v2 SET c=3';
+--error 1369
+EXECUTE t;
+--error 1369
+EXECUTE t;
+--error 1369
+INSERT INTO v2(a1, c) VALUES (3, 3);
+UPDATE v2 SET c=2 WHERE a1=1;
+SELECT * FROM v2;
+SELECT * FROM t1;
+
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3,t4;
+
--echo End of 5.0 tests.