summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <malff/marcsql@weblab.(none)>2006-11-02 11:01:53 -0700
committerunknown <malff/marcsql@weblab.(none)>2006-11-02 11:01:53 -0700
commit384407aaeb37dafe4826c31006cd47c611da0da2 (patch)
tree6858415854d15b55cafbf65946d71a1878a9459b /mysql-test
parent83d5beec5d93b950684a88d64657ef771ed9008d (diff)
downloadmariadb-git-384407aaeb37dafe4826c31006cd47c611da0da2.tar.gz
Bug#21114 (Foreign key creation fails to table with name format)
Due to the complexity of this change, everything is documented in WL#3565 This patch is the third iteration, it takes into account the comments received to date. mysql-test/r/func_math.result: Improved test coverage mysql-test/r/view.result: Name collision, x() is a geometry native in function mysql-test/t/func_math.test: Improved test coverage mysql-test/t/view.test: Name collision, x() is a geometry native in function sql/item_create.cc: Revised the create_func implementation sql/item_create.h: Revised the create_func implementation sql/item_geofunc.h: Explicit Item allocation in the thread memory pool. sql/lex.h: Removed function parsing from the lexical parser sql/lex_symbol.h: Removed function parsing from the lexical parser sql/mysql_priv.h: Server initialization and shutdown sql/mysqld.cc: Server initialization and shutdown sql/share/errmsg.txt: New error messages sql/sql_yacc.yy: Removed function parsing from the lexical parser tests/mysql_client_test.c: Spaces are no longer significant for function calls mysql-test/include/parser_bug21114.inc: New tests mysql-test/r/parser.result: New tests mysql-test/r/parser_bug21114_innodb.result: New tests mysql-test/t/parser.test: New tests mysql-test/t/parser_bug21114_innodb.test: New tests
Diffstat (limited to 'mysql-test')
-rwxr-xr-xmysql-test/include/parser_bug21114.inc59
-rw-r--r--mysql-test/r/func_math.result12
-rw-r--r--mysql-test/r/parser.result388
-rw-r--r--mysql-test/r/parser_bug21114_innodb.result867
-rw-r--r--mysql-test/r/view.result8
-rw-r--r--mysql-test/t/func_math.test5
-rw-r--r--mysql-test/t/parser.test510
-rw-r--r--mysql-test/t/parser_bug21114_innodb.test422
-rw-r--r--mysql-test/t/view.test6
9 files changed, 2270 insertions, 7 deletions
diff --git a/mysql-test/include/parser_bug21114.inc b/mysql-test/include/parser_bug21114.inc
new file mode 100755
index 00000000000..eb709d5cc03
--- /dev/null
+++ b/mysql-test/include/parser_bug21114.inc
@@ -0,0 +1,59 @@
+#
+# Bug#21114 (Foreign key creation fails to table with name format)
+#
+# Trying to trick the parser into thinking $FCT(...) is a function call,
+# which is not in the CREATE TABLE and FOREIGN KEY ... REFERENCES syntax
+#
+# Usage :
+#
+# let $engine_type=InnoDb;
+# let $verbose=1;
+# let $FCT= <value_1>;
+# -- source parser_stress_func.inc
+# let $FCT= <value_2>;
+# -- source parser_stress_func.inc
+# let $verbose=0;
+# let $FCT= <value_3>;
+# -- source parser_stress_func.inc
+# let $FCT= <value_4>;
+# -- source parser_stress_func.inc
+
+-- disable_warnings
+eval drop table if exists $FCT;
+drop table if exists bug21114_child;
+-- enable_warnings
+
+--disable_query_log
+--disable_result_log
+
+eval CREATE TABLE $FCT(
+ col1 int not null,
+ col2 int not null,
+ col3 varchar(10),
+ CONSTRAINT pk PRIMARY KEY (col1, col2)
+) ENGINE $engine_type;
+
+eval CREATE TABLE bug21114_child(
+ pk int not null,
+ fk_col1 int not null,
+ fk_col2 int not null,
+ fk_col3 int not null,
+ fk_col4 int not null,
+ CONSTRAINT fk_fct FOREIGN KEY (fk_col1, fk_col2)
+ REFERENCES $FCT(col1, col2),
+ CONSTRAINT fk_fct_space FOREIGN KEY (fk_col3, fk_col4)
+ REFERENCES $FCT (col1, col2)
+) ENGINE $engine_type;
+
+--enable_query_log
+--enable_result_log
+
+if ($verbose)
+{
+ eval SHOW CREATE TABLE $FCT;
+ SHOW CREATE TABLE bug21114_child;
+}
+
+DROP TABLE bug21114_child;
+eval DROP TABLE $FCT;
+
diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result
index 4bd18ae589e..9a2c55b802d 100644
--- a/mysql-test/r/func_math.result
+++ b/mysql-test/r/func_math.result
@@ -102,6 +102,18 @@ Note 1003 select pi() AS `pi()`,format(sin((pi() / 2)),6) AS `format(sin(pi()/2)
select degrees(pi()),radians(360);
degrees(pi()) radians(360)
180 6.2831853071796
+select format(atan(-2, 2), 6);
+format(atan(-2, 2), 6)
+-0.785398
+select format(atan(pi(), 0), 6);
+format(atan(pi(), 0), 6)
+1.570796
+select format(atan2(-2, 2), 6);
+format(atan2(-2, 2), 6)
+-0.785398
+select format(atan2(pi(), 0), 6);
+format(atan2(pi(), 0), 6)
+1.570796
SELECT ACOS(1.0);
ACOS(1.0)
0
diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result
new file mode 100644
index 00000000000..afd78561898
--- /dev/null
+++ b/mysql-test/r/parser.result
@@ -0,0 +1,388 @@
+SET @save_sql_mode=@@sql_mode;
+set SQL_MODE='';
+create table ADDDATE(a int);
+drop table ADDDATE;
+create table ADDDATE (a int);
+drop table ADDDATE;
+create table BIT_AND(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_AND(a int)' at line 1
+create table BIT_AND (a int);
+drop table BIT_AND;
+create table BIT_OR(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_OR(a int)' at line 1
+create table BIT_OR (a int);
+drop table BIT_OR;
+create table BIT_XOR(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_XOR(a int)' at line 1
+create table BIT_XOR (a int);
+drop table BIT_XOR;
+create table CAST(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CAST(a int)' at line 1
+create table CAST (a int);
+drop table CAST;
+create table COUNT(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COUNT(a int)' at line 1
+create table COUNT (a int);
+drop table COUNT;
+create table CURDATE(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURDATE(a int)' at line 1
+create table CURDATE (a int);
+drop table CURDATE;
+create table CURTIME(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURTIME(a int)' at line 1
+create table CURTIME (a int);
+drop table CURTIME;
+create table DATE_ADD(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATE_ADD(a int)' at line 1
+create table DATE_ADD (a int);
+drop table DATE_ADD;
+create table DATE_SUB(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATE_SUB(a int)' at line 1
+create table DATE_SUB (a int);
+drop table DATE_SUB;
+create table EXTRACT(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTRACT(a int)' at line 1
+create table EXTRACT (a int);
+drop table EXTRACT;
+create table GROUP_CONCAT(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_CONCAT(a int)' at line 1
+create table GROUP_CONCAT (a int);
+drop table GROUP_CONCAT;
+create table GROUP_UNIQUE_USERS(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_UNIQUE_USERS(a int)' at line 1
+create table GROUP_UNIQUE_USERS (a int);
+drop table GROUP_UNIQUE_USERS;
+create table MAX(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX(a int)' at line 1
+create table MAX (a int);
+drop table MAX;
+create table MID(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MID(a int)' at line 1
+create table MID (a int);
+drop table MID;
+create table MIN(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MIN(a int)' at line 1
+create table MIN (a int);
+drop table MIN;
+create table NOW(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOW(a int)' at line 1
+create table NOW (a int);
+drop table NOW;
+create table POSITION(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'POSITION(a int)' at line 1
+create table POSITION (a int);
+drop table POSITION;
+create table SESSION_USER(a int);
+drop table SESSION_USER;
+create table SESSION_USER (a int);
+drop table SESSION_USER;
+create table STD(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STD(a int)' at line 1
+create table STD (a int);
+drop table STD;
+create table STDDEV(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV(a int)' at line 1
+create table STDDEV (a int);
+drop table STDDEV;
+create table STDDEV_POP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV_POP(a int)' at line 1
+create table STDDEV_POP (a int);
+drop table STDDEV_POP;
+create table STDDEV_SAMP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV_SAMP(a int)' at line 1
+create table STDDEV_SAMP (a int);
+drop table STDDEV_SAMP;
+create table SUBDATE(a int);
+drop table SUBDATE;
+create table SUBDATE (a int);
+drop table SUBDATE;
+create table SUBSTR(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUBSTR(a int)' at line 1
+create table SUBSTR (a int);
+drop table SUBSTR;
+create table SUBSTRING(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUBSTRING(a int)' at line 1
+create table SUBSTRING (a int);
+drop table SUBSTRING;
+create table SUM(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUM(a int)' at line 1
+create table SUM (a int);
+drop table SUM;
+create table SYSDATE(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SYSDATE(a int)' at line 1
+create table SYSDATE (a int);
+drop table SYSDATE;
+create table SYSTEM_USER(a int);
+drop table SYSTEM_USER;
+create table SYSTEM_USER (a int);
+drop table SYSTEM_USER;
+create table TRIM(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIM(a int)' at line 1
+create table TRIM (a int);
+drop table TRIM;
+create table UNIQUE_USERS(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE_USERS(a int)' at line 1
+create table UNIQUE_USERS (a int);
+drop table UNIQUE_USERS;
+create table VARIANCE(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARIANCE(a int)' at line 1
+create table VARIANCE (a int);
+drop table VARIANCE;
+create table VAR_POP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_POP(a int)' at line 1
+create table VAR_POP (a int);
+drop table VAR_POP;
+create table VAR_SAMP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_SAMP(a int)' at line 1
+create table VAR_SAMP (a int);
+drop table VAR_SAMP;
+set SQL_MODE='IGNORE_SPACE';
+create table ADDDATE(a int);
+drop table ADDDATE;
+create table ADDDATE (a int);
+drop table ADDDATE;
+create table BIT_AND(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_AND(a int)' at line 1
+create table BIT_AND (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_AND (a int)' at line 1
+create table BIT_OR(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_OR(a int)' at line 1
+create table BIT_OR (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_OR (a int)' at line 1
+create table BIT_XOR(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_XOR(a int)' at line 1
+create table BIT_XOR (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BIT_XOR (a int)' at line 1
+create table CAST(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CAST(a int)' at line 1
+create table CAST (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CAST (a int)' at line 1
+create table COUNT(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COUNT(a int)' at line 1
+create table COUNT (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COUNT (a int)' at line 1
+create table CURDATE(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURDATE(a int)' at line 1
+create table CURDATE (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURDATE (a int)' at line 1
+create table CURTIME(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURTIME(a int)' at line 1
+create table CURTIME (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURTIME (a int)' at line 1
+create table DATE_ADD(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATE_ADD(a int)' at line 1
+create table DATE_ADD (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATE_ADD (a int)' at line 1
+create table DATE_SUB(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATE_SUB(a int)' at line 1
+create table DATE_SUB (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATE_SUB (a int)' at line 1
+create table EXTRACT(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTRACT(a int)' at line 1
+create table EXTRACT (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTRACT (a int)' at line 1
+create table GROUP_CONCAT(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_CONCAT(a int)' at line 1
+create table GROUP_CONCAT (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_CONCAT (a int)' at line 1
+create table GROUP_UNIQUE_USERS(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_UNIQUE_USERS(a int)' at line 1
+create table GROUP_UNIQUE_USERS (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_UNIQUE_USERS (a int)' at line 1
+create table MAX(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX(a int)' at line 1
+create table MAX (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX (a int)' at line 1
+create table MID(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MID(a int)' at line 1
+create table MID (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MID (a int)' at line 1
+create table MIN(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MIN(a int)' at line 1
+create table MIN (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MIN (a int)' at line 1
+create table NOW(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOW(a int)' at line 1
+create table NOW (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOW (a int)' at line 1
+create table POSITION(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'POSITION(a int)' at line 1
+create table POSITION (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'POSITION (a int)' at line 1
+create table SESSION_USER(a int);
+drop table SESSION_USER;
+create table SESSION_USER (a int);
+drop table SESSION_USER;
+create table STD(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STD(a int)' at line 1
+create table STD (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STD (a int)' at line 1
+create table STDDEV(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV(a int)' at line 1
+create table STDDEV (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV (a int)' at line 1
+create table STDDEV_POP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV_POP(a int)' at line 1
+create table STDDEV_POP (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV_POP (a int)' at line 1
+create table STDDEV_SAMP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV_SAMP(a int)' at line 1
+create table STDDEV_SAMP (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STDDEV_SAMP (a int)' at line 1
+create table SUBDATE(a int);
+drop table SUBDATE;
+create table SUBDATE (a int);
+drop table SUBDATE;
+create table SUBSTR(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUBSTR(a int)' at line 1
+create table SUBSTR (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUBSTR (a int)' at line 1
+create table SUBSTRING(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUBSTRING(a int)' at line 1
+create table SUBSTRING (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUBSTRING (a int)' at line 1
+create table SUM(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUM(a int)' at line 1
+create table SUM (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUM (a int)' at line 1
+create table SYSDATE(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SYSDATE(a int)' at line 1
+create table SYSDATE (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SYSDATE (a int)' at line 1
+create table SYSTEM_USER(a int);
+drop table SYSTEM_USER;
+create table SYSTEM_USER (a int);
+drop table SYSTEM_USER;
+create table TRIM(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIM(a int)' at line 1
+create table TRIM (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIM (a int)' at line 1
+create table UNIQUE_USERS(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE_USERS(a int)' at line 1
+create table UNIQUE_USERS (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE_USERS (a int)' at line 1
+create table VARIANCE(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARIANCE(a int)' at line 1
+create table VARIANCE (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARIANCE (a int)' at line 1
+create table VAR_POP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_POP(a int)' at line 1
+create table VAR_POP (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_POP (a int)' at line 1
+create table VAR_SAMP(a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_SAMP(a int)' at line 1
+create table VAR_SAMP (a int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_SAMP (a int)' at line 1
+SET @@sql_mode=@save_sql_mode;
+select pi(3.14);
+ERROR 42000: Incorrect parameter count in the call to native function 'pi'
+select tan();
+ERROR 42000: Incorrect parameter count in the call to native function 'tan'
+select tan(1, 2);
+ERROR 42000: Incorrect parameter count in the call to native function 'tan'
+select makedate(1);
+ERROR 42000: Incorrect parameter count in the call to native function 'makedate'
+select makedate(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'makedate'
+select maketime();
+ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
+select maketime(1);
+ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
+select maketime(1, 2);
+ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
+select maketime(1, 2, 3, 4);
+ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
+select atan();
+ERROR 42000: Incorrect parameter count in the call to native function 'atan'
+select atan2(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'atan2'
+select benchmark(10, 1+1);
+benchmark(10, 1+1)
+0
+select benchmark(5+5, 2);
+ERROR 42000: Incorrect parameters in the call to native function 'BENCHMARK'
+select concat();
+ERROR 42000: Incorrect parameter count in the call to native function 'concat'
+select concat("foo");
+concat("foo")
+foo
+select concat_ws();
+ERROR 42000: Incorrect parameter count in the call to native function 'concat_ws'
+select concat_ws("foo");
+ERROR 42000: Incorrect parameter count in the call to native function 'concat_ws'
+set @pwd="my password";
+select encode("secret", @pwd);
+ERROR 42000: Incorrect parameters in the call to native function 'ENCODE'
+select decode("encoded-secret", @pwd);
+ERROR 42000: Incorrect parameters in the call to native function 'DECODE'
+select encrypt();
+ERROR 42000: Incorrect parameter count in the call to native function 'encrypt'
+select encrypt(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'encrypt'
+select des_encrypt("p1", "p2", "not expected");
+ERROR 42000: Incorrect parameter count in the call to native function 'des_encrypt'
+select des_decrypt("p1", "p2", "not expected");
+ERROR 42000: Incorrect parameter count in the call to native function 'des_decrypt'
+select elt();
+ERROR 42000: Incorrect parameter count in the call to native function 'elt'
+select elt(1);
+ERROR 42000: Incorrect parameter count in the call to native function 'elt'
+select export_set();
+ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
+select export_set("p1");
+ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
+select export_set("p1", "p2");
+ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
+select export_set("p1", "p2", "p3", "p4", "p5", "p6");
+ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
+select field();
+ERROR 42000: Incorrect parameter count in the call to native function 'field'
+select field("p1");
+ERROR 42000: Incorrect parameter count in the call to native function 'field'
+set @dec=2;
+select format(pi(), @dec);
+ERROR 42000: Incorrect parameters in the call to native function 'FORMAT'
+select from_unixtime();
+ERROR 42000: Incorrect parameter count in the call to native function 'from_unixtime'
+select from_unixtime(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'from_unixtime'
+select unix_timestamp(1, 2);
+ERROR 42000: Incorrect parameter count in the call to native function 'unix_timestamp'
+select greatest();
+ERROR 42000: Incorrect parameter count in the call to native function 'greatest'
+select greatest(12);
+ERROR 42000: Incorrect parameter count in the call to native function 'greatest'
+select last_insert_id(1, 2);
+ERROR 42000: Incorrect parameter count in the call to native function 'last_insert_id'
+select least();
+ERROR 42000: Incorrect parameter count in the call to native function 'least'
+select least(12);
+ERROR 42000: Incorrect parameter count in the call to native function 'least'
+select locate();
+ERROR 42000: Incorrect parameter count in the call to native function 'locate'
+select locate(1);
+ERROR 42000: Incorrect parameter count in the call to native function 'locate'
+select locate(1, 2, 3, 4);
+ERROR 42000: Incorrect parameter count in the call to native function 'locate'
+select log();
+ERROR 42000: Incorrect parameter count in the call to native function 'log'
+select log(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'log'
+select make_set();
+ERROR 42000: Incorrect parameter count in the call to native function 'make_set'
+select make_set(1);
+ERROR 42000: Incorrect parameter count in the call to native function 'make_set'
+select master_pos_wait();
+ERROR 42000: Incorrect parameter count in the call to native function 'master_pos_wait'
+select master_pos_wait(1);
+ERROR 42000: Incorrect parameter count in the call to native function 'master_pos_wait'
+select master_pos_wait(1, 2, 3, 4);
+ERROR 42000: Incorrect parameter count in the call to native function 'master_pos_wait'
+select rand(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'rand'
+select round(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'round'
+select yearweek();
+ERROR 42000: Incorrect parameter count in the call to native function 'yearweek'
+select yearweek(1, 2, 3);
+ERROR 42000: Incorrect parameter count in the call to native function 'yearweek'
diff --git a/mysql-test/r/parser_bug21114_innodb.result b/mysql-test/r/parser_bug21114_innodb.result
new file mode 100644
index 00000000000..d3ceda38979
--- /dev/null
+++ b/mysql-test/r/parser_bug21114_innodb.result
@@ -0,0 +1,867 @@
+drop table if exists ABS;
+drop table if exists bug21114_child;
+SHOW CREATE TABLE ABS;
+Table Create Table
+ABS CREATE TABLE `ABS` (
+ `col1` int(11) NOT NULL,
+ `col2` int(11) NOT NULL,
+ `col3` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`col1`,`col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SHOW CREATE TABLE bug21114_child;
+Table Create Table
+bug21114_child CREATE TABLE `bug21114_child` (
+ `pk` int(11) NOT NULL,
+ `fk_col1` int(11) NOT NULL,
+ `fk_col2` int(11) NOT NULL,
+ `fk_col3` int(11) NOT NULL,
+ `fk_col4` int(11) NOT NULL,
+ KEY `fk_fct` (`fk_col1`,`fk_col2`),
+ KEY `fk_fct_space` (`fk_col3`,`fk_col4`),
+ CONSTRAINT `fk_fct` FOREIGN KEY (`fk_col1`, `fk_col2`) REFERENCES `ABS` (`col1`, `col2`),
+ CONSTRAINT `fk_fct_space` FOREIGN KEY (`fk_col3`, `fk_col4`) REFERENCES `ABS` (`col1`, `col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+DROP TABLE bug21114_child;
+DROP TABLE ABS;
+drop table if exists FIELD;
+drop table if exists bug21114_child;
+SHOW CREATE TABLE FIELD;
+Table Create Table
+FIELD CREATE TABLE `FIELD` (
+ `col1` int(11) NOT NULL,
+ `col2` int(11) NOT NULL,
+ `col3` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`col1`,`col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SHOW CREATE TABLE bug21114_child;
+Table Create Table
+bug21114_child CREATE TABLE `bug21114_child` (
+ `pk` int(11) NOT NULL,
+ `fk_col1` int(11) NOT NULL,
+ `fk_col2` int(11) NOT NULL,
+ `fk_col3` int(11) NOT NULL,
+ `fk_col4` int(11) NOT NULL,
+ KEY `fk_fct` (`fk_col1`,`fk_col2`),
+ KEY `fk_fct_space` (`fk_col3`,`fk_col4`),
+ CONSTRAINT `fk_fct` FOREIGN KEY (`fk_col1`, `fk_col2`) REFERENCES `FIELD` (`col1`, `col2`),
+ CONSTRAINT `fk_fct_space` FOREIGN KEY (`fk_col3`, `fk_col4`) REFERENCES `FIELD` (`col1`, `col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+DROP TABLE bug21114_child;
+DROP TABLE FIELD;
+drop table if exists FORMAT;
+drop table if exists bug21114_child;
+SHOW CREATE TABLE FORMAT;
+Table Create Table
+FORMAT CREATE TABLE `FORMAT` (
+ `col1` int(11) NOT NULL,
+ `col2` int(11) NOT NULL,
+ `col3` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`col1`,`col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SHOW CREATE TABLE bug21114_child;
+Table Create Table
+bug21114_child CREATE TABLE `bug21114_child` (
+ `pk` int(11) NOT NULL,
+ `fk_col1` int(11) NOT NULL,
+ `fk_col2` int(11) NOT NULL,
+ `fk_col3` int(11) NOT NULL,
+ `fk_col4` int(11) NOT NULL,
+ KEY `fk_fct` (`fk_col1`,`fk_col2`),
+ KEY `fk_fct_space` (`fk_col3`,`fk_col4`),
+ CONSTRAINT `fk_fct` FOREIGN KEY (`fk_col1`, `fk_col2`) REFERENCES `FORMAT` (`col1`, `col2`),
+ CONSTRAINT `fk_fct_space` FOREIGN KEY (`fk_col3`, `fk_col4`) REFERENCES `FORMAT` (`col1`, `col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+DROP TABLE bug21114_child;
+DROP TABLE FORMAT;
+drop table if exists ACOS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ACOS;
+drop table if exists ADDDATE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ADDDATE;
+drop table if exists ADDTIME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ADDTIME;
+drop table if exists AES_DECRYPT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE AES_DECRYPT;
+drop table if exists AES_ENCRYPT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE AES_ENCRYPT;
+drop table if exists AREA;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE AREA;
+drop table if exists ASBINARY;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ASBINARY;
+drop table if exists ASIN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ASIN;
+drop table if exists ASTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ASTEXT;
+drop table if exists ASWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ASWKB;
+drop table if exists ASWKT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ASWKT;
+drop table if exists ATAN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ATAN;
+drop table if exists ATAN2;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ATAN2;
+drop table if exists BENCHMARK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE BENCHMARK;
+drop table if exists BIN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE BIN;
+drop table if exists BIT_COUNT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE BIT_COUNT;
+drop table if exists BIT_LENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE BIT_LENGTH;
+drop table if exists CEIL;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CEIL;
+drop table if exists CEILING;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CEILING;
+drop table if exists CENTROID;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CENTROID;
+drop table if exists CHARACTER_LENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CHARACTER_LENGTH;
+drop table if exists CHAR_LENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CHAR_LENGTH;
+drop table if exists COERCIBILITY;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE COERCIBILITY;
+drop table if exists COMPRESS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE COMPRESS;
+drop table if exists CONCAT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CONCAT;
+drop table if exists CONCAT_WS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CONCAT_WS;
+drop table if exists CONNECTION_ID;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CONNECTION_ID;
+drop table if exists CONV;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CONV;
+drop table if exists CONVERT_TZ;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CONVERT_TZ;
+drop table if exists COS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE COS;
+drop table if exists COT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE COT;
+drop table if exists CRC32;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CRC32;
+drop table if exists CROSSES;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE CROSSES;
+drop table if exists DATEDIFF;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DATEDIFF;
+drop table if exists DATE_FORMAT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DATE_FORMAT;
+drop table if exists DAYNAME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DAYNAME;
+drop table if exists DAYOFMONTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DAYOFMONTH;
+drop table if exists DAYOFWEEK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DAYOFWEEK;
+drop table if exists DAYOFYEAR;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DAYOFYEAR;
+drop table if exists DECODE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DECODE;
+drop table if exists DEGREES;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DEGREES;
+drop table if exists DES_DECRYPT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DES_DECRYPT;
+drop table if exists DES_ENCRYPT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DES_ENCRYPT;
+drop table if exists DIMENSION;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DIMENSION;
+drop table if exists DISJOINT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE DISJOINT;
+drop table if exists ELT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ELT;
+drop table if exists ENCODE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ENCODE;
+drop table if exists ENCRYPT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ENCRYPT;
+drop table if exists ENDPOINT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ENDPOINT;
+drop table if exists ENVELOPE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ENVELOPE;
+drop table if exists EQUALS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE EQUALS;
+drop table if exists EXP;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE EXP;
+drop table if exists EXPORT_SET;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE EXPORT_SET;
+drop table if exists EXTERIORRING;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE EXTERIORRING;
+drop table if exists EXTRACTVALUE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE EXTRACTVALUE;
+drop table if exists FIND_IN_SET;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE FIND_IN_SET;
+drop table if exists FLOOR;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE FLOOR;
+drop table if exists FOUND_ROWS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE FOUND_ROWS;
+drop table if exists FROM_DAYS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE FROM_DAYS;
+drop table if exists FROM_UNIXTIME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE FROM_UNIXTIME;
+drop table if exists GEOMCOLLFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMCOLLFROMTEXT;
+drop table if exists GEOMCOLLFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMCOLLFROMWKB;
+drop table if exists GEOMETRYCOLLECTIONFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMETRYCOLLECTIONFROMTEXT;
+drop table if exists GEOMETRYCOLLECTIONFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMETRYCOLLECTIONFROMWKB;
+drop table if exists GEOMETRYFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMETRYFROMTEXT;
+drop table if exists GEOMETRYFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMETRYFROMWKB;
+drop table if exists GEOMETRYN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMETRYN;
+drop table if exists GEOMETRYTYPE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMETRYTYPE;
+drop table if exists GEOMFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMFROMTEXT;
+drop table if exists GEOMFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GEOMFROMWKB;
+drop table if exists GET_LOCK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GET_LOCK;
+drop table if exists GLENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GLENGTH;
+drop table if exists GREATEST;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE GREATEST;
+drop table if exists HEX;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE HEX;
+drop table if exists IFNULL;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE IFNULL;
+drop table if exists INET_ATON;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE INET_ATON;
+drop table if exists INET_NTOA;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE INET_NTOA;
+drop table if exists INSTR;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE INSTR;
+drop table if exists INTERIORRINGN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE INTERIORRINGN;
+drop table if exists INTERSECTS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE INTERSECTS;
+drop table if exists ISCLOSED;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ISCLOSED;
+drop table if exists ISEMPTY;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ISEMPTY;
+drop table if exists ISNULL;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ISNULL;
+drop table if exists ISSIMPLE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ISSIMPLE;
+drop table if exists IS_FREE_LOCK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE IS_FREE_LOCK;
+drop table if exists IS_USED_LOCK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE IS_USED_LOCK;
+drop table if exists LAST_DAY;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LAST_DAY;
+drop table if exists LAST_INSERT_ID;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LAST_INSERT_ID;
+drop table if exists LCASE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LCASE;
+drop table if exists LEAST;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LEAST;
+drop table if exists LENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LENGTH;
+drop table if exists LINEFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LINEFROMTEXT;
+drop table if exists LINEFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LINEFROMWKB;
+drop table if exists LINESTRINGFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LINESTRINGFROMTEXT;
+drop table if exists LINESTRINGFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LINESTRINGFROMWKB;
+drop table if exists LN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LN;
+drop table if exists LOAD_FILE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LOAD_FILE;
+drop table if exists LOCATE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LOCATE;
+drop table if exists LOG;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LOG;
+drop table if exists LOG10;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LOG10;
+drop table if exists LOG2;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LOG2;
+drop table if exists LOWER;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LOWER;
+drop table if exists LPAD;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LPAD;
+drop table if exists LTRIM;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE LTRIM;
+drop table if exists MAKEDATE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MAKEDATE;
+drop table if exists MAKETIME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MAKETIME;
+drop table if exists MAKE_SET;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MAKE_SET;
+drop table if exists MASTER_POS_WAIT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MASTER_POS_WAIT;
+drop table if exists MBRCONTAINS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBRCONTAINS;
+drop table if exists MBRDISJOINT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBRDISJOINT;
+drop table if exists MBREQUAL;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBREQUAL;
+drop table if exists MBRINTERSECTS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBRINTERSECTS;
+drop table if exists MBROVERLAPS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBROVERLAPS;
+drop table if exists MBRTOUCHES;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBRTOUCHES;
+drop table if exists MBRWITHIN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MBRWITHIN;
+drop table if exists MD5;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MD5;
+drop table if exists MLINEFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MLINEFROMTEXT;
+drop table if exists MLINEFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MLINEFROMWKB;
+drop table if exists MONTHNAME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MONTHNAME;
+drop table if exists MPOINTFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MPOINTFROMTEXT;
+drop table if exists MPOINTFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MPOINTFROMWKB;
+drop table if exists MPOLYFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MPOLYFROMTEXT;
+drop table if exists MPOLYFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MPOLYFROMWKB;
+drop table if exists MULTILINESTRINGFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MULTILINESTRINGFROMTEXT;
+drop table if exists MULTILINESTRINGFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MULTILINESTRINGFROMWKB;
+drop table if exists MULTIPOINTFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MULTIPOINTFROMTEXT;
+drop table if exists MULTIPOINTFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MULTIPOINTFROMWKB;
+drop table if exists MULTIPOLYGONFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MULTIPOLYGONFROMTEXT;
+drop table if exists MULTIPOLYGONFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE MULTIPOLYGONFROMWKB;
+drop table if exists NAME_CONST;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE NAME_CONST;
+drop table if exists NULLIF;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE NULLIF;
+drop table if exists NUMGEOMETRIES;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE NUMGEOMETRIES;
+drop table if exists NUMINTERIORRINGS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE NUMINTERIORRINGS;
+drop table if exists NUMPOINTS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE NUMPOINTS;
+drop table if exists OCT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE OCT;
+drop table if exists OCTET_LENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE OCTET_LENGTH;
+drop table if exists ORD;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ORD;
+drop table if exists OVERLAPS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE OVERLAPS;
+drop table if exists PERIOD_ADD;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE PERIOD_ADD;
+drop table if exists PERIOD_DIFF;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE PERIOD_DIFF;
+drop table if exists PI;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE PI;
+drop table if exists POINTFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POINTFROMTEXT;
+drop table if exists POINTFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POINTFROMWKB;
+drop table if exists POINTN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POINTN;
+drop table if exists POLYFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POLYFROMTEXT;
+drop table if exists POLYFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POLYFROMWKB;
+drop table if exists POLYGONFROMTEXT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POLYGONFROMTEXT;
+drop table if exists POLYGONFROMWKB;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POLYGONFROMWKB;
+drop table if exists POW;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POW;
+drop table if exists POWER;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE POWER;
+drop table if exists QUOTE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE QUOTE;
+drop table if exists RADIANS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE RADIANS;
+drop table if exists RAND;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE RAND;
+drop table if exists RELEASE_LOCK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE RELEASE_LOCK;
+drop table if exists REVERSE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE REVERSE;
+drop table if exists ROUND;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ROUND;
+drop table if exists ROW_COUNT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE ROW_COUNT;
+drop table if exists RPAD;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE RPAD;
+drop table if exists RTRIM;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE RTRIM;
+drop table if exists SEC_TO_TIME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SEC_TO_TIME;
+drop table if exists SESSION_USER;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SESSION_USER;
+drop table if exists SHA;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SHA;
+drop table if exists SHA1;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SHA1;
+drop table if exists SIGN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SIGN;
+drop table if exists SIN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SIN;
+drop table if exists SLEEP;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SLEEP;
+drop table if exists SOUNDEX;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SOUNDEX;
+drop table if exists SPACE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SPACE;
+drop table if exists SQRT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SQRT;
+drop table if exists SRID;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SRID;
+drop table if exists STARTPOINT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE STARTPOINT;
+drop table if exists STRCMP;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE STRCMP;
+drop table if exists STR_TO_DATE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE STR_TO_DATE;
+drop table if exists SUBDATE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SUBDATE;
+drop table if exists SUBSTRING_INDEX;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SUBSTRING_INDEX;
+drop table if exists SUBTIME;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SUBTIME;
+drop table if exists SYSTEM_USER;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE SYSTEM_USER;
+drop table if exists TAN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE TAN;
+drop table if exists TIMEDIFF;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE TIMEDIFF;
+drop table if exists TIME_FORMAT;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE TIME_FORMAT;
+drop table if exists TIME_TO_SEC;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE TIME_TO_SEC;
+drop table if exists TOUCHES;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE TOUCHES;
+drop table if exists TO_DAYS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE TO_DAYS;
+drop table if exists UCASE;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UCASE;
+drop table if exists UNCOMPRESS;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UNCOMPRESS;
+drop table if exists UNCOMPRESSED_LENGTH;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UNCOMPRESSED_LENGTH;
+drop table if exists UNHEX;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UNHEX;
+drop table if exists UNIX_TIMESTAMP;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UNIX_TIMESTAMP;
+drop table if exists UPDATEXML;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UPDATEXML;
+drop table if exists UPPER;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UPPER;
+drop table if exists UUID;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE UUID;
+drop table if exists VERSION;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE VERSION;
+drop table if exists WEEKDAY;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE WEEKDAY;
+drop table if exists WEEKOFYEAR;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE WEEKOFYEAR;
+drop table if exists WITHIN;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE WITHIN;
+drop table if exists X;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE X;
+drop table if exists Y;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE Y;
+drop table if exists YEARWEEK;
+drop table if exists bug21114_child;
+DROP TABLE bug21114_child;
+DROP TABLE YEARWEEK;
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
index 7c467749ee6..1cdb782b2fe 100644
--- a/mysql-test/r/view.result
+++ b/mysql-test/r/view.result
@@ -791,13 +791,13 @@ test.`f``1` ()
5
drop view v1;
drop function `f``1`;
-create function x () returns int return 5;
-create view v1 as select x ();
+create function a() returns int return 5;
+create view v1 as select a();
select * from v1;
-x ()
+a()
5
drop view v1;
-drop function x;
+drop function a;
create table t2 (col1 char collate latin1_german2_ci);
create view v2 as select col1 collate latin1_german1_ci from t2;
show create view v2;
diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test
index 4041c267134..09aa5751301 100644
--- a/mysql-test/t/func_math.test
+++ b/mysql-test/t/func_math.test
@@ -34,6 +34,11 @@ select pi(),format(sin(pi()/2),6),format(cos(pi()/2),6),format(abs(tan(pi())),6)
explain extended select pi(),format(sin(pi()/2),6),format(cos(pi()/2),6),format(abs(tan(pi())),6),format(cot(1),6),format(asin(1),6),format(acos(0),6),format(atan(1),6);
select degrees(pi()),radians(360);
+select format(atan(-2, 2), 6);
+select format(atan(pi(), 0), 6);
+select format(atan2(-2, 2), 6);
+select format(atan2(pi(), 0), 6);
+
#
# Bug #2338 Trignometric arithmatic problems
#
diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test
new file mode 100644
index 00000000000..11af7c691d8
--- /dev/null
+++ b/mysql-test/t/parser.test
@@ -0,0 +1,510 @@
+#
+# This file contains tests covering the parser
+#
+
+#=============================================================================
+# LEXICAL PARSER (lex)
+#=============================================================================
+
+SET @save_sql_mode=@@sql_mode;
+
+#
+# Documenting the current behavior, to detect incompatible changes.
+# In each cases:
+# - no error is the correct result
+# - an error is the expected result with the current implementation,
+# and is a limitation.
+
+set SQL_MODE='';
+
+create table ADDDATE(a int);
+drop table ADDDATE;
+create table ADDDATE (a int);
+drop table ADDDATE;
+
+--error ER_PARSE_ERROR
+create table BIT_AND(a int);
+create table BIT_AND (a int);
+drop table BIT_AND;
+
+--error ER_PARSE_ERROR
+create table BIT_OR(a int);
+create table BIT_OR (a int);
+drop table BIT_OR;
+
+--error ER_PARSE_ERROR
+create table BIT_XOR(a int);
+create table BIT_XOR (a int);
+drop table BIT_XOR;
+
+--error ER_PARSE_ERROR
+create table CAST(a int);
+create table CAST (a int);
+drop table CAST;
+
+--error ER_PARSE_ERROR
+create table COUNT(a int);
+create table COUNT (a int);
+drop table COUNT;
+
+--error ER_PARSE_ERROR
+create table CURDATE(a int);
+create table CURDATE (a int);
+drop table CURDATE;
+
+--error ER_PARSE_ERROR
+create table CURTIME(a int);
+create table CURTIME (a int);
+drop table CURTIME;
+
+--error ER_PARSE_ERROR
+create table DATE_ADD(a int);
+create table DATE_ADD (a int);
+drop table DATE_ADD;
+
+--error ER_PARSE_ERROR
+create table DATE_SUB(a int);
+create table DATE_SUB (a int);
+drop table DATE_SUB;
+
+--error ER_PARSE_ERROR
+create table EXTRACT(a int);
+create table EXTRACT (a int);
+drop table EXTRACT;
+
+--error ER_PARSE_ERROR
+create table GROUP_CONCAT(a int);
+create table GROUP_CONCAT (a int);
+drop table GROUP_CONCAT;
+
+--error ER_PARSE_ERROR
+create table GROUP_UNIQUE_USERS(a int);
+create table GROUP_UNIQUE_USERS (a int);
+drop table GROUP_UNIQUE_USERS;
+
+--error ER_PARSE_ERROR
+create table MAX(a int);
+create table MAX (a int);
+drop table MAX;
+
+--error ER_PARSE_ERROR
+create table MID(a int);
+create table MID (a int);
+drop table MID;
+
+--error ER_PARSE_ERROR
+create table MIN(a int);
+create table MIN (a int);
+drop table MIN;
+
+--error ER_PARSE_ERROR
+create table NOW(a int);
+create table NOW (a int);
+drop table NOW;
+
+--error ER_PARSE_ERROR
+create table POSITION(a int);
+create table POSITION (a int);
+drop table POSITION;
+
+create table SESSION_USER(a int);
+drop table SESSION_USER;
+create table SESSION_USER (a int);
+drop table SESSION_USER;
+
+--error ER_PARSE_ERROR
+create table STD(a int);
+create table STD (a int);
+drop table STD;
+
+--error ER_PARSE_ERROR
+create table STDDEV(a int);
+create table STDDEV (a int);
+drop table STDDEV;
+
+--error ER_PARSE_ERROR
+create table STDDEV_POP(a int);
+create table STDDEV_POP (a int);
+drop table STDDEV_POP;
+
+--error ER_PARSE_ERROR
+create table STDDEV_SAMP(a int);
+create table STDDEV_SAMP (a int);
+drop table STDDEV_SAMP;
+
+create table SUBDATE(a int);
+drop table SUBDATE;
+create table SUBDATE (a int);
+drop table SUBDATE;
+
+--error ER_PARSE_ERROR
+create table SUBSTR(a int);
+create table SUBSTR (a int);
+drop table SUBSTR;
+
+--error ER_PARSE_ERROR
+create table SUBSTRING(a int);
+create table SUBSTRING (a int);
+drop table SUBSTRING;
+
+--error ER_PARSE_ERROR
+create table SUM(a int);
+create table SUM (a int);
+drop table SUM;
+
+--error ER_PARSE_ERROR
+create table SYSDATE(a int);
+create table SYSDATE (a int);
+drop table SYSDATE;
+
+create table SYSTEM_USER(a int);
+drop table SYSTEM_USER;
+create table SYSTEM_USER (a int);
+drop table SYSTEM_USER;
+
+--error ER_PARSE_ERROR
+create table TRIM(a int);
+create table TRIM (a int);
+drop table TRIM;
+
+--error ER_PARSE_ERROR
+create table UNIQUE_USERS(a int);
+create table UNIQUE_USERS (a int);
+drop table UNIQUE_USERS;
+
+--error ER_PARSE_ERROR
+create table VARIANCE(a int);
+create table VARIANCE (a int);
+drop table VARIANCE;
+
+--error ER_PARSE_ERROR
+create table VAR_POP(a int);
+create table VAR_POP (a int);
+drop table VAR_POP;
+
+--error ER_PARSE_ERROR
+create table VAR_SAMP(a int);
+create table VAR_SAMP (a int);
+drop table VAR_SAMP;
+
+set SQL_MODE='IGNORE_SPACE';
+
+create table ADDDATE(a int);
+drop table ADDDATE;
+create table ADDDATE (a int);
+drop table ADDDATE;
+
+--error ER_PARSE_ERROR
+create table BIT_AND(a int);
+--error ER_PARSE_ERROR
+create table BIT_AND (a int);
+
+--error ER_PARSE_ERROR
+create table BIT_OR(a int);
+--error ER_PARSE_ERROR
+create table BIT_OR (a int);
+
+--error ER_PARSE_ERROR
+create table BIT_XOR(a int);
+--error ER_PARSE_ERROR
+create table BIT_XOR (a int);
+
+--error ER_PARSE_ERROR
+create table CAST(a int);
+--error ER_PARSE_ERROR
+create table CAST (a int);
+
+--error ER_PARSE_ERROR
+create table COUNT(a int);
+--error ER_PARSE_ERROR
+create table COUNT (a int);
+
+--error ER_PARSE_ERROR
+create table CURDATE(a int);
+--error ER_PARSE_ERROR
+create table CURDATE (a int);
+
+--error ER_PARSE_ERROR
+create table CURTIME(a int);
+--error ER_PARSE_ERROR
+create table CURTIME (a int);
+
+--error ER_PARSE_ERROR
+create table DATE_ADD(a int);
+--error ER_PARSE_ERROR
+create table DATE_ADD (a int);
+
+--error ER_PARSE_ERROR
+create table DATE_SUB(a int);
+--error ER_PARSE_ERROR
+create table DATE_SUB (a int);
+
+--error ER_PARSE_ERROR
+create table EXTRACT(a int);
+--error ER_PARSE_ERROR
+create table EXTRACT (a int);
+
+--error ER_PARSE_ERROR
+create table GROUP_CONCAT(a int);
+--error ER_PARSE_ERROR
+create table GROUP_CONCAT (a int);
+
+--error ER_PARSE_ERROR
+create table GROUP_UNIQUE_USERS(a int);
+--error ER_PARSE_ERROR
+create table GROUP_UNIQUE_USERS (a int);
+
+--error ER_PARSE_ERROR
+create table MAX(a int);
+--error ER_PARSE_ERROR
+create table MAX (a int);
+
+--error ER_PARSE_ERROR
+create table MID(a int);
+--error ER_PARSE_ERROR
+create table MID (a int);
+
+--error ER_PARSE_ERROR
+create table MIN(a int);
+--error ER_PARSE_ERROR
+create table MIN (a int);
+
+--error ER_PARSE_ERROR
+create table NOW(a int);
+--error ER_PARSE_ERROR
+create table NOW (a int);
+
+--error ER_PARSE_ERROR
+create table POSITION(a int);
+--error ER_PARSE_ERROR
+create table POSITION (a int);
+
+create table SESSION_USER(a int);
+drop table SESSION_USER;
+create table SESSION_USER (a int);
+drop table SESSION_USER;
+
+--error ER_PARSE_ERROR
+create table STD(a int);
+--error ER_PARSE_ERROR
+create table STD (a int);
+
+--error ER_PARSE_ERROR
+create table STDDEV(a int);
+--error ER_PARSE_ERROR
+create table STDDEV (a int);
+
+--error ER_PARSE_ERROR
+create table STDDEV_POP(a int);
+--error ER_PARSE_ERROR
+create table STDDEV_POP (a int);
+
+--error ER_PARSE_ERROR
+create table STDDEV_SAMP(a int);
+--error ER_PARSE_ERROR
+create table STDDEV_SAMP (a int);
+
+create table SUBDATE(a int);
+drop table SUBDATE;
+create table SUBDATE (a int);
+drop table SUBDATE;
+
+--error ER_PARSE_ERROR
+create table SUBSTR(a int);
+--error ER_PARSE_ERROR
+create table SUBSTR (a int);
+
+--error ER_PARSE_ERROR
+create table SUBSTRING(a int);
+--error ER_PARSE_ERROR
+create table SUBSTRING (a int);
+
+--error ER_PARSE_ERROR
+create table SUM(a int);
+--error ER_PARSE_ERROR
+create table SUM (a int);
+
+--error ER_PARSE_ERROR
+create table SYSDATE(a int);
+--error ER_PARSE_ERROR
+create table SYSDATE (a int);
+
+create table SYSTEM_USER(a int);
+drop table SYSTEM_USER;
+create table SYSTEM_USER (a int);
+drop table SYSTEM_USER;
+
+--error ER_PARSE_ERROR
+create table TRIM(a int);
+--error ER_PARSE_ERROR
+create table TRIM (a int);
+
+--error ER_PARSE_ERROR
+create table UNIQUE_USERS(a int);
+--error ER_PARSE_ERROR
+create table UNIQUE_USERS (a int);
+
+--error ER_PARSE_ERROR
+create table VARIANCE(a int);
+--error ER_PARSE_ERROR
+create table VARIANCE (a int);
+
+--error ER_PARSE_ERROR
+create table VAR_POP(a int);
+--error ER_PARSE_ERROR
+create table VAR_POP (a int);
+
+--error ER_PARSE_ERROR
+create table VAR_SAMP(a int);
+--error ER_PARSE_ERROR
+create table VAR_SAMP (a int);
+
+SET @@sql_mode=@save_sql_mode;
+
+#=============================================================================
+# SYNTACTIC PARSER (bison)
+#=============================================================================
+
+#
+#
+# Bug#21114 (Foreign key creation fails to table with name format)
+#
+
+# Test coverage with edge conditions
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select pi(3.14);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select tan();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select tan(1, 2);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select makedate(1);
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select makedate(1, 2, 3);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select maketime();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select maketime(1);
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select maketime(1, 2);
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select maketime(1, 2, 3, 4);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select atan();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select atan2(1, 2, 3);
+
+select benchmark(10, 1+1);
+
+-- error ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+select benchmark(5+5, 2);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select concat();
+select concat("foo");
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select concat_ws();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select concat_ws("foo");
+
+set @pwd="my password";
+-- error ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+select encode("secret", @pwd);
+-- error ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+select decode("encoded-secret", @pwd);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select encrypt();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select encrypt(1, 2, 3);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select des_encrypt("p1", "p2", "not expected");
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select des_decrypt("p1", "p2", "not expected");
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select elt();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select elt(1);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select export_set();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select export_set("p1");
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select export_set("p1", "p2");
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select export_set("p1", "p2", "p3", "p4", "p5", "p6");
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select field();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select field("p1");
+
+set @dec=2;
+-- error ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+select format(pi(), @dec);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select from_unixtime();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select from_unixtime(1, 2, 3);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select unix_timestamp(1, 2);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select greatest();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select greatest(12);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select last_insert_id(1, 2);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select least();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select least(12);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select locate();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select locate(1);
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select locate(1, 2, 3, 4);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select log();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select log(1, 2, 3);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select make_set();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select make_set(1);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select master_pos_wait();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select master_pos_wait(1);
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select master_pos_wait(1, 2, 3, 4);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select rand(1, 2, 3);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select round(1, 2, 3);
+
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select yearweek();
+-- error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+select yearweek(1, 2, 3);
+
diff --git a/mysql-test/t/parser_bug21114_innodb.test b/mysql-test/t/parser_bug21114_innodb.test
new file mode 100644
index 00000000000..d2101e2a28d
--- /dev/null
+++ b/mysql-test/t/parser_bug21114_innodb.test
@@ -0,0 +1,422 @@
+-- source include/have_innodb.inc
+
+let $engine_type=InnoDb;
+
+#
+# Bug#21114 (Foreign key creation fails to table with name format)
+#
+
+# Testing with the full log for only a few functions,
+# including FORMAT for witch the bug was reported.
+
+let $verbose=1;
+
+let $FCT=ABS;
+-- source include/parser_bug21114.inc
+let $FCT=FIELD;
+-- source include/parser_bug21114.inc
+let $FCT=FORMAT;
+-- source include/parser_bug21114.inc
+
+# Ignoring the result of SHOW CREATE (this generates too much noise)
+# Tests will fail if the create table statement can not be parsed
+
+let verbose=0;
+
+let $FCT=ACOS;
+-- source include/parser_bug21114.inc
+let $FCT=ADDDATE;
+-- source include/parser_bug21114.inc
+let $FCT=ADDTIME;
+-- source include/parser_bug21114.inc
+let $FCT=AES_DECRYPT;
+-- source include/parser_bug21114.inc
+let $FCT=AES_ENCRYPT;
+-- source include/parser_bug21114.inc
+let $FCT=AREA;
+-- source include/parser_bug21114.inc
+let $FCT=ASBINARY;
+-- source include/parser_bug21114.inc
+let $FCT=ASIN;
+-- source include/parser_bug21114.inc
+let $FCT=ASTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=ASWKB;
+-- source include/parser_bug21114.inc
+let $FCT=ASWKT;
+-- source include/parser_bug21114.inc
+let $FCT=ATAN;
+-- source include/parser_bug21114.inc
+let $FCT=ATAN2;
+-- source include/parser_bug21114.inc
+let $FCT=BENCHMARK;
+-- source include/parser_bug21114.inc
+let $FCT=BIN;
+-- source include/parser_bug21114.inc
+let $FCT=BIT_COUNT;
+-- source include/parser_bug21114.inc
+let $FCT=BIT_LENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=CEIL;
+-- source include/parser_bug21114.inc
+let $FCT=CEILING;
+-- source include/parser_bug21114.inc
+let $FCT=CENTROID;
+-- source include/parser_bug21114.inc
+let $FCT=CHARACTER_LENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=CHAR_LENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=COERCIBILITY;
+-- source include/parser_bug21114.inc
+let $FCT=COMPRESS;
+-- source include/parser_bug21114.inc
+let $FCT=CONCAT;
+-- source include/parser_bug21114.inc
+let $FCT=CONCAT_WS;
+-- source include/parser_bug21114.inc
+let $FCT=CONNECTION_ID;
+-- source include/parser_bug21114.inc
+let $FCT=CONV;
+-- source include/parser_bug21114.inc
+let $FCT=CONVERT_TZ;
+-- source include/parser_bug21114.inc
+let $FCT=COS;
+-- source include/parser_bug21114.inc
+let $FCT=COT;
+-- source include/parser_bug21114.inc
+let $FCT=CRC32;
+-- source include/parser_bug21114.inc
+let $FCT=CROSSES;
+-- source include/parser_bug21114.inc
+let $FCT=DATEDIFF;
+-- source include/parser_bug21114.inc
+let $FCT=DATE_FORMAT;
+-- source include/parser_bug21114.inc
+let $FCT=DAYNAME;
+-- source include/parser_bug21114.inc
+let $FCT=DAYOFMONTH;
+-- source include/parser_bug21114.inc
+let $FCT=DAYOFWEEK;
+-- source include/parser_bug21114.inc
+let $FCT=DAYOFYEAR;
+-- source include/parser_bug21114.inc
+let $FCT=DECODE;
+-- source include/parser_bug21114.inc
+let $FCT=DEGREES;
+-- source include/parser_bug21114.inc
+let $FCT=DES_DECRYPT;
+-- source include/parser_bug21114.inc
+let $FCT=DES_ENCRYPT;
+-- source include/parser_bug21114.inc
+let $FCT=DIMENSION;
+-- source include/parser_bug21114.inc
+let $FCT=DISJOINT;
+-- source include/parser_bug21114.inc
+let $FCT=ELT;
+-- source include/parser_bug21114.inc
+let $FCT=ENCODE;
+-- source include/parser_bug21114.inc
+let $FCT=ENCRYPT;
+-- source include/parser_bug21114.inc
+let $FCT=ENDPOINT;
+-- source include/parser_bug21114.inc
+let $FCT=ENVELOPE;
+-- source include/parser_bug21114.inc
+let $FCT=EQUALS;
+-- source include/parser_bug21114.inc
+let $FCT=EXP;
+-- source include/parser_bug21114.inc
+let $FCT=EXPORT_SET;
+-- source include/parser_bug21114.inc
+let $FCT=EXTERIORRING;
+-- source include/parser_bug21114.inc
+let $FCT=EXTRACTVALUE;
+-- source include/parser_bug21114.inc
+let $FCT=FIND_IN_SET;
+-- source include/parser_bug21114.inc
+let $FCT=FLOOR;
+-- source include/parser_bug21114.inc
+let $FCT=FOUND_ROWS;
+-- source include/parser_bug21114.inc
+let $FCT=FROM_DAYS;
+-- source include/parser_bug21114.inc
+let $FCT=FROM_UNIXTIME;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMCOLLFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMCOLLFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMETRYCOLLECTIONFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMETRYCOLLECTIONFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMETRYFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMETRYFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMETRYN;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMETRYTYPE;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=GEOMFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=GET_LOCK;
+-- source include/parser_bug21114.inc
+let $FCT=GLENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=GREATEST;
+-- source include/parser_bug21114.inc
+let $FCT=HEX;
+-- source include/parser_bug21114.inc
+let $FCT=IFNULL;
+-- source include/parser_bug21114.inc
+let $FCT=INET_ATON;
+-- source include/parser_bug21114.inc
+let $FCT=INET_NTOA;
+-- source include/parser_bug21114.inc
+let $FCT=INSTR;
+-- source include/parser_bug21114.inc
+let $FCT=INTERIORRINGN;
+-- source include/parser_bug21114.inc
+let $FCT=INTERSECTS;
+-- source include/parser_bug21114.inc
+let $FCT=ISCLOSED;
+-- source include/parser_bug21114.inc
+let $FCT=ISEMPTY;
+-- source include/parser_bug21114.inc
+let $FCT=ISNULL;
+-- source include/parser_bug21114.inc
+let $FCT=ISSIMPLE;
+-- source include/parser_bug21114.inc
+let $FCT=IS_FREE_LOCK;
+-- source include/parser_bug21114.inc
+let $FCT=IS_USED_LOCK;
+-- source include/parser_bug21114.inc
+let $FCT=LAST_DAY;
+-- source include/parser_bug21114.inc
+let $FCT=LAST_INSERT_ID;
+-- source include/parser_bug21114.inc
+let $FCT=LCASE;
+-- source include/parser_bug21114.inc
+let $FCT=LEAST;
+-- source include/parser_bug21114.inc
+let $FCT=LENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=LINEFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=LINEFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=LINESTRINGFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=LINESTRINGFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=LN;
+-- source include/parser_bug21114.inc
+let $FCT=LOAD_FILE;
+-- source include/parser_bug21114.inc
+let $FCT=LOCATE;
+-- source include/parser_bug21114.inc
+let $FCT=LOG;
+-- source include/parser_bug21114.inc
+let $FCT=LOG10;
+-- source include/parser_bug21114.inc
+let $FCT=LOG2;
+-- source include/parser_bug21114.inc
+let $FCT=LOWER;
+-- source include/parser_bug21114.inc
+let $FCT=LPAD;
+-- source include/parser_bug21114.inc
+let $FCT=LTRIM;
+-- source include/parser_bug21114.inc
+let $FCT=MAKEDATE;
+-- source include/parser_bug21114.inc
+let $FCT=MAKETIME;
+-- source include/parser_bug21114.inc
+let $FCT=MAKE_SET;
+-- source include/parser_bug21114.inc
+let $FCT=MASTER_POS_WAIT;
+-- source include/parser_bug21114.inc
+let $FCT=MBRCONTAINS;
+-- source include/parser_bug21114.inc
+let $FCT=MBRDISJOINT;
+-- source include/parser_bug21114.inc
+let $FCT=MBREQUAL;
+-- source include/parser_bug21114.inc
+let $FCT=MBRINTERSECTS;
+-- source include/parser_bug21114.inc
+let $FCT=MBROVERLAPS;
+-- source include/parser_bug21114.inc
+let $FCT=MBRTOUCHES;
+-- source include/parser_bug21114.inc
+let $FCT=MBRWITHIN;
+-- source include/parser_bug21114.inc
+let $FCT=MD5;
+-- source include/parser_bug21114.inc
+let $FCT=MLINEFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=MLINEFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=MONTHNAME;
+-- source include/parser_bug21114.inc
+let $FCT=MPOINTFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=MPOINTFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=MPOLYFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=MPOLYFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=MULTILINESTRINGFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=MULTILINESTRINGFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=MULTIPOINTFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=MULTIPOINTFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=MULTIPOLYGONFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=MULTIPOLYGONFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=NAME_CONST;
+-- source include/parser_bug21114.inc
+let $FCT=NULLIF;
+-- source include/parser_bug21114.inc
+let $FCT=NUMGEOMETRIES;
+-- source include/parser_bug21114.inc
+let $FCT=NUMINTERIORRINGS;
+-- source include/parser_bug21114.inc
+let $FCT=NUMPOINTS;
+-- source include/parser_bug21114.inc
+let $FCT=OCT;
+-- source include/parser_bug21114.inc
+let $FCT=OCTET_LENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=ORD;
+-- source include/parser_bug21114.inc
+let $FCT=OVERLAPS;
+-- source include/parser_bug21114.inc
+let $FCT=PERIOD_ADD;
+-- source include/parser_bug21114.inc
+let $FCT=PERIOD_DIFF;
+-- source include/parser_bug21114.inc
+let $FCT=PI;
+-- source include/parser_bug21114.inc
+let $FCT=POINTFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=POINTFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=POINTN;
+-- source include/parser_bug21114.inc
+let $FCT=POLYFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=POLYFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=POLYGONFROMTEXT;
+-- source include/parser_bug21114.inc
+let $FCT=POLYGONFROMWKB;
+-- source include/parser_bug21114.inc
+let $FCT=POW;
+-- source include/parser_bug21114.inc
+let $FCT=POWER;
+-- source include/parser_bug21114.inc
+let $FCT=QUOTE;
+-- source include/parser_bug21114.inc
+let $FCT=RADIANS;
+-- source include/parser_bug21114.inc
+let $FCT=RAND;
+-- source include/parser_bug21114.inc
+let $FCT=RELEASE_LOCK;
+-- source include/parser_bug21114.inc
+let $FCT=REVERSE;
+-- source include/parser_bug21114.inc
+let $FCT=ROUND;
+-- source include/parser_bug21114.inc
+let $FCT=ROW_COUNT;
+-- source include/parser_bug21114.inc
+let $FCT=RPAD;
+-- source include/parser_bug21114.inc
+let $FCT=RTRIM;
+-- source include/parser_bug21114.inc
+let $FCT=SEC_TO_TIME;
+-- source include/parser_bug21114.inc
+let $FCT=SESSION_USER;
+-- source include/parser_bug21114.inc
+let $FCT=SHA;
+-- source include/parser_bug21114.inc
+let $FCT=SHA1;
+-- source include/parser_bug21114.inc
+let $FCT=SIGN;
+-- source include/parser_bug21114.inc
+let $FCT=SIN;
+-- source include/parser_bug21114.inc
+let $FCT=SLEEP;
+-- source include/parser_bug21114.inc
+let $FCT=SOUNDEX;
+-- source include/parser_bug21114.inc
+let $FCT=SPACE;
+-- source include/parser_bug21114.inc
+let $FCT=SQRT;
+-- source include/parser_bug21114.inc
+let $FCT=SRID;
+-- source include/parser_bug21114.inc
+let $FCT=STARTPOINT;
+-- source include/parser_bug21114.inc
+let $FCT=STRCMP;
+-- source include/parser_bug21114.inc
+let $FCT=STR_TO_DATE;
+-- source include/parser_bug21114.inc
+let $FCT=SUBDATE;
+-- source include/parser_bug21114.inc
+let $FCT=SUBSTRING_INDEX;
+-- source include/parser_bug21114.inc
+let $FCT=SUBTIME;
+-- source include/parser_bug21114.inc
+let $FCT=SYSTEM_USER;
+-- source include/parser_bug21114.inc
+let $FCT=TAN;
+-- source include/parser_bug21114.inc
+let $FCT=TIMEDIFF;
+-- source include/parser_bug21114.inc
+let $FCT=TIME_FORMAT;
+-- source include/parser_bug21114.inc
+let $FCT=TIME_TO_SEC;
+-- source include/parser_bug21114.inc
+let $FCT=TOUCHES;
+-- source include/parser_bug21114.inc
+let $FCT=TO_DAYS;
+-- source include/parser_bug21114.inc
+let $FCT=UCASE;
+-- source include/parser_bug21114.inc
+let $FCT=UNCOMPRESS;
+-- source include/parser_bug21114.inc
+let $FCT=UNCOMPRESSED_LENGTH;
+-- source include/parser_bug21114.inc
+let $FCT=UNHEX;
+-- source include/parser_bug21114.inc
+let $FCT=UNIX_TIMESTAMP;
+-- source include/parser_bug21114.inc
+let $FCT=UPDATEXML;
+-- source include/parser_bug21114.inc
+let $FCT=UPPER;
+-- source include/parser_bug21114.inc
+let $FCT=UUID;
+-- source include/parser_bug21114.inc
+let $FCT=VERSION;
+-- source include/parser_bug21114.inc
+let $FCT=WEEKDAY;
+-- source include/parser_bug21114.inc
+let $FCT=WEEKOFYEAR;
+-- source include/parser_bug21114.inc
+let $FCT=WITHIN;
+-- source include/parser_bug21114.inc
+let $FCT=X;
+-- source include/parser_bug21114.inc
+let $FCT=Y;
+-- source include/parser_bug21114.inc
+let $FCT=YEARWEEK;
+-- source include/parser_bug21114.inc
+
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index 2446bedfc14..86cd5994346 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -698,11 +698,11 @@ drop function `f``1`;
#
# tested problem when function name length close to ALIGN_SIZE
#
-create function x () returns int return 5;
-create view v1 as select x ();
+create function a() returns int return 5;
+create view v1 as select a();
select * from v1;
drop view v1;
-drop function x;
+drop function a;
#
# VIEW with collation