Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime

into  weblab.(none):/home/marcsql/TREE/mysql-5.1-21114_b


mysql-test/r/view.result:
  Auto merged
mysql-test/t/view.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
This commit is contained in:
unknown 2006-11-02 11:13:04 -07:00
commit 04c219aec7
19 changed files with 7792 additions and 1627 deletions

View file

@ -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;

View file

@ -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

388
mysql-test/r/parser.result Normal file
View file

@ -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'

View file

@ -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;

View file

@ -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;

View file

@ -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
#

510
mysql-test/t/parser.test Normal file
View file

@ -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);

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -14,148 +14,154 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* Functions to create an item. Used by lex.h */
/* Functions to create an item. Used by sql/sql_yacc.yy */
Item *create_func_abs(Item* a);
Item *create_func_acos(Item* a);
Item *create_func_aes_encrypt(Item* a, Item* b);
Item *create_func_aes_decrypt(Item* a, Item* b);
Item *create_func_ascii(Item* a);
Item *create_func_asin(Item* a);
Item *create_func_bin(Item* a);
Item *create_func_bit_count(Item* a);
Item *create_func_bit_length(Item* a);
Item *create_func_coercibility(Item* a);
Item *create_func_ceiling(Item* a);
Item *create_func_char_length(Item* a);
Item *create_func_cast(Item *a, Cast_target cast_type, int len, int dec,
CHARSET_INFO *cs);
Item *create_func_connection_id(void);
Item *create_func_conv(Item* a, Item *b, Item *c);
Item *create_func_cos(Item* a);
Item *create_func_cot(Item* a);
Item *create_func_crc32(Item* a);
Item *create_func_date_format(Item* a,Item *b);
Item *create_func_dayname(Item* a);
Item *create_func_dayofmonth(Item* a);
Item *create_func_dayofweek(Item* a);
Item *create_func_dayofyear(Item* a);
Item *create_func_degrees(Item *);
Item *create_func_exp(Item* a);
Item *create_func_find_in_set(Item* a, Item *b);
Item *create_func_floor(Item* a);
Item *create_func_found_rows(void);
Item *create_func_from_days(Item* a);
Item *create_func_get_lock(Item* a, Item *b);
Item *create_func_hex(Item *a);
Item *create_func_inet_aton(Item* a);
Item *create_func_inet_ntoa(Item* a);
#ifndef ITEM_CREATE_H
#define ITEM_CREATE_H
Item *create_func_ifnull(Item* a, Item *b);
Item *create_func_instr(Item* a, Item *b);
Item *create_func_isnull(Item* a);
Item *create_func_lcase(Item* a);
Item *create_func_length(Item* a);
Item *create_func_ln(Item* a);
Item *create_func_locate(Item* a, Item *b);
Item *create_func_log2(Item* a);
Item *create_func_log10(Item* a);
Item *create_func_lpad(Item* a, Item *b, Item *c);
Item *create_func_ltrim(Item* a);
Item *create_func_md5(Item* a);
Item *create_func_mod(Item* a, Item *b);
Item *create_func_monthname(Item* a);
Item *create_func_name_const(Item *a, Item *b);
Item *create_func_nullif(Item* a, Item *b);
Item *create_func_oct(Item *);
Item *create_func_ord(Item* a);
Item *create_func_period_add(Item* a, Item *b);
Item *create_func_period_diff(Item* a, Item *b);
Item *create_func_pi(void);
Item *create_func_pow(Item* a, Item *b);
Item *create_func_radians(Item *a);
Item *create_func_release_lock(Item* a);
Item *create_func_repeat(Item* a, Item *b);
Item *create_func_reverse(Item* a);
Item *create_func_rpad(Item* a, Item *b, Item *c);
Item *create_func_rtrim(Item* a);
Item *create_func_sec_to_time(Item* a);
Item *create_func_sign(Item* a);
Item *create_func_sin(Item* a);
Item *create_func_sha(Item* a);
Item *create_func_sleep(Item* a);
Item *create_func_soundex(Item* a);
Item *create_func_space(Item *);
Item *create_func_sqrt(Item* a);
Item *create_func_strcmp(Item* a, Item *b);
Item *create_func_tan(Item* a);
Item *create_func_time_format(Item *a, Item *b);
Item *create_func_time_to_sec(Item* a);
Item *create_func_to_days(Item* a);
Item *create_func_ucase(Item* a);
Item *create_func_unhex(Item* a);
Item *create_func_uuid(void);
Item *create_func_version(void);
Item *create_func_weekday(Item* a);
Item *create_load_file(Item* a);
Item *create_func_is_free_lock(Item* a);
Item *create_func_is_used_lock(Item* a);
Item *create_func_quote(Item* a);
Item *create_func_xml_extractvalue(Item *a, Item *b);
Item *create_func_xml_update(Item *a, Item *b, Item *c);
#ifdef HAVE_SPATIAL
/**
Public function builder interface.
The parser (sql/sql_yacc.yy) uses a factory / builder pattern to
construct an <code>Item</code> object for each function call.
All the concrete function builders implements this interface,
either directly or indirectly with some adapter helpers.
Keeping the function creation separated from the bison grammar allows
to simplify the parser, and avoid the need to introduce a new token
for each function, which has undesirable side effects in the grammar.
*/
Item *create_func_geometry_from_text(Item *a);
Item *create_func_as_wkt(Item *a);
Item *create_func_as_wkb(Item *a);
Item *create_func_srid(Item *a);
Item *create_func_startpoint(Item *a);
Item *create_func_endpoint(Item *a);
Item *create_func_exteriorring(Item *a);
Item *create_func_centroid(Item *a);
Item *create_func_envelope(Item *a);
Item *create_func_pointn(Item *a, Item *b);
Item *create_func_interiorringn(Item *a, Item *b);
Item *create_func_geometryn(Item *a, Item *b);
class Create_func
{
public:
/**
The builder create method.
Given the function name and list or arguments, this method creates
an <code>Item</code> that represents the function call.
In case or errors, a NULL item is returned, and an error is reported.
Note that the <code>thd</code> object may be modified by the builder.
In particular, the following members/methods can be set/called,
depending on the function called and the function possible side effects.
<ul>
<li><code>thd->lex->binlog_row_based_if_mixed</code></li>
<li><code>thd->lex->current_context()</code></li>
<li><code>thd->lex->safe_to_cache_query</code></li>
<li><code>thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT)</code></li>
<li><code>thd->lex->uncacheable(UNCACHEABLE_RAND)</code></li>
<li><code>thd->lex->add_time_zone_tables_to_query_tables(thd)</code></li>
</ul>
@param thd The current thread
@param name The function name
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call, or NULL
*/
virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list) = 0;
Item *create_func_equals(Item *a, Item *b);
Item *create_func_disjoint(Item *a, Item *b);
Item *create_func_intersects(Item *a, Item *b);
Item *create_func_touches(Item *a, Item *b);
Item *create_func_crosses(Item *a, Item *b);
Item *create_func_within(Item *a, Item *b);
Item *create_func_contains(Item *a, Item *b);
Item *create_func_overlaps(Item *a, Item *b);
protected:
/** Constructor */
Create_func() {}
/** Destructor */
virtual ~Create_func() {}
};
Item *create_func_isempty(Item *a);
Item *create_func_issimple(Item *a);
Item *create_func_isclosed(Item *a);
Item *create_func_geometry_type(Item *a);
Item *create_func_dimension(Item *a);
Item *create_func_x(Item *a);
Item *create_func_y(Item *a);
Item *create_func_area(Item *a);
Item *create_func_glength(Item *a);
/**
Function builder for qualified functions.
This builder is used with functions call using a qualified function name
syntax, as in <code>db.func(expr, expr, ...)</code>.
*/
Item *create_func_numpoints(Item *a);
Item *create_func_numinteriorring(Item *a);
Item *create_func_numgeometries(Item *a);
class Create_qfunc : public Create_func
{
public:
/**
The builder create method, for unqualified functions.
This builder will use the current database for the database name.
@param thd The current thread
@param name The function name
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call
*/
virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
Item *create_func_point(Item *a, Item *b);
/**
The builder create method, for qualified functions.
@param thd The current thread
@param db The database name
@param name The function name
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call
*/
virtual Item* create(THD *thd, LEX_STRING db, LEX_STRING name,
List<Item> *item_list) = 0;
#endif /*HAVE_SPATIAL*/
protected:
/** Constructor. */
Create_qfunc() {}
/** Destructor. */
virtual ~Create_qfunc() {}
};
Item *create_func_compress(Item *a);
Item *create_func_uncompress(Item *a);
Item *create_func_uncompressed_length(Item *a);
Item *create_func_datediff(Item *a, Item *b);
Item *create_func_weekofyear(Item *a);
Item *create_func_makedate(Item* a,Item* b);
Item *create_func_addtime(Item* a,Item* b);
Item *create_func_subtime(Item* a,Item* b);
Item *create_func_timediff(Item* a,Item* b);
Item *create_func_maketime(Item* a,Item* b,Item* c);
Item *create_func_str_to_date(Item* a,Item* b);
Item *create_func_last_day(Item *a);
/**
Find the native function builder associated with a given function name.
@param thd The current thread
@param name The native function name
@return The native function builder associated with the name, or NULL
*/
extern Create_func * find_native_function_builder(THD *thd, LEX_STRING name);
/**
Find the function builder for qualified functions.
@param thd The current thread
@return A function builder for qualified functions
*/
extern Create_qfunc * find_qualified_function_builder(THD *thd);
#ifdef HAVE_DLOPEN
/**
Function builder for User Defined Functions.
*/
class Create_udf_func : public Create_func
{
public:
virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
The builder create method, for User Defined Functions.
@param thd The current thread
@param fct The User Defined Function metadata
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call
*/
Item* create(THD *thd, udf_func *fct, List<Item> *item_list);
/** Singleton. */
static Create_udf_func s_singleton;
protected:
/** Constructor. */
Create_udf_func() {}
/** Destructor. */
virtual ~Create_udf_func() {}
};
#endif
/**
Builder for cast expressions.
@param thd The current thread
@param a The item to cast
@param cast_type the type casted into
@param len TODO
@param dec TODO
@param cs The character set
*/
Item*
create_func_cast(THD *thd, Item *a, Cast_target cast_type, int len, int dec,
CHARSET_INFO *cs);
#endif

View file

@ -348,11 +348,11 @@ public:
void fix_length_and_dec() { max_length= 10; }
};
#define GEOM_NEW(obj_constructor) new obj_constructor
#define GEOM_NEW(thd, obj_constructor) new (thd->mem_root) obj_constructor
#else /*HAVE_SPATIAL*/
#define GEOM_NEW(obj_constructor) NULL
#define GEOM_NEW(thd, obj_constructor) NULL
#endif

216
sql/lex.h
View file

@ -30,16 +30,7 @@ SYM_GROUP sym_group_rtree= {"RTree keys", "HAVE_RTREE_KEYS"};
#define SYM_OR_NULL(A) A
#endif
#define SYM(A) SYM_OR_NULL(A),0,0,&sym_group_common
#define F_SYM(A) SYM_OR_NULL(A)
#define CREATE_FUNC(A) (void *)(SYM_OR_NULL(A)), &sym_group_common
#ifdef HAVE_SPATIAL
#define CREATE_FUNC_GEOM(A) (void *)(SYM_OR_NULL(A)), &sym_group_geom
#else
#define CREATE_FUNC_GEOM(A) 0, &sym_group_geom
#endif
#define SYM(A) SYM_OR_NULL(A),0,&sym_group_common
/*
Symbols are broken into separated arrays to allow field names with
@ -588,235 +579,38 @@ static SYMBOL symbols[] = {
static SYMBOL sql_functions[] = {
{ "ABS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_abs)},
{ "ACOS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_acos)},
{ "ADDDATE", SYM(ADDDATE_SYM)},
{ "ADDTIME", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_addtime)},
{ "AES_ENCRYPT", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_aes_encrypt)},
{ "AES_DECRYPT", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_aes_decrypt)},
{ "AREA", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_area)},
{ "ASIN", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_asin)},
{ "ASBINARY", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_as_wkb)},
{ "ASTEXT", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_as_wkt)},
{ "ASWKB", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_as_wkb)},
{ "ASWKT", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_as_wkt)},
{ "ATAN", SYM(ATAN)},
{ "ATAN2", SYM(ATAN)},
{ "BENCHMARK", SYM(BENCHMARK_SYM)},
{ "BIN", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_bin)},
{ "BIT_COUNT", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_bit_count)},
{ "BIT_OR", SYM(BIT_OR)},
{ "BIT_AND", SYM(BIT_AND)},
{ "BIT_OR", SYM(BIT_OR)},
{ "BIT_XOR", SYM(BIT_XOR)},
{ "CAST", SYM(CAST_SYM)},
{ "CEIL", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ceiling)},
{ "CEILING", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ceiling)},
{ "BIT_LENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_bit_length)},
{ "CENTROID", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_centroid)},
{ "CHAR_LENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_char_length)},
{ "CHARACTER_LENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_char_length)},
{ "COERCIBILITY", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_coercibility)},
{ "COMPRESS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_compress)},
{ "CONCAT", SYM(CONCAT)},
{ "CONCAT_WS", SYM(CONCAT_WS)},
{ "CONNECTION_ID", F_SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_connection_id)},
{ "CONV", F_SYM(FUNC_ARG3),0,CREATE_FUNC(create_func_conv)},
{ "CONVERT_TZ", SYM(CONVERT_TZ_SYM)},
{ "COUNT", SYM(COUNT_SYM)},
{ "COS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_cos)},
{ "COT", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_cot)},
{ "CRC32", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_crc32)},
{ "CROSSES", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_crosses)},
{ "CURDATE", SYM(CURDATE)},
{ "CURTIME", SYM(CURTIME)},
{ "DATE_ADD", SYM(DATE_ADD_INTERVAL)},
{ "DATEDIFF", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_datediff)},
{ "DATE_FORMAT", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_date_format)},
{ "DATE_SUB", SYM(DATE_SUB_INTERVAL)},
{ "DAYNAME", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_dayname)},
{ "DAYOFMONTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_dayofmonth)},
{ "DAYOFWEEK", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_dayofweek)},
{ "DAYOFYEAR", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_dayofyear)},
{ "DECODE", SYM(DECODE_SYM)},
{ "DEGREES", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_degrees)},
{ "DES_ENCRYPT", SYM(DES_ENCRYPT_SYM)},
{ "DES_DECRYPT", SYM(DES_DECRYPT_SYM)},
{ "DIMENSION", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_dimension)},
{ "DISJOINT", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_disjoint)},
{ "ELT", SYM(ELT_FUNC)},
{ "ENCODE", SYM(ENCODE_SYM)},
{ "ENCRYPT", SYM(ENCRYPT)},
{ "ENDPOINT", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_endpoint)},
{ "ENVELOPE", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_envelope)},
{ "EQUALS", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_equals)},
{ "EXTERIORRING", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_exteriorring)},
{ "EXTRACT", SYM(EXTRACT_SYM)},
{ "EXTRACTVALUE", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_xml_extractvalue)},
{ "EXP", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_exp)},
{ "EXPORT_SET", SYM(EXPORT_SET)},
{ "FIELD", SYM(FIELD_FUNC)}, /* For compability */
{ "FIND_IN_SET", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_find_in_set)},
{ "FLOOR", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_floor)},
{ "FORMAT", SYM(FORMAT_SYM)},
{ "FOUND_ROWS", F_SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_found_rows)},
{ "FROM_DAYS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_from_days)},
{ "FROM_UNIXTIME", SYM(FROM_UNIXTIME)},
{ "GET_LOCK", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_get_lock)},
{ "GEOMETRYN", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_geometryn)},
{ "GEOMETRYTYPE", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_geometry_type)},
{ "GEOMCOLLFROMTEXT", SYM(GEOMCOLLFROMTEXT)},
{ "GEOMCOLLFROMWKB", SYM(GEOMFROMWKB)},
{ "GEOMETRYCOLLECTIONFROMTEXT",SYM(GEOMCOLLFROMTEXT)},
{ "GEOMETRYCOLLECTIONFROMWKB",SYM(GEOMFROMWKB)},
{ "GEOMETRYFROMTEXT", SYM(GEOMFROMTEXT)},
{ "GEOMETRYFROMWKB", SYM(GEOMFROMWKB)},
{ "GEOMFROMTEXT", SYM(GEOMFROMTEXT)},
{ "GEOMFROMWKB", SYM(GEOMFROMWKB)},
{ "GLENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_glength)},
{ "GREATEST", SYM(GREATEST_SYM)},
{ "GROUP_CONCAT", SYM(GROUP_CONCAT_SYM)},
{ "GROUP_UNIQUE_USERS", SYM(GROUP_UNIQUE_USERS)},
{ "HEX", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_hex)},
{ "IFNULL", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_ifnull)},
{ "INET_ATON", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_inet_aton)},
{ "INET_NTOA", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_inet_ntoa)},
{ "INSTR", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_instr)},
{ "INTERIORRINGN", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_interiorringn)},
{ "INTERSECTS", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_intersects)},
{ "ISCLOSED", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_isclosed)},
{ "ISEMPTY", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_isempty)},
{ "ISNULL", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_isnull)},
{ "IS_FREE_LOCK", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_is_free_lock)},
{ "IS_USED_LOCK", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_is_used_lock)},
{ "LAST_INSERT_ID", SYM(LAST_INSERT_ID)},
{ "ISSIMPLE", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_issimple)},
{ "LAST_DAY", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_last_day)},
{ "LCASE", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_lcase)},
{ "LEAST", SYM(LEAST_SYM)},
{ "LENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_length)},
{ "LN", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ln)},
{ "LINEFROMTEXT", SYM(LINEFROMTEXT)},
{ "LINEFROMWKB", SYM(GEOMFROMWKB)},
{ "LINESTRINGFROMTEXT",SYM(LINEFROMTEXT)},
{ "LINESTRINGFROMWKB",SYM(GEOMFROMWKB)},
{ "LOAD_FILE", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_load_file)},
{ "LOCATE", SYM(LOCATE)},
{ "LOG", SYM(LOG_SYM)},
{ "LOG2", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_log2)},
{ "LOG10", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_log10)},
{ "LOWER", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_lcase)},
{ "LPAD", F_SYM(FUNC_ARG3),0,CREATE_FUNC(create_func_lpad)},
{ "LTRIM", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ltrim)},
{ "MAKE_SET", SYM(MAKE_SET_SYM)},
{ "MAKEDATE", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_makedate)},
{ "MAKETIME", F_SYM(FUNC_ARG3),0,CREATE_FUNC(create_func_maketime)},
{ "MASTER_POS_WAIT", SYM(MASTER_POS_WAIT)},
{ "MAX", SYM(MAX_SYM)},
{ "MBRCONTAINS", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_contains)},
{ "MBRDISJOINT", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_disjoint)},
{ "MBREQUAL", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_equals)},
{ "MBRINTERSECTS", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_intersects)},
{ "MBROVERLAPS", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_overlaps)},
{ "MBRTOUCHES", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_touches)},
{ "MBRWITHIN", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_within)},
{ "MD5", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_md5)},
{ "MID", SYM(SUBSTRING)}, /* unireg function */
{ "MIN", SYM(MIN_SYM)},
{ "MLINEFROMTEXT", SYM(MLINEFROMTEXT)},
{ "MLINEFROMWKB", SYM(GEOMFROMWKB)},
{ "MPOINTFROMTEXT", SYM(MPOINTFROMTEXT)},
{ "MPOINTFROMWKB", SYM(GEOMFROMWKB)},
{ "MPOLYFROMTEXT", SYM(MPOLYFROMTEXT)},
{ "MPOLYFROMWKB", SYM(GEOMFROMWKB)},
{ "MONTHNAME", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_monthname)},
{ "MULTILINESTRINGFROMTEXT",SYM(MLINEFROMTEXT)},
{ "MULTILINESTRINGFROMWKB",SYM(GEOMFROMWKB)},
{ "MULTIPOINTFROMTEXT",SYM(MPOINTFROMTEXT)},
{ "MULTIPOINTFROMWKB",SYM(GEOMFROMWKB)},
{ "MULTIPOLYGONFROMTEXT",SYM(MPOLYFROMTEXT)},
{ "MULTIPOLYGONFROMWKB",SYM(GEOMFROMWKB)},
{ "NAME_CONST", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_name_const)},
{ "NOW", SYM(NOW_SYM)},
{ "NULLIF", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_nullif)},
{ "NUMGEOMETRIES", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_numgeometries)},
{ "NUMINTERIORRINGS", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_numinteriorring)},
{ "NUMPOINTS", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_numpoints)},
{ "OCTET_LENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_length)},
{ "OCT", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_oct)},
{ "ORD", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ord)},
{ "OVERLAPS", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_overlaps)},
{ "PERIOD_ADD", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_period_add)},
{ "PERIOD_DIFF", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_period_diff)},
{ "PI", F_SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_pi)},
{ "POINTFROMTEXT", SYM(POINTFROMTEXT)},
{ "POINTFROMWKB", SYM(GEOMFROMWKB)},
{ "POINTN", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_pointn)},
{ "POLYFROMTEXT", SYM(POLYFROMTEXT)},
{ "POLYFROMWKB", SYM(GEOMFROMWKB)},
{ "POLYGONFROMTEXT", SYM(POLYFROMTEXT)},
{ "POLYGONFROMWKB", SYM(GEOMFROMWKB)},
{ "POSITION", SYM(POSITION_SYM)},
{ "POW", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_pow)},
{ "POWER", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_pow)},
{ "QUOTE", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_quote)},
{ "RADIANS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_radians)},
{ "RAND", SYM(RAND)},
{ "RELEASE_LOCK", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_release_lock)},
{ "REVERSE", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_reverse)},
{ "ROUND", SYM(ROUND)},
{ "ROW_COUNT", SYM(ROW_COUNT_SYM)},
{ "RPAD", F_SYM(FUNC_ARG3),0,CREATE_FUNC(create_func_rpad)},
{ "RTRIM", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_rtrim)},
{ "SEC_TO_TIME", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sec_to_time)},
{ "SESSION_USER", SYM(USER)},
{ "SUBDATE", SYM(SUBDATE_SYM)},
{ "SIGN", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sign)},
{ "SIN", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sin)},
{ "SHA", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sha)},
{ "SHA1", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sha)},
{ "SLEEP", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sleep)},
{ "SOUNDEX", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_soundex)},
{ "SPACE", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_space)},
{ "SQRT", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_sqrt)},
{ "SRID", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_srid)},
{ "STARTPOINT", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_startpoint)},
{ "SESSION_USER", SYM(USER)},
{ "STD", SYM(STD_SYM)},
{ "STDDEV", SYM(STD_SYM)},
{ "STDDEV_POP", SYM(STD_SYM)},
{ "STDDEV_SAMP", SYM(STDDEV_SAMP_SYM)},
{ "STR_TO_DATE", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_str_to_date)},
{ "STRCMP", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_strcmp)},
{ "SUBDATE", SYM(SUBDATE_SYM)},
{ "SUBSTR", SYM(SUBSTRING)},
{ "SUBSTRING", SYM(SUBSTRING)},
{ "SUBSTRING_INDEX", SYM(SUBSTRING_INDEX)},
{ "SUBTIME", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_subtime)},
{ "SUM", SYM(SUM_SYM)},
{ "SYSDATE", SYM(SYSDATE)},
{ "SYSTEM_USER", SYM(USER)},
{ "TAN", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_tan)},
{ "TIME_FORMAT", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_time_format)},
{ "TIME_TO_SEC", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_time_to_sec)},
{ "TIMEDIFF", F_SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_timediff)},
{ "TO_DAYS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_to_days)},
{ "TOUCHES", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_touches)},
{ "SYSTEM_USER", SYM(USER)},
{ "TRIM", SYM(TRIM)},
{ "UCASE", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ucase)},
{ "UNCOMPRESS", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_uncompress)},
{ "UNCOMPRESSED_LENGTH", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_uncompressed_length)},
{ "UNHEX", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_unhex)},
{ "UNIQUE_USERS", SYM(UNIQUE_USERS)},
{ "UNIX_TIMESTAMP", SYM(UNIX_TIMESTAMP)},
{ "UPDATEXML", F_SYM(FUNC_ARG3),0,CREATE_FUNC(create_func_xml_update)},
{ "UPPER", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ucase)},
{ "UUID", F_SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_uuid)},
{ "VARIANCE", SYM(VARIANCE_SYM)},
{ "VAR_POP", SYM(VARIANCE_SYM)},
{ "VAR_SAMP", SYM(VAR_SAMP_SYM)},
{ "VERSION", F_SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_version)},
{ "WEEKDAY", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_weekday)},
{ "WEEKOFYEAR", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_weekofyear)},
{ "WITHIN", F_SYM(FUNC_ARG2),0,CREATE_FUNC_GEOM(create_func_within)},
{ "X", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_x)},
{ "Y", F_SYM(FUNC_ARG1),0,CREATE_FUNC_GEOM(create_func_y)},
{ "YEARWEEK", SYM(YEARWEEK)}
};

View file

@ -26,7 +26,6 @@ typedef struct st_symbol {
const char *name;
uint tok;
uint length;
void *create_func;
struct st_sym_group *group;
} SYMBOL;

View file

@ -2052,6 +2052,10 @@ inline void kill_delayed_threads(void) {}
void init_fill_schema_files_row(TABLE* table);
bool schema_table_store_record(THD *thd, TABLE *table);
/* sql/item_create.cc */
int item_create_init();
void item_create_cleanup();
#endif /* MYSQL_SERVER */
#endif /* MYSQL_CLIENT */

View file

@ -1184,6 +1184,7 @@ void clean_up(bool print_message)
hostname_cache_free();
item_user_lock_free();
lex_free(); /* Free some memory */
item_create_cleanup();
set_var_free();
free_charsets();
(void) ha_panic(HA_PANIC_CLOSE); /* close all tables and logs */
@ -2717,6 +2718,8 @@ static int init_common_variables(const char *conf_file_name, int argc,
return 1;
init_client_errs();
lex_init();
if (item_create_init())
return 1;
item_init();
set_var_init();
mysys_uses_curses=0;

View file

@ -6006,4 +6006,8 @@ ER_NON_INSERTABLE_TABLE
eng "The target table %-.100s of the %s is not insertable-into"
ER_CANT_RENAME_LOG_TABLE
eng "Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'"
ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 42000
eng "Incorrect parameter count in the call to native function '%-.64s'"
ER_WRONG_PARAMETERS_TO_NATIVE_FCT 42000
eng "Incorrect parameters in the call to native function '%-.64s'"

File diff suppressed because it is too large Load diff

View file

@ -8685,7 +8685,7 @@ static void test_sqlmode()
if (!opt_silent)
fprintf(stdout, "\n query: %s", query);
stmt= mysql_simple_prepare(mysql, query);
check_stmt_r(stmt);
check_stmt(stmt);
/* ANSI */
strmov(query, "SET SQL_MODE= \"ANSI\"");