summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/select.result26
-rw-r--r--mysql-test/t/select.test23
-rw-r--r--sql/sql_yacc.yy6
3 files changed, 33 insertions, 22 deletions
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index ed120a1bbb8..52f2e84bf4e 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -4077,23 +4077,21 @@ x
1
Warnings:
Warning 1466 Leading spaces are removed from name ' x'
+CREATE VIEW v1 AS SELECT 1 AS ``;
+ERROR 42000: Incorrect column name ''
CREATE VIEW v1 AS SELECT 1 AS ` `;
-Warnings:
-Warning 1474 Name ' ' has become ''
-SELECT `` FROM v1;
-
-1
-CREATE VIEW v2 AS SELECT 1 AS ` `;
-Warnings:
-Warning 1474 Name ' ' has become ''
-SELECT `` FROM v2;
-
-1
-CREATE VIEW v3 AS SELECT 1 AS ` x`;
+ERROR 42000: Incorrect column name ' '
+CREATE VIEW v1 AS SELECT 1 AS ` `;
+ERROR 42000: Incorrect column name ' '
+CREATE VIEW v1 AS SELECT (SELECT 1 AS ` `);
+ERROR 42000: Incorrect column name ' '
+CREATE VIEW v1 AS SELECT 1 AS ` x`;
Warnings:
Warning 1466 Leading spaces are removed from name ' x'
-SELECT `x` FROM v3;
+SELECT `x` FROM v1;
x
1
-DROP VIEW v1, v2, v3;
+ALTER VIEW v1 AS SELECT 1 AS ` `;
+ERROR 42000: Incorrect column name ' '
+DROP VIEW v1;
End of 5.0 tests
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index 5c30a17e08e..a6ed3c854b4 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -3466,22 +3466,29 @@ DROP TABLE t1;
#
--disable_ps_protocol
-
SELECT 1 AS ` `;
SELECT 1 AS ` `;
SELECT 1 AS ` x`;
+--enable_ps_protocol
+
+--error 1166
+CREATE VIEW v1 AS SELECT 1 AS ``;
+--error 1166
CREATE VIEW v1 AS SELECT 1 AS ` `;
-SELECT `` FROM v1;
-CREATE VIEW v2 AS SELECT 1 AS ` `;
-SELECT `` FROM v2;
+--error 1166
+CREATE VIEW v1 AS SELECT 1 AS ` `;
-CREATE VIEW v3 AS SELECT 1 AS ` x`;
-SELECT `x` FROM v3;
+--error 1166
+CREATE VIEW v1 AS SELECT (SELECT 1 AS ` `);
-DROP VIEW v1, v2, v3;
+CREATE VIEW v1 AS SELECT 1 AS ` x`;
+SELECT `x` FROM v1;
---enable_ps_protocol
+--error 1166
+ALTER VIEW v1 AS SELECT 1 AS ` `;
+
+DROP VIEW v1;
--echo End of 5.0 tests
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 368ce5673e2..3401bf739b3 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -4305,6 +4305,12 @@ select_item:
MYSQL_YYABORT;
if ($4.str)
{
+ if (Lex->sql_command == SQLCOM_CREATE_VIEW &&
+ check_column_name($4.str))
+ {
+ my_error(ER_WRONG_COLUMN_NAME, MYF(0), $4.str);
+ MYSQL_YYABORT;
+ }
$2->is_autogenerated_name= FALSE;
$2->set_name($4.str, $4.length, system_charset_info);
}