Below is the list of changes that have just been committed into a local
5.1 repository of hf. When hf does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-10-01 16:43:35+05:00, holyfoot@deer.(none) +3 -0
Merge bk@stripped:mysql-5.1-opt
into mysql.com:/home/hf/work/16813/my51-16813
MERGE: 1.2300.52.1
mysql-test/r/view.result@stripped, 2006-10-01 16:42:25+05:00, holyfoot@deer.(none) +10 -10
merging
MERGE: 1.179.2.1
mysql-test/t/view.test@stripped, 2006-10-01 16:43:24+05:00, holyfoot@deer.(none) +15 -16
merging
MERGE: 1.160.3.1
sql/table.cc@stripped, 2006-10-01 16:41:15+05:00, holyfoot@deer.(none) +0 -0
Auto merged
MERGE: 1.246.1.1
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: holyfoot
# Host: deer.(none)
# Root: /home/hf/work/16813/my51-16813/RESYNC
--- 1.248/sql/table.cc 2006-10-01 16:43:43 +05:00
+++ 1.249/sql/table.cc 2006-10-01 16:43:43 +05:00
@@ -2773,12 +2773,13 @@ bool st_table_list::prep_where(THD *thd,
this expression will not be moved to WHERE condition (i.e. will
be clean correctly for PS/SP)
*/
- tbl->on_expr= and_conds(tbl->on_expr, where);
+ tbl->on_expr= and_conds(tbl->on_expr,
+ where->copy_andor_structure(thd));
break;
}
}
if (tbl == 0)
- *conds= and_conds(*conds, where);
+ *conds= and_conds(*conds, where->copy_andor_structure(thd));
if (arena)
thd->restore_active_arena(arena, &backup);
where_processed= TRUE;
--- 1.182/mysql-test/r/view.result 2006-10-01 16:43:43 +05:00
+++ 1.183/mysql-test/r/view.result 2006-10-01 16:43:43 +05:00
@@ -2956,4 +2956,14 @@ View Create View
v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS
select `t1`.`pk` AS `pk` from (`t1` join `t2` on(((`t2`.`fk` = `t1`.`pk`) and (`t2`.`ver`
= (select max(`t`.`ver`) AS `MAX(t.ver)` from `t2` `t` where (`t`.`org` = `t2`.`org`))))))
DROP VIEW v1;
DROP TABLE t1, t2;
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT
NULL);
+CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK
OPTION;
+INSERT INTO v1 (val) VALUES (2);
+INSERT INTO v1 (val) VALUES (4);
+INSERT INTO v1 (val) VALUES (6);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+UPDATE v1 SET val=6 WHERE id=2;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+DROP VIEW v1;
+DROP TABLE t1;
End of 5.0 tests.
--- 1.165/mysql-test/t/view.test 2006-10-01 16:43:43 +05:00
+++ 1.166/mysql-test/t/view.test 2006-10-01 16:43:43 +05:00
@@ -2856,7 +2856,6 @@ EXPLAIN SELECT * FROM v1 t WHERE t.s1+1
DROP VIEW v1;
DROP TABLE t1;
-#
# Bug #5505: Wrong error message on INSERT into a view
#
create table t1 (s1 int);
@@ -2884,4 +2883,19 @@ SHOW CREATE VIEW v1;
DROP VIEW v1;
DROP TABLE t1, t2;
+
+#
+# Bug #16813 (WITH CHECK OPTION doesn't work with UPDATE)
+#
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT
NULL);
+CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK
OPTION;
+INSERT INTO v1 (val) VALUES (2);
+INSERT INTO v1 (val) VALUES (4);
+-- error 1369
+INSERT INTO v1 (val) VALUES (6);
+-- error 1369
+UPDATE v1 SET val=6 WHERE id=2;
+DROP VIEW v1;
+DROP TABLE t1;
+
--echo End of 5.0 tests.
| Thread |
|---|
| • bk commit into 5.1 tree (holyfoot:1.2336) | holyfoot | 1 Oct |