[jOOQ/jOOQ#14205] ResultSet diagnostics don't work for PreparedStatement
This commit is contained in:
parent
fe5def0b3e
commit
8045342b5f
39
jOOQ/src/main/java/org/jooq/conf/DiagnosticsConnection.java
Normal file
39
jOOQ/src/main/java/org/jooq/conf/DiagnosticsConnection.java
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
package org.jooq.conf;
|
||||
|
||||
import jakarta.xml.bind.annotation.XmlEnum;
|
||||
import jakarta.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>Java class for DiagnosticsConnection.
|
||||
*
|
||||
* <p>The following schema fragment specifies the expected content contained within this class.
|
||||
* <pre>
|
||||
* <simpleType name="DiagnosticsConnection">
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||
* <enumeration value="DEFAULT"/>
|
||||
* <enumeration value="ON"/>
|
||||
* <enumeration value="OFF"/>
|
||||
* </restriction>
|
||||
* </simpleType>
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
@XmlType(name = "DiagnosticsConnection")
|
||||
@XmlEnum
|
||||
public enum DiagnosticsConnection {
|
||||
|
||||
DEFAULT,
|
||||
ON,
|
||||
OFF;
|
||||
|
||||
public String value() {
|
||||
return name();
|
||||
}
|
||||
|
||||
public static DiagnosticsConnection fromValue(String v) {
|
||||
return valueOf(v);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user