From 23c19a53fd72c2682a8eee32d39abf8a09804b8c Mon Sep 17 00:00:00 2001 From: Georg Semmler Date: Thu, 9 Jul 2015 17:41:39 +0200 Subject: [PATCH] Fix inline usage of foreign keys in CREATE TABLE statements --- .../jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt | 4 ++++ .../net/sf/jsqlparser/test/create/CreateTableTest.java | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt index b828a8424..f949704e8 100644 --- a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt +++ b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt @@ -2522,6 +2522,10 @@ String CreateParameter(): tk= { retval = tk.image; } | tk= { retval = tk.image; } + | + tk= { retval=tk.image; } + | + tk= { retval=tk.image; } | tk= { retval = tk.image; } | diff --git a/src/test/java/net/sf/jsqlparser/test/create/CreateTableTest.java b/src/test/java/net/sf/jsqlparser/test/create/CreateTableTest.java index a59a5c80b..c16f2fca1 100644 --- a/src/test/java/net/sf/jsqlparser/test/create/CreateTableTest.java +++ b/src/test/java/net/sf/jsqlparser/test/create/CreateTableTest.java @@ -86,6 +86,16 @@ public void testCreateTableForeignKey2() throws JSQLParserException { String statement = "CREATE TABLE test (id INT UNSIGNED NOT NULL AUTO_INCREMENT, string VARCHAR (20), user_id INT UNSIGNED, PRIMARY KEY (id), CONSTRAINT fkIdx FOREIGN KEY (user_id) REFERENCES ra_user(id))"; assertSqlCanBeParsedAndDeparsed(statement); } + + public void testCreateTableForeignKey3() throws JSQLParserException { + String statement = "CREATE TABLE test (id INT UNSIGNED NOT NULL AUTO_INCREMENT, string VARCHAR (20), user_id INT UNSIGNED REFERENCES ra_user(id), PRIMARY KEY (id))"; + assertSqlCanBeParsedAndDeparsed(statement,true); + } + + public void testCreateTableForeignKey4() throws JSQLParserException { + String statement = "CREATE TABLE test (id INT UNSIGNED NOT NULL AUTO_INCREMENT, string VARCHAR (20), user_id INT UNSIGNED FOREIGN KEY REFERENCES ra_user(id), PRIMARY KEY (id))"; + assertSqlCanBeParsedAndDeparsed(statement,true); + } public void testCreateTablePrimaryKey() throws JSQLParserException { String statement = "CREATE TABLE test (id INT UNSIGNED NOT NULL AUTO_INCREMENT, string VARCHAR (20), user_id INT UNSIGNED, CONSTRAINT pk_name PRIMARY KEY (id))";