diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 09393135fc6..2b71a58482f 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -2135,3 +2135,9 @@ DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) DROP TABLE t1; DROP VIEW v1; +create table t1 (f1 char); +create view v1 as select strcmp(f1,'a') from t1; +select * from v1; +strcmp(f1,'a') +drop view v1; +drop table t1; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index fa729d1e607..d786b61c8a8 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -1995,3 +1995,12 @@ ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5); DESCRIBE v1; DROP TABLE t1; DROP VIEW v1; + +# +# Bug #12489 wrongly printed strcmp() function results in creation of broken +# view +create table t1 (f1 char); +create view v1 as select strcmp(f1,'a') from t1; +select * from v1; +drop view v1; +drop table t1; diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 6b0cf3e80c2..1915dbaabf6 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -427,6 +427,7 @@ public: longlong val_int(); optimize_type select_optimize() const { return OPTIMIZE_NONE; } const char *func_name() const { return "strcmp"; } + void print(String *str) { Item_func::print(str); } };