[#8465] Add a new <logSlowResultsAfterSeconds/> code generation flag
This commit is contained in:
parent
f39e15be04
commit
8f7e2f0dbf
@ -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());
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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.
|
||||
*/
|
||||
|
||||
@ -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<Property> 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<Property> getProperties() {
|
||||
if (properties == null) {
|
||||
properties = new ArrayList<Property>();
|
||||
@ -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("</logSlowQueriesAfterSeconds>");
|
||||
}
|
||||
if (logSlowResultsAfterSeconds!= null) {
|
||||
sb.append("<logSlowResultsAfterSeconds>");
|
||||
sb.append(logSlowResultsAfterSeconds);
|
||||
sb.append("</logSlowResultsAfterSeconds>");
|
||||
}
|
||||
if (properties!= null) {
|
||||
sb.append("<properties>");
|
||||
for (int i = 0; (i<properties.size()); i ++) {
|
||||
@ -2484,6 +2520,15 @@ public class Database implements Serializable
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (logSlowResultsAfterSeconds == null) {
|
||||
if (other.logSlowResultsAfterSeconds!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!logSlowResultsAfterSeconds.equals(other.logSlowResultsAfterSeconds)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (properties == null) {
|
||||
if (other.properties!= null) {
|
||||
return false;
|
||||
@ -2597,6 +2642,7 @@ public class Database implements Serializable
|
||||
result = ((prime*result)+((forceIntegerTypesOnZeroScaleDecimals == null)? 0 :forceIntegerTypesOnZeroScaleDecimals.hashCode()));
|
||||
result = ((prime*result)+((tableValuedFunctions == null)? 0 :tableValuedFunctions.hashCode()));
|
||||
result = ((prime*result)+((logSlowQueriesAfterSeconds == null)? 0 :logSlowQueriesAfterSeconds.hashCode()));
|
||||
result = ((prime*result)+((logSlowResultsAfterSeconds == null)? 0 :logSlowResultsAfterSeconds.hashCode()));
|
||||
result = ((prime*result)+((properties == null)? 0 :properties.hashCode()));
|
||||
result = ((prime*result)+((catalogs == null)? 0 :catalogs.hashCode()));
|
||||
result = ((prime*result)+((schemata == null)? 0 :schemata.hashCode()));
|
||||
|
||||
@ -748,6 +748,10 @@ for Oracle.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
<element name="logSlowQueriesAfterSeconds" type="int" minOccurs="0" maxOccurs="1" default="5">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[The number of seconds that are considered "slow" before a query is logged to indicate a bug, 0 for not logging.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="logSlowResultsAfterSeconds" type="int" minOccurs="0" maxOccurs="1" default="5">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[The number of seconds that are considered "slow" before a result set is logged to indicate a bug, 0 for not logging.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user