[jOOQ/jOOQ#11251] Add emulation support for IF [ NOT ] EXISTS to MySQL for DDL on INDEX and VIEW objects
This commit is contained in:
parent
5499ca8f61
commit
b6c28cd906
@ -9428,7 +9428,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#alterIndexIfExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ H2, POSTGRES })
|
||||
@Support({ H2, MARIADB, MYSQL, POSTGRES })
|
||||
AlterIndexOnStep alterIndexIfExists(@Stringly.Name String index);
|
||||
|
||||
/**
|
||||
@ -9437,7 +9437,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#alterIndexIfExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ H2, POSTGRES })
|
||||
@Support({ H2, MARIADB, MYSQL, POSTGRES })
|
||||
AlterIndexOnStep alterIndexIfExists(Name index);
|
||||
|
||||
/**
|
||||
@ -9446,7 +9446,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#alterIndexIfExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ H2, POSTGRES })
|
||||
@Support({ H2, MARIADB, MYSQL, POSTGRES })
|
||||
AlterIndexOnStep alterIndexIfExists(Index index);
|
||||
|
||||
/**
|
||||
@ -9626,7 +9626,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#alterViewIfExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB })
|
||||
@Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB })
|
||||
AlterViewStep alterViewIfExists(@Stringly.Name String view);
|
||||
|
||||
/**
|
||||
@ -9635,7 +9635,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#alterViewIfExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB })
|
||||
@Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB })
|
||||
AlterViewStep alterViewIfExists(Name view);
|
||||
|
||||
/**
|
||||
@ -9644,7 +9644,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#alterViewIfExists(Table)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB })
|
||||
@Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB })
|
||||
AlterViewStep alterViewIfExists(Table<?> view);
|
||||
|
||||
/**
|
||||
@ -10021,7 +10021,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createIndexIfNotExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createIndexIfNotExists(@Stringly.Name String index);
|
||||
|
||||
/**
|
||||
@ -10030,7 +10030,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createIndexIfNotExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createIndexIfNotExists(Name index);
|
||||
|
||||
/**
|
||||
@ -10039,7 +10039,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createIndexIfNotExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createIndexIfNotExists(Index index);
|
||||
|
||||
/**
|
||||
@ -10048,7 +10048,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createIndexIfNotExists()
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createIndexIfNotExists();
|
||||
|
||||
/**
|
||||
@ -10093,7 +10093,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createUniqueIndexIfNotExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createUniqueIndexIfNotExists(@Stringly.Name String index);
|
||||
|
||||
/**
|
||||
@ -10102,7 +10102,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createUniqueIndexIfNotExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createUniqueIndexIfNotExists(Name index);
|
||||
|
||||
/**
|
||||
@ -10111,7 +10111,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createUniqueIndexIfNotExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createUniqueIndexIfNotExists(Index index);
|
||||
|
||||
/**
|
||||
@ -10120,7 +10120,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#createUniqueIndexIfNotExists()
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
CreateIndexStep createUniqueIndexIfNotExists();
|
||||
|
||||
|
||||
@ -11044,7 +11044,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#dropIndexIfExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
DropIndexOnStep dropIndexIfExists(@Stringly.Name String index);
|
||||
|
||||
/**
|
||||
@ -11053,7 +11053,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#dropIndexIfExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
DropIndexOnStep dropIndexIfExists(Name index);
|
||||
|
||||
/**
|
||||
@ -11062,7 +11062,7 @@ public interface DSLContext extends Scope {
|
||||
* @see DSL#dropIndexIfExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
DropIndexOnStep dropIndexIfExists(Index index);
|
||||
|
||||
|
||||
|
||||
@ -152,7 +152,7 @@ implements
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.ALTER_INDEX };
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_EXISTS = SQLDialect.supportedUntil(CUBRID, DERBY, FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_EXISTS = SQLDialect.supportedUntil(CUBRID, DERBY, FIREBIRD, MARIADB, MYSQL);
|
||||
private static final Set<SQLDialect> SUPPORT_RENAME_INDEX = SQLDialect.supportedBy(DERBY);
|
||||
|
||||
private final boolean supportsIfExists(Context<?> ctx) {
|
||||
|
||||
@ -251,7 +251,7 @@ implements
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.CREATE_INDEX };
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_NOT_EXISTS = SQLDialect.supportedUntil(DERBY, FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_NOT_EXISTS = SQLDialect.supportedUntil(DERBY, FIREBIRD, MYSQL);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_SORT_SPEC = SQLDialect.supportedBy(FIREBIRD);
|
||||
private static final Set<SQLDialect> SUPPORT_UNNAMED_INDEX = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);
|
||||
private static final Set<SQLDialect> SUPPORT_INCLUDE = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);
|
||||
|
||||
@ -7375,7 +7375,7 @@ public class DSL {
|
||||
* @see DSLContext#alterIndexIfExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ H2, POSTGRES })
|
||||
@Support({ H2, MARIADB, MYSQL, POSTGRES })
|
||||
public static org.jooq.AlterIndexOnStep alterIndexIfExists(@Stringly.Name String index) {
|
||||
return dsl().alterIndexIfExists(index);
|
||||
}
|
||||
@ -7390,7 +7390,7 @@ public class DSL {
|
||||
* @see DSLContext#alterIndexIfExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ H2, POSTGRES })
|
||||
@Support({ H2, MARIADB, MYSQL, POSTGRES })
|
||||
public static org.jooq.AlterIndexOnStep alterIndexIfExists(Name index) {
|
||||
return dsl().alterIndexIfExists(index);
|
||||
}
|
||||
@ -7405,7 +7405,7 @@ public class DSL {
|
||||
* @see DSLContext#alterIndexIfExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ H2, POSTGRES })
|
||||
@Support({ H2, MARIADB, MYSQL, POSTGRES })
|
||||
public static org.jooq.AlterIndexOnStep alterIndexIfExists(Index index) {
|
||||
return dsl().alterIndexIfExists(index);
|
||||
}
|
||||
@ -7705,7 +7705,7 @@ public class DSL {
|
||||
* @see DSLContext#alterViewIfExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB })
|
||||
@Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.AlterViewStep alterViewIfExists(@Stringly.Name String view) {
|
||||
return dsl().alterViewIfExists(view);
|
||||
}
|
||||
@ -7720,7 +7720,7 @@ public class DSL {
|
||||
* @see DSLContext#alterViewIfExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB })
|
||||
@Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.AlterViewStep alterViewIfExists(Name view) {
|
||||
return dsl().alterViewIfExists(view);
|
||||
}
|
||||
@ -7735,7 +7735,7 @@ public class DSL {
|
||||
* @see DSLContext#alterViewIfExists(Table)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB })
|
||||
@Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.AlterViewStep alterViewIfExists(Table<?> view) {
|
||||
return dsl().alterViewIfExists(view);
|
||||
}
|
||||
@ -8358,7 +8358,7 @@ public class DSL {
|
||||
* @see DSLContext#createIndexIfNotExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createIndexIfNotExists(@Stringly.Name String index) {
|
||||
return dsl().createIndexIfNotExists(index);
|
||||
}
|
||||
@ -8373,7 +8373,7 @@ public class DSL {
|
||||
* @see DSLContext#createIndexIfNotExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createIndexIfNotExists(Name index) {
|
||||
return dsl().createIndexIfNotExists(index);
|
||||
}
|
||||
@ -8388,7 +8388,7 @@ public class DSL {
|
||||
* @see DSLContext#createIndexIfNotExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createIndexIfNotExists(Index index) {
|
||||
return dsl().createIndexIfNotExists(index);
|
||||
}
|
||||
@ -8403,7 +8403,7 @@ public class DSL {
|
||||
* @see DSLContext#createIndexIfNotExists()
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createIndexIfNotExists() {
|
||||
return dsl().createIndexIfNotExists();
|
||||
}
|
||||
@ -8478,7 +8478,7 @@ public class DSL {
|
||||
* @see DSLContext#createUniqueIndexIfNotExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createUniqueIndexIfNotExists(@Stringly.Name String index) {
|
||||
return dsl().createUniqueIndexIfNotExists(index);
|
||||
}
|
||||
@ -8493,7 +8493,7 @@ public class DSL {
|
||||
* @see DSLContext#createUniqueIndexIfNotExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createUniqueIndexIfNotExists(Name index) {
|
||||
return dsl().createUniqueIndexIfNotExists(index);
|
||||
}
|
||||
@ -8508,7 +8508,7 @@ public class DSL {
|
||||
* @see DSLContext#createUniqueIndexIfNotExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createUniqueIndexIfNotExists(Index index) {
|
||||
return dsl().createUniqueIndexIfNotExists(index);
|
||||
}
|
||||
@ -8523,7 +8523,7 @@ public class DSL {
|
||||
* @see DSLContext#createUniqueIndexIfNotExists()
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.CreateIndexStep createUniqueIndexIfNotExists() {
|
||||
return dsl().createUniqueIndexIfNotExists();
|
||||
}
|
||||
@ -10047,7 +10047,7 @@ public class DSL {
|
||||
* @see DSLContext#dropIndexIfExists(String)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.DropIndexOnStep dropIndexIfExists(@Stringly.Name String index) {
|
||||
return dsl().dropIndexIfExists(index);
|
||||
}
|
||||
@ -10062,7 +10062,7 @@ public class DSL {
|
||||
* @see DSLContext#dropIndexIfExists(Name)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.DropIndexOnStep dropIndexIfExists(Name index) {
|
||||
return dsl().dropIndexIfExists(index);
|
||||
}
|
||||
@ -10077,7 +10077,7 @@ public class DSL {
|
||||
* @see DSLContext#dropIndexIfExists(Index)
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
@Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
|
||||
public static org.jooq.DropIndexOnStep dropIndexIfExists(Index index) {
|
||||
return dsl().dropIndexIfExists(index);
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ implements
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.DROP_INDEX };
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_EXISTS = SQLDialect.supportedUntil(CUBRID, DERBY, FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_EXISTS = SQLDialect.supportedUntil(CUBRID, DERBY, FIREBIRD, MYSQL);
|
||||
private static final Set<SQLDialect> REQUIRES_ON = SQLDialect.supportedBy(MARIADB, MYSQL);
|
||||
|
||||
private final boolean supportsIfExists(Context<?> ctx) {
|
||||
|
||||
@ -5534,37 +5534,17 @@ final class Tools {
|
||||
.visit(K_BEGIN).sql(' ').visit(K_END).formatIndentEnd();
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
case MYSQL: {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
case MARIADB: {
|
||||
List<String> sqlstates = new ArrayList<>();
|
||||
|
||||
// if (type == CREATE_SCHEMA)
|
||||
// sqlstates.add("42710");
|
||||
// else if (type == CREATE_SEQUENCE)
|
||||
// sqlstates.add("42710");
|
||||
// else if (type == CREATE_VIEW)
|
||||
// sqlstates.add("42710");
|
||||
// else
|
||||
// if (type == ALTER_TABLE) {
|
||||
// if (TRUE.equals(container))
|
||||
// sqlstates.add("42704");
|
||||
//
|
||||
// if (TRUE.equals(element))
|
||||
// sqlstates.add("42703");
|
||||
// else if (FALSE.equals(element))
|
||||
// sqlstates.add("42711");
|
||||
// }
|
||||
// else
|
||||
sqlstates.add("42S02");
|
||||
|
||||
begin(ctx, c -> {
|
||||
for (String sqlstate : sqlstates)
|
||||
c.visit(keyword("declare continue handler for sqlstate")).sql(' ').visit(DSL.inline(sqlstate)).sql(' ').visit(K_BEGIN).sql(' ').visit(K_END).sql(';').formatSeparator();
|
||||
|
||||
runnable.accept(c);
|
||||
c.sql(';');
|
||||
});
|
||||
tryCatchMySQL(ctx, type, runnable);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -5598,6 +5578,49 @@ final class Tools {
|
||||
}
|
||||
}
|
||||
|
||||
private static final void tryCatchMySQL(Context<?> ctx, DDLStatementType type, Consumer<? super Context<?>> runnable) {
|
||||
List<String> sqlstates = new ArrayList<>();
|
||||
|
||||
switch (ctx.family()) {
|
||||
case MARIADB:
|
||||
switch (type) {
|
||||
case ALTER_INDEX:
|
||||
case CREATE_INDEX:
|
||||
case DROP_INDEX:
|
||||
sqlstates.add("42000");
|
||||
break;
|
||||
}
|
||||
|
||||
sqlstates.add("42S02");
|
||||
break;
|
||||
|
||||
case MYSQL:
|
||||
switch (type) {
|
||||
case ALTER_INDEX:
|
||||
case CREATE_INDEX:
|
||||
case DROP_INDEX:
|
||||
sqlstates.add("42000");
|
||||
break;
|
||||
|
||||
case ALTER_VIEW:
|
||||
case CREATE_VIEW:
|
||||
case DROP_VIEW:
|
||||
sqlstates.add("42S01");
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
begin(ctx, c -> {
|
||||
for (String sqlstate : sqlstates)
|
||||
c.visit(keyword("declare continue handler for sqlstate")).sql(' ').visit(DSL.inline(sqlstate)).sql(' ').visit(K_BEGIN).sql(' ').visit(K_END).sql(';').formatSeparator();
|
||||
|
||||
runnable.accept(c);
|
||||
c.sql(';');
|
||||
});
|
||||
}
|
||||
|
||||
static final void toSQLDDLTypeDeclarationForAddition(Context<?> ctx, DataType<?> type) {
|
||||
boolean qualify = ctx.qualify();
|
||||
toSQLDDLTypeDeclaration(ctx, type);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user