diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java index fb23241046..0d182b4ae0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java @@ -233,7 +233,7 @@ implements private static final Set NO_SUPPORT_IF_NOT_EXISTS_COLUMN = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD); private static final Set SUPPORT_RENAME_COLUMN = SQLDialect.supportedBy(DERBY); private static final Set SUPPORT_RENAME_TABLE = SQLDialect.supportedBy(DERBY); - private static final Set NO_SUPPORT_RENAME_QUALIFIED_TABLE = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB); + private static final Set NO_SUPPORT_RENAME_QUALIFIED_TABLE = SQLDialect.supportedBy(DERBY, POSTGRES, YUGABYTEDB); private static final Set NO_SUPPORT_ALTER_TYPE_AND_NULL = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB); private static final Set NO_SUPPORT_DROP_CONSTRAINT = SQLDialect.supportedBy(MARIADB, MYSQL); private static final Set REQUIRE_REPEAT_ADD_ON_MULTI_ALTER = SQLDialect.supportedBy(FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB); @@ -1198,16 +1198,17 @@ implements } else if (renameTo != null) { boolean qualify = ctx.qualify(); + boolean unqualify = unqualifyRenameTo(ctx); ctx.start(ALTER_TABLE_RENAME); - if (NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.dialect())) + if (unqualify) ctx.qualify(false); ctx.visit(renameObject || renameTable ? K_TO : K_RENAME_TO).sql(' ') .visit(renameTo); - if (NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.dialect())) + if (unqualify) ctx.qualify(qualify); ctx.end(ALTER_TABLE_RENAME); @@ -1693,6 +1694,14 @@ implements ctx.formatIndentEnd(); } + private final boolean unqualifyRenameTo(Context ctx) { + return NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.dialect()) + && renameTo.getQualifiedName().qualified() + + // [#10234] Omit qualification only for same-schema qualified renames + && renameTo.getQualifiedName().qualifier().equals(table.getQualifiedName().qualifier()); + } + private final Keyword addColumnKeyword(Context ctx) { switch (ctx.family()) { @@ -1843,6 +1852,9 @@ implements + + +