[jOOQ/jOOQ#12992] Add additional check if any indexes are present

This commit is contained in:
Lukas Eder 2022-02-07 10:09:38 +01:00
parent 9ddf8e96c3
commit 0c4d021614
3 changed files with 22 additions and 14 deletions

View File

@ -62,7 +62,7 @@ import org.jooq.tools.JooqLogger;
*/
abstract class AbstractGenerator implements Generator {
private static final JooqLogger log = JooqLogger.getLogger(AbstractGenerator.class);
private static final JooqLogger log = JooqLogger.getLogger(AbstractGenerator.class);
boolean generateDeprecated = true;
boolean generateDeprecationOnUnknownTypes = true;
@ -162,11 +162,24 @@ abstract class AbstractGenerator implements Generator {
protected boolean targetClean = true;
final Language languageConfigured;
Language language;
Database database;
AbstractGenerator(Language language) {
this.languageConfigured = this.language = language;
}
@Override
public void generate(Database db) {
this.database = db;
this.database.setIncludeRelations(generateRelations());
this.database.setTableValuedFunctions(generateTableValuedFunctions());
generate0(db);
}
protected void generate0(Database db) {}
void logDatabaseParameters(Database db) {
String url = "";
try {
@ -473,8 +486,12 @@ abstract class AbstractGenerator implements Generator {
public boolean generateTables() {
// [#5525] When DAOs or records are generated, tables must be generated, too
// [#12992] When indexes are generated, tables must be generated.
return generateTables || generateRecords || generateDaos || generateIndexes;
return generateTables
|| generateRecords
|| generateDaos
// [#12992] When indexes are generated, tables must be generated.
|| generateIndexes && database.getSchemata().stream().flatMap(s -> database.getIndexes(s).stream()).anyMatch(t -> true);
}
@Override

View File

@ -259,11 +259,6 @@ public class JavaGenerator extends AbstractGenerator {
*/
private final StopWatch watch = new StopWatch();
/**
* The underlying database of this generator
*/
private Database database;
/**
* The code generation date, if needed.
*/
@ -390,15 +385,11 @@ public class JavaGenerator extends AbstractGenerator {
}
@Override
public final void generate(Database db) {
public final void generate0(Database db) {
this.isoDate = DatatypeConverter.printDateTime(Calendar.getInstance(TimeZone.getTimeZone("UTC")));
this.schemaVersions = new LinkedHashMap<>();
this.catalogVersions = new LinkedHashMap<>();
this.database = db;
this.database.addFilter(new AvoidAmbiguousClassesFilter());
this.database.setIncludeRelations(generateRelations());
this.database.setTableValuedFunctions(generateTableValuedFunctions());
logDatabaseParameters(db);
log.info("");

View File

@ -100,7 +100,7 @@ public class XMLGenerator extends AbstractGenerator {
}
@Override
public void generate(Database db) {
public void generate0(Database db) {
logDatabaseParameters(db);
log.info("");
logGenerationRemarks(db);