diff --git a/jOOQ/src/main/java/org/jooq/conf/DiagnosticsConnection.java b/jOOQ/src/main/java/org/jooq/conf/DiagnosticsConnection.java new file mode 100644 index 0000000000..2b91b9769a --- /dev/null +++ b/jOOQ/src/main/java/org/jooq/conf/DiagnosticsConnection.java @@ -0,0 +1,39 @@ + +package org.jooq.conf; + +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for DiagnosticsConnection. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ * <simpleType name="DiagnosticsConnection">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="DEFAULT"/>
+ *     <enumeration value="ON"/>
+ *     <enumeration value="OFF"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "DiagnosticsConnection") +@XmlEnum +public enum DiagnosticsConnection { + + DEFAULT, + ON, + OFF; + + public String value() { + return name(); + } + + public static DiagnosticsConnection fromValue(String v) { + return valueOf(v); + } + +} diff --git a/jOOQ/src/main/java/org/jooq/impl/DiagnosticsConnection.java b/jOOQ/src/main/java/org/jooq/impl/DiagnosticsConnection.java index 42b11fb619..5afc35bd27 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DiagnosticsConnection.java +++ b/jOOQ/src/main/java/org/jooq/impl/DiagnosticsConnection.java @@ -130,47 +130,47 @@ final class DiagnosticsConnection extends DefaultConnection { @Override public final PreparedStatement prepareStatement(String sql) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql))); + return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql)), sql); } @Override public final PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), resultSetType, resultSetConcurrency)); + return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), resultSetType, resultSetConcurrency), sql); } @Override public final PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), resultSetType, resultSetConcurrency, resultSetHoldability)); + return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), resultSetType, resultSetConcurrency, resultSetHoldability), sql); } @Override public final PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), autoGeneratedKeys)); + return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), autoGeneratedKeys), sql); } @Override public final PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), columnIndexes)); + return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), columnIndexes), sql); } @Override public final PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), columnNames)); + return new DiagnosticsStatement(this, getDelegate().prepareStatement(parse(sql), columnNames), sql); } @Override public final CallableStatement prepareCall(String sql) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareCall(parse(sql))); + return new DiagnosticsStatement(this, getDelegate().prepareCall(parse(sql)), sql); } @Override public final CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareCall(parse(sql), resultSetType, resultSetConcurrency)); + return new DiagnosticsStatement(this, getDelegate().prepareCall(parse(sql), resultSetType, resultSetConcurrency), sql); } @Override public final CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { - return new DiagnosticsStatement(this, getDelegate().prepareCall(parse(sql), resultSetType, resultSetConcurrency, resultSetHoldability)); + return new DiagnosticsStatement(this, getDelegate().prepareCall(parse(sql), resultSetType, resultSetConcurrency, resultSetHoldability), sql); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DiagnosticsStatement.java b/jOOQ/src/main/java/org/jooq/impl/DiagnosticsStatement.java index f152d253f1..00d0b5e2e9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DiagnosticsStatement.java +++ b/jOOQ/src/main/java/org/jooq/impl/DiagnosticsStatement.java @@ -50,11 +50,17 @@ import org.jooq.tools.jdbc.DefaultCallableStatement; final class DiagnosticsStatement extends DefaultCallableStatement { final DiagnosticsConnection connection; + final String actualStatement; DiagnosticsStatement(DiagnosticsConnection connection, Statement statement) { + this(connection, statement, null); + } + + DiagnosticsStatement(DiagnosticsConnection connection, Statement statement, String actualStatement) { super(statement); this.connection = connection; + this.actualStatement = actualStatement; } @Override @@ -65,6 +71,14 @@ final class DiagnosticsStatement extends DefaultCallableStatement { return new DiagnosticsResultSet(super.executeQuery(connection.parse(sql)), sql, this, connection); } + @Override + public ResultSet executeQuery() throws SQLException { + if (connection.disabled()) + return super.executeQuery(); + else + return new DiagnosticsResultSet(super.executeQuery(), actualStatement, this, connection); + } + @Override public final int executeUpdate(String sql) throws SQLException { return super.executeUpdate(connection.parse(sql));