From 295aa9ca2934e98266dd28291b027e5ef42ffdca Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 2 Dec 2017 22:59:28 +0800 Subject: [PATCH] improved postgresql parser. bug fixed for issue #2153 --- .../sql/dialect/postgresql/visitor/PGOutputVisitor.java | 3 ++- .../druid/bvt/sql/postgresql/PGCreateIndexTest_0.java | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/visitor/PGOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/visitor/PGOutputVisitor.java index 307f2141b0..235f994a7b 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/visitor/PGOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/visitor/PGOutputVisitor.java @@ -2985,13 +2985,14 @@ public class PGOutputVisitor extends SQLASTOutputVisitor implements PGASTVisitor print0(ucase ? "INDEX " : "index "); + x.getName().accept(this); + if (x.getUsing() != null) { print0(ucase ? " USING " : " using "); ; print0(x.getUsing()); } - x.getName().accept(this); print0(ucase ? " ON " : " on "); x.getTable().accept(this); print0(" ("); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGCreateIndexTest_0.java b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGCreateIndexTest_0.java index 44e31161e6..c275428db9 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGCreateIndexTest_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGCreateIndexTest_0.java @@ -33,9 +33,9 @@ public class PGCreateIndexTest_0 extends PGTest { List statementList = parser.parseStatementList(); SQLStatement stmt = statementList.get(0); - assertEquals("CREATE UNIQUE INDEX USING btree\"test_idx\" ON \"public\".\"city\" (\"name\");", SQLUtils.toPGString(stmt)); - - assertEquals("create UNIQUE index using btree\"test_idx\" on \"public\".\"city\" (\"name\");", SQLUtils.toPGString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION)); + assertEquals("CREATE UNIQUE INDEX \"test_idx\" USING btree ON \"public\".\"city\" (\"name\");", SQLUtils.toPGString(stmt)); + + assertEquals("create UNIQUE index \"test_idx\" using btree on \"public\".\"city\" (\"name\");", SQLUtils.toPGString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION)); assertEquals(1, statementList.size());