diff --git a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt index 0f2dd1df6..b2582d03e 100644 --- a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt +++ b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt @@ -8782,8 +8782,15 @@ Drop Drop(): name = Table() { drop.setName(name); } [ LOOKAHEAD(2) funcArgs = FuncArgsList() ] - ((tk= | tk= | tk= | tk=) { dropArgs.add(tk.image); })* - + ( + ( + tk= | tk= | tk= + ) { dropArgs.add(tk.image); } + | + ( + name = Table() { dropArgs.add("ON"); dropArgs.add(name.toString()); } + ) + )* { if (dropArgs.size() > 0) { drop.setParameters(dropArgs); diff --git a/src/test/java/net/sf/jsqlparser/statement/drop/DropTest.java b/src/test/java/net/sf/jsqlparser/statement/drop/DropTest.java index 75d4524c7..a48b2fe7d 100644 --- a/src/test/java/net/sf/jsqlparser/statement/drop/DropTest.java +++ b/src/test/java/net/sf/jsqlparser/statement/drop/DropTest.java @@ -53,6 +53,16 @@ public void testDropIndexOnTable() throws JSQLParserException { assertSqlCanBeParsedAndDeparsed("DROP INDEX idx ON abc"); } + @Test + public void testDropIndexOnQualifiedTable() throws JSQLParserException { + assertSqlCanBeParsedAndDeparsed("DROP INDEX idx ON qual.tbl"); + } + + @Test + public void testDropIndexOnDoubleQualifiedTable() throws JSQLParserException { + assertSqlCanBeParsedAndDeparsed("DROP INDEX idx ON dbl.qual.tbl"); + } + @Test public void testDrop2() throws JSQLParserException { Drop drop = (Drop) parserManager.parse(new StringReader("DROP TABLE \"testtable\""));