diff --git a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt index e6b70cae6..d57b29f16 100644 --- a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt +++ b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt @@ -8619,9 +8619,9 @@ List CreateParameter(): | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= - | tk= | tk= | tk= | tk= | tk= | tk= + | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk= | tk = | tk = - | tk= | tk= + | tk= | tk= | tk= | tk="=" ) { param.add(tk.image); } diff --git a/src/test/java/net/sf/jsqlparser/statement/create/CreateTableTest.java b/src/test/java/net/sf/jsqlparser/statement/create/CreateTableTest.java index b4836c0b6..e8c17f4a7 100644 --- a/src/test/java/net/sf/jsqlparser/statement/create/CreateTableTest.java +++ b/src/test/java/net/sf/jsqlparser/statement/create/CreateTableTest.java @@ -219,6 +219,17 @@ public void testCreateTableDefault2() throws JSQLParserException { assertSqlCanBeParsedAndDeparsed("CREATE TABLE T1 (id integer default 1)"); } + @Test + public void testCreateTableClickHouseMaterializedColumn() throws JSQLParserException { + String statement = "CREATE TABLE t (\n" + + " url String,\n" + + " domain String MATERIALIZED regexpExtract(url, '^(?:https?://)?([^/]+)', 1)\n" + + ")\n" + + "ENGINE = MergeTree()\n" + + "ORDER BY tuple()"; + assertSqlCanBeParsedAndDeparsed(statement, true); + } + @Test public void testCreateTableIfNotExists() throws JSQLParserException { assertSqlCanBeParsedAndDeparsed("CREATE TABLE IF NOT EXISTS animals (id INT NOT NULL)"); @@ -1076,7 +1087,7 @@ void testUniqueAfterForeignKeyIssue2082() throws JSQLParserException { @Test void testWithCatalog() throws JSQLParserException { - String sqlStr="CREATE TABLE UNNAMED.session1.a (b VARCHAR (1))"; + String sqlStr = "CREATE TABLE UNNAMED.session1.a (b VARCHAR (1))"; CreateTable st = (CreateTable) assertSqlCanBeParsedAndDeparsed(sqlStr, true); Table t = st.getTable();