diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java index c94922d341..4e63ac12e5 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java @@ -517,6 +517,7 @@ public class GenerationTool { database.setConfiguredForcedTypes(d.getForcedTypes()); database.setConfiguredEmbeddables(d.getEmbeddables()); database.setLogSlowQueriesAfterSeconds(defaultIfNull(g.getDatabase().getLogSlowQueriesAfterSeconds(), 5)); + database.setLogSlowResultsAfterSeconds(defaultIfNull(g.getDatabase().getLogSlowResultsAfterSeconds(), 5)); if (d.getRegexFlags() != null) { database.setRegexFlags(d.getRegexFlags()); diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java index 29d78b9960..051178c605 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java @@ -151,6 +151,7 @@ public abstract class AbstractDatabase implements Database { private boolean includeRelations = true; private boolean tableValuedFunctions = true; private int logSlowQueriesAfterSeconds; + private int logSlowResultsAfterSeconds; // ------------------------------------------------------------------------- // Loaded definitions @@ -318,7 +319,7 @@ public abstract class AbstractDatabase implements Database { @Override public void fetchEnd(ExecuteContext ctx) { - int s = getLogSlowQueriesAfterSeconds(); + int s = getLogSlowResultsAfterSeconds(); if (s <= 0) return; @@ -329,7 +330,7 @@ public abstract class AbstractDatabase implements Database { log.warn( "Slow Result Fetching", - "jOOQ Meta fetched a slow result (slower than " + s + " seconds)" // [#8465], configured by configuration/generator/database/logSlowResultsAfterSeconds + "jOOQ Meta fetched a slow result (slower than " + s + " seconds, configured by configuration/generator/database/logSlowResultsAfterSeconds)" + "\n\n" + "If you think this is a bug in jOOQ, please report it here: https://github.com/jOOQ/jOOQ/issues/new\n\n```sql\n" + formatted(ctx.query()) @@ -1149,6 +1150,16 @@ public abstract class AbstractDatabase implements Database { this.logSlowQueriesAfterSeconds = logSlowQueriesAfterSeconds; } + @Override + public final int getLogSlowResultsAfterSeconds() { + return logSlowResultsAfterSeconds; + } + + @Override + public final void setLogSlowResultsAfterSeconds(int logSlowResultsAfterSeconds) { + this.logSlowResultsAfterSeconds = logSlowResultsAfterSeconds; + } + @Override public final SchemaVersionProvider getSchemaVersionProvider() { return schemaVersionProvider; diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/Database.java b/jOOQ-meta/src/main/java/org/jooq/meta/Database.java index ccab8020c6..417de85fb7 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/Database.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/Database.java @@ -747,6 +747,16 @@ public interface Database extends AutoCloseable { */ void setLogSlowQueriesAfterSeconds(int logSlowQueriesAfterSeconds); + /** + * Log slow results after this amount of seconds. + */ + int getLogSlowResultsAfterSeconds(); + + /** + * Log slow results after this amount of seconds. + */ + void setLogSlowResultsAfterSeconds(int logSlowResultsAfterSeconds); + /** * The database's schema version provider. */ diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java index 6e147faacb..505f2ec870 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java @@ -137,6 +137,8 @@ public class Database implements Serializable protected Boolean tableValuedFunctions; @XmlElement(defaultValue = "5") protected Integer logSlowQueriesAfterSeconds = 5; + @XmlElement(defaultValue = "5") + protected Integer logSlowResultsAfterSeconds = 5; @XmlElementWrapper(name = "properties") @XmlElement(name = "property") protected List properties; @@ -1347,6 +1349,30 @@ public class Database implements Serializable this.logSlowQueriesAfterSeconds = value; } + /** + * The number of seconds that are considered "slow" before a result set is logged to indicate a bug, 0 for not logging. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getLogSlowResultsAfterSeconds() { + return logSlowResultsAfterSeconds; + } + + /** + * Sets the value of the logSlowResultsAfterSeconds property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setLogSlowResultsAfterSeconds(Integer value) { + this.logSlowResultsAfterSeconds = value; + } + public List getProperties() { if (properties == null) { properties = new ArrayList(); @@ -1650,6 +1676,11 @@ public class Database implements Serializable return this; } + public Database withLogSlowResultsAfterSeconds(Integer value) { + setLogSlowResultsAfterSeconds(value); + return this; + } + public Database withProperties(Property... values) { if (values!= null) { for (Property value: values) { @@ -2019,6 +2050,11 @@ public class Database implements Serializable sb.append(logSlowQueriesAfterSeconds); sb.append(""); } + if (logSlowResultsAfterSeconds!= null) { + sb.append(""); + sb.append(logSlowResultsAfterSeconds); + sb.append(""); + } if (properties!= null) { sb.append(""); for (int i = 0; (i + + + +