From 8516f71f41be0f8f9b8186ea6cf6d536d2a17161 Mon Sep 17 00:00:00 2001 From: Ton Huisman Date: Fri, 14 Nov 2025 15:04:46 +0100 Subject: [PATCH] [fix] Enable qualified table name for DROP INDEX command --- .../jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt | 11 +++++++++-- .../net/sf/jsqlparser/statement/drop/DropTest.java | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) 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\""));