From a673e72e20f17f809882c9ff04155b3886ebf488 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 21 May 2020 09:40:34 +0200 Subject: [PATCH] [jOOQ/jOOQ#10210] Fix PostgreSQL implementation in OSS edition --- .../java/org/jooq/impl/AlterDatabaseImpl.java | 35 +++++++------------ 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java index f3fe434932..2fd3dd2a10 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java @@ -71,9 +71,8 @@ final class AlterDatabaseImpl extends AbstractRowCountQuery implements /** * Generated UID */ - private static final long serialVersionUID = 8904572826501186329L; - - + private static final long serialVersionUID = 8904572826501186329L; + private static final Set NO_SUPPORT_IF_EXISTS = SQLDialect.supportedBy(POSTGRES); @@ -122,23 +121,18 @@ final class AlterDatabaseImpl extends AbstractRowCountQuery implements // XXX: QueryPart API // ------------------------------------------------------------------------ - - - - - - + private final boolean supportsIfExists(Context ctx) { + return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + } @Override public final void accept(Context ctx) { - - - - - - - - + if (ifExists && !supportsIfExists(ctx)) { + Tools.beginTryCatch(ctx, DDLStatementType.ALTER_DATABASE); + accept0(ctx); + Tools.endTryCatch(ctx, DDLStatementType.ALTER_DATABASE); + } + else accept0(ctx); } @@ -152,11 +146,8 @@ final class AlterDatabaseImpl extends AbstractRowCountQuery implements ctx.sql(' ').visit(K_DATABASE); - if (ifExists) - - - - ctx.sql(' ').visit(K_IF_EXISTS); + if (ifExists && supportsIfExists(ctx)) + ctx.sql(' ').visit(K_IF_EXISTS); ctx.sql(' ').visit(database);