[jOOQ/jOOQ#7398] Implement DiagnosticsConnection.ON
This commit is contained in:
parent
8045342b5f
commit
246edb9050
@ -80,6 +80,7 @@ import org.jooq.Routine;
|
||||
import org.jooq.SQLDialect;
|
||||
import org.jooq.Scope;
|
||||
import org.jooq.Update;
|
||||
import org.jooq.conf.DiagnosticsConnection;
|
||||
import org.jooq.conf.Settings;
|
||||
import org.jooq.tools.JooqLogger;
|
||||
import org.jooq.tools.jdbc.JDBCUtils;
|
||||
@ -120,7 +121,7 @@ class DefaultExecuteContext implements ExecuteContext {
|
||||
|
||||
ConnectionProvider connectionProvider;
|
||||
private Connection connection;
|
||||
private SettingsEnabledConnection wrappedConnection;
|
||||
private Connection wrappedConnection;
|
||||
private PreparedStatement statement;
|
||||
private int statementExecutionCount;
|
||||
private ResultSet resultSet;
|
||||
@ -631,12 +632,19 @@ class DefaultExecuteContext implements ExecuteContext {
|
||||
if (c != null) {
|
||||
LOCAL_CONNECTION.set(c);
|
||||
connection = c;
|
||||
wrappedConnection = wrapConnection(provider, c);
|
||||
wrappedConnection = wrap(provider, c);
|
||||
}
|
||||
}
|
||||
|
||||
private final SettingsEnabledConnection wrapConnection(ConnectionProvider provider, Connection c) {
|
||||
return new SettingsEnabledConnection(new ProviderEnabledConnection(provider, c), derivedConfiguration.settings(), this);
|
||||
private final Connection wrap(ConnectionProvider provider, Connection c) {
|
||||
return wrap0(new SettingsEnabledConnection(new ProviderEnabledConnection(provider, c), derivedConfiguration.settings(), this));
|
||||
}
|
||||
|
||||
private final Connection wrap0(Connection c) {
|
||||
if (derivedConfiguration.settings().getDiagnosticsConnection() == DiagnosticsConnection.ON)
|
||||
return new org.jooq.impl.DiagnosticsConnection(derivedConfiguration, c);
|
||||
else
|
||||
return c;
|
||||
}
|
||||
|
||||
final void incrementStatementExecutionCount() {
|
||||
@ -770,7 +778,7 @@ class DefaultExecuteContext implements ExecuteContext {
|
||||
if (connection == null)
|
||||
DefaultExecuteContext.this.connection();
|
||||
|
||||
return wrapConnection(this, connection);
|
||||
return wrap(this, connection);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -48,6 +48,7 @@ import static org.jooq.impl.DSL.count;
|
||||
import static org.jooq.impl.DSL.noCondition;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
@ -70,7 +71,6 @@ import org.jooq.Query;
|
||||
import org.jooq.QueryPart;
|
||||
import org.jooq.RenderContext;
|
||||
// ...
|
||||
// ...
|
||||
import org.jooq.Select;
|
||||
import org.jooq.conf.Settings;
|
||||
import org.jooq.impl.QOM.Eq;
|
||||
@ -93,9 +93,16 @@ final class DiagnosticsConnection extends DefaultConnection {
|
||||
final RenderContext normalisingRenderer;
|
||||
final Parser parser;
|
||||
final DiagnosticsListeners listeners;
|
||||
final boolean release;
|
||||
|
||||
DiagnosticsConnection(Configuration configuration) {
|
||||
super(configuration.connectionProvider().acquire());
|
||||
this(configuration, null);
|
||||
}
|
||||
|
||||
DiagnosticsConnection(Configuration configuration, Connection c) {
|
||||
super(c != null ? c : configuration.connectionProvider().acquire());
|
||||
|
||||
this.release = c == null;
|
||||
|
||||
// [#7527] The Settings.diagnosticsPattern flag overrides the Settings.transformPatterns flag.
|
||||
this.configuration = configuration;
|
||||
@ -176,7 +183,9 @@ final class DiagnosticsConnection extends DefaultConnection {
|
||||
@Override
|
||||
public final void close() throws SQLException {
|
||||
repeatedSQL.clear();
|
||||
configuration.connectionProvider().release(getDelegate());
|
||||
|
||||
if (release)
|
||||
configuration.connectionProvider().release(getDelegate());
|
||||
}
|
||||
|
||||
final boolean checkPattern(Predicate<? super Settings> test) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user