[jOOQ/jOOQ#10234] Unable to rename table with qualified table name on

Oracle dialect
This commit is contained in:
Lukas Eder 2023-05-12 15:58:05 +02:00
parent 40a60d4d2e
commit e8ea2d651a

View File

@ -233,7 +233,7 @@ implements
private static final Set<SQLDialect> NO_SUPPORT_IF_NOT_EXISTS_COLUMN = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD);
private static final Set<SQLDialect> SUPPORT_RENAME_COLUMN = SQLDialect.supportedBy(DERBY);
private static final Set<SQLDialect> SUPPORT_RENAME_TABLE = SQLDialect.supportedBy(DERBY);
private static final Set<SQLDialect> NO_SUPPORT_RENAME_QUALIFIED_TABLE = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);
private static final Set<SQLDialect> NO_SUPPORT_RENAME_QUALIFIED_TABLE = SQLDialect.supportedBy(DERBY, POSTGRES, YUGABYTEDB);
private static final Set<SQLDialect> NO_SUPPORT_ALTER_TYPE_AND_NULL = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);
private static final Set<SQLDialect> NO_SUPPORT_DROP_CONSTRAINT = SQLDialect.supportedBy(MARIADB, MYSQL);
private static final Set<SQLDialect> 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