Commit 56f43d9d authored by unknown's avatar unknown
Browse files

Fix bug #13622 Wrong view .frm created if some field's alias contain \n

View .frm parser assumes that query string will take only 1 line, with \n in
aliases query stringmay take several lines thus produces bad .frm file.

'query' parameter type changed from 'string' to 'escaped string'


sql/sql_view.cc:
  Fix bug #13622 \n in column alias results in broken .frm
  'query' parameter type changed to 'escaped string'
mysql-test/r/view.result:
  Test case for bug #13622 Wrong view .frm created if some field's alias contain \n
mysql-test/t/view.test:
  Test case for bug #13622 Wrong view .frm created if some field's alias contain \n
parent f9dbcd55
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2323,3 +2323,11 @@ id select_type table type possible_keys key key_len ref rows Extra
1	PRIMARY	t3	ALL	NULL	NULL	NULL	NULL	3	Using where
DROP VIEW v1,v2;
DROP TABLE t1,t2,t3;
create table t1 (f1 int);
create view v1 as select t1.f1 as '123
456' from t1;
select * from v1;
123
456
drop view v1;
drop table t1;
+9 −0
Original line number Diff line number Diff line
@@ -2189,4 +2189,13 @@ EXPLAIN SELECT * FROM v2 WHERE a=1;
DROP VIEW v1,v2;
DROP TABLE t1,t2,t3;

#
# Bug #13622 Wrong view .frm created if some field's alias contain \n
#
create table t1 (f1 int);
create view v1 as select t1.f1 as '123
456' from t1;
select * from v1;
drop view v1;
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -496,7 +496,7 @@ static const int num_view_backups= 3;
static File_option view_parameters[]=
{{{(char*) STRING_WITH_LEN("query")},
  offsetof(TABLE_LIST, query),
  FILE_OPTIONS_STRING},
  FILE_OPTIONS_ESTRING},
 {{(char*) STRING_WITH_LEN("md5")},
  offsetof(TABLE_LIST, md5),
  FILE_OPTIONS_STRING},