diff options
author | unknown <malff/marcsql@weblab.(none)> | 2006-11-02 11:01:53 -0700 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2006-11-02 11:01:53 -0700 |
commit | 384407aaeb37dafe4826c31006cd47c611da0da2 (patch) | |
tree | 6858415854d15b55cafbf65946d71a1878a9459b /mysql-test | |
parent | 83d5beec5d93b950684a88d64657ef771ed9008d (diff) | |
download | mariadb-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-x | mysql-test/include/parser_bug21114.inc | 59 | ||||
-rw-r--r-- | mysql-test/r/func_math.result | 12 | ||||
-rw-r--r-- | mysql-test/r/parser.result | 388 | ||||
-rw-r--r-- | mysql-test/r/parser_bug21114_innodb.result | 867 | ||||
-rw-r--r-- | mysql-test/r/view.result | 8 | ||||
-rw-r--r-- | mysql-test/t/func_math.test | 5 | ||||
-rw-r--r-- | mysql-test/t/parser.test | 510 | ||||
-rw-r--r-- | mysql-test/t/parser_bug21114_innodb.test | 422 | ||||
-rw-r--r-- | mysql-test/t/view.test | 6 |
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 |