diff options
-rw-r--r-- | BitKeeper/etc/logging_ok | 1 | ||||
-rw-r--r-- | mysql-test/r/alias.result | 2 | ||||
-rw-r--r-- | mysql-test/r/create.result | 6 | ||||
-rw-r--r-- | mysql-test/r/func_str.result | 2 | ||||
-rw-r--r-- | mysql-test/r/rpl_multi_update.result | 2 | ||||
-rw-r--r-- | mysql-test/t/alias.test | 3 | ||||
-rw-r--r-- | mysql-test/t/create.test | 12 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 2 | ||||
-rw-r--r-- | mysql-test/t/rpl_multi_update.test | 2 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 19 |
10 files changed, 40 insertions, 11 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 9287f9a47fe..362136322f1 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -7,6 +7,7 @@ Miguel@light.local Sinisa@sinisa.nasamreza.org ahlentz@co3064164-a.rochd1.qld.optusnet.com.au akishkin@work.mysql.com +antony@ltantony.dsl-verizon.net arjen@bitbike.com arjen@co3064164-a.bitbike.com arjen@fred.bitbike.com diff --git a/mysql-test/r/alias.result b/mysql-test/r/alias.result index 5ed10b58929..3d6273144d0 100644 --- a/mysql-test/r/alias.result +++ b/mysql-test/r/alias.result @@ -63,7 +63,7 @@ CREATE TABLE t1 ( AUFNR varchar(12) NOT NULL default '', PLNFL varchar(6) NOT NULL default '', VORNR varchar(4) NOT NULL default '', -xstatus_vor smallint(5) unsigned NOT NULL default '0', +xstatus_vor smallint(5) unsigned NOT NULL default '0' ); INSERT INTO t1 VALUES ('40004712','000001','0010',9); INSERT INTO t1 VALUES ('40004712','000001','0020',0); diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 22743782484..7cb79d5a990 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -222,3 +222,9 @@ create database `db1 `; Incorrect database name 'db1 ' create table t1(`a ` int); Incorrect column name 'a ' +create table t1 (a int,); +You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 +create table t1 (a int,,b int); +You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'b int)' at line 1 +create table t1 (,b int); +You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'b int)' at line 1 diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 7d2668c8cf6..3205563f9ab 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -247,7 +247,7 @@ CREATE TABLE t1 ( wid int(10) unsigned NOT NULL auto_increment, data_podp date default NULL, status_wnio enum('nowy','podp','real','arch') NOT NULL default 'nowy', -PRIMARY KEY(wid), +PRIMARY KEY(wid) ); INSERT INTO t1 VALUES (8,NULL,'real'); INSERT INTO t1 VALUES (9,NULL,'nowy'); diff --git a/mysql-test/r/rpl_multi_update.result b/mysql-test/r/rpl_multi_update.result index 1fa1dd104d2..0cd6ea2c6f7 100644 --- a/mysql-test/r/rpl_multi_update.result +++ b/mysql-test/r/rpl_multi_update.result @@ -7,7 +7,7 @@ slave start; drop table if exists t1,t2; CREATE TABLE t1 ( a int unsigned not null auto_increment primary key, -b int unsigned, +b int unsigned ) TYPE=MyISAM; CREATE TABLE t2 ( a int unsigned not null auto_increment primary key, diff --git a/mysql-test/t/alias.test b/mysql-test/t/alias.test index 57b46181fa1..982bd8b2a45 100644 --- a/mysql-test/t/alias.test +++ b/mysql-test/t/alias.test @@ -71,8 +71,7 @@ CREATE TABLE t1 ( AUFNR varchar(12) NOT NULL default '', PLNFL varchar(6) NOT NULL default '', VORNR varchar(4) NOT NULL default '', - xstatus_vor smallint(5) unsigned NOT NULL default '0', - + xstatus_vor smallint(5) unsigned NOT NULL default '0' ); INSERT INTO t1 VALUES ('40004712','000001','0010',9); diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 94c2f24dffc..c71a1e0c177 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -191,3 +191,15 @@ create table `t1 `(a int); create database `db1 `; --error 1166; create table t1(`a ` int); + +# +# Test for Bug #3481 +# "Parser permits multiple commas without syntax error" +# + +--error 1064 +create table t1 (a int,); +--error 1064 +create table t1 (a int,,b int); +--error 1064 +create table t1 (,b int); diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 1eba49a9583..367c364b004 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -133,7 +133,7 @@ CREATE TABLE t1 ( wid int(10) unsigned NOT NULL auto_increment, data_podp date default NULL, status_wnio enum('nowy','podp','real','arch') NOT NULL default 'nowy', - PRIMARY KEY(wid), + PRIMARY KEY(wid) ); INSERT INTO t1 VALUES (8,NULL,'real'); diff --git a/mysql-test/t/rpl_multi_update.test b/mysql-test/t/rpl_multi_update.test index c44239594dd..cefa9face12 100644 --- a/mysql-test/t/rpl_multi_update.test +++ b/mysql-test/t/rpl_multi_update.test @@ -3,7 +3,7 @@ drop table if exists t1,t2; CREATE TABLE t1 ( a int unsigned not null auto_increment primary key, - b int unsigned, + b int unsigned ) TYPE=MyISAM; CREATE TABLE t2 ( diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 52334b4830e..2930c60310a 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -945,7 +945,7 @@ field_list_item: ; column_def: - field_spec check_constraint + field_spec opt_check_constraint | field_spec references { Lex->col_list.empty(); /* Alloced by sql_alloc */ @@ -963,20 +963,31 @@ key_def: { Lex->col_list.empty(); /* Alloced by sql_alloc */ } + | constraint opt_check_constraint + { + Lex->col_list.empty(); /* Alloced by sql_alloc */ + } | opt_constraint check_constraint { Lex->col_list.empty(); /* Alloced by sql_alloc */ } ; -check_constraint: +opt_check_constraint: /* empty */ - | CHECK_SYM expr + | check_constraint + ; + +check_constraint: + CHECK_SYM expr ; opt_constraint: /* empty */ - | CONSTRAINT opt_ident; + | constraint; + +constraint: + CONSTRAINT opt_ident; field_spec: field_ident |