summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--mysql-test/r/alias.result2
-rw-r--r--mysql-test/r/create.result6
-rw-r--r--mysql-test/r/func_str.result2
-rw-r--r--mysql-test/r/rpl_multi_update.result2
-rw-r--r--mysql-test/t/alias.test3
-rw-r--r--mysql-test/t/create.test12
-rw-r--r--mysql-test/t/func_str.test2
-rw-r--r--mysql-test/t/rpl_multi_update.test2
-rw-r--r--sql/sql_yacc.yy19
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