diff --git a/mysql-test/r/insert.result b/mysql-test/r/insert.result index 8b03a3363de..39cb4cac85d 100644 --- a/mysql-test/r/insert.result +++ b/mysql-test/r/insert.result @@ -745,3 +745,9 @@ f1 f2 drop view v1; drop table t1; SET @@sql_mode= @save_mode; +CREATE TABLE t1 (f INT); +CREATE VIEW v1 AS SELECT * FROM t1 WHERE f <=> 'foo' WITH CHECK OPTION; +REPLACE INTO v1 SET f = NULL; +ERROR HY000: CHECK OPTION failed 'test.v1' +DROP VIEW v1; +DROP TABLE t1; diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test index e28eeb9f876..9e84bf3ee5f 100644 --- a/mysql-test/t/insert.test +++ b/mysql-test/t/insert.test @@ -602,3 +602,13 @@ remove_file $MYSQLD_DATADIR/test/t1.txt; drop view v1; drop table t1; SET @@sql_mode= @save_mode; + +# +# MDEV-13861 Assertion `0' failed in Protocol::end_statement +# +CREATE TABLE t1 (f INT); +CREATE VIEW v1 AS SELECT * FROM t1 WHERE f <=> 'foo' WITH CHECK OPTION; +--error ER_VIEW_CHECK_FAILED +REPLACE INTO v1 SET f = NULL; +DROP VIEW v1; +DROP TABLE t1; diff --git a/sql/sql_class.h b/sql/sql_class.h index 7429ac586ea..3aeb8127030 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -1483,7 +1483,8 @@ public: const char* msg, Sql_condition ** cond_hdl) { - errors++; + if (level == Sql_condition::WARN_LEVEL_ERROR) + errors++; return false; } Counting_error_handler() : errors(0) {}