[#1177] Add SQL Console module to jOOQ - parameters description is a separate variable, to potentially apply filtering in the future.
This commit is contained in:
parent
bfd039bdcb
commit
6b5c14a2aa
@ -128,17 +128,14 @@ public class DebugListener extends DefaultExecuteListener {
|
||||
ResultSet resultSet = ctx.resultSet();
|
||||
String[] sql = ctx.batchSQL();
|
||||
SqlQueryType sqlQueryType = SqlQueryType.detectType(sql[0]);
|
||||
String parameterDescription = null;
|
||||
if(sql.length == 1) {
|
||||
PreparedStatement statement = ctx.statement();
|
||||
if(statement instanceof UsageTrackingPreparedStatement) {
|
||||
String parameterDescription = ((UsageTrackingPreparedStatement) statement).getParameterDescription();
|
||||
if(parameterDescription != null) {
|
||||
// Make a copy to not change internal structure.
|
||||
sql = new String[] {sql[0] + " -> " + parameterDescription};
|
||||
}
|
||||
parameterDescription = ((UsageTrackingPreparedStatement) statement).getParameterDescription();
|
||||
}
|
||||
}
|
||||
DebuggerData sqlQueryDebuggerData = new DebuggerData(sqlQueryType, sql, startPreparationTime == 0? null: aggregatedPreparationDuration, startBindTime == 0? null: endBindTime - startBindTime, endExecutionTime - startExecutionTime);
|
||||
DebuggerData sqlQueryDebuggerData = new DebuggerData(sqlQueryType, sql, parameterDescription, startPreparationTime == 0? null: aggregatedPreparationDuration, startBindTime == 0? null: endBindTime - startBindTime, endExecutionTime - startExecutionTime);
|
||||
for(Debugger listener: sqlQueryDebuggerList) {
|
||||
listener.debugQueries(sqlQueryDebuggerData);
|
||||
}
|
||||
|
||||
@ -49,6 +49,7 @@ public class DebuggerData implements Serializable {
|
||||
private int id;
|
||||
private SqlQueryType queryType;
|
||||
private String[] queries;
|
||||
private String parameterDescription;
|
||||
private Long preparationDuration;
|
||||
private Long bindingDuration;
|
||||
private long executionDuration;
|
||||
@ -56,7 +57,7 @@ public class DebuggerData implements Serializable {
|
||||
private long threadID;
|
||||
private StackTraceElement[] callerStackTraceElements;
|
||||
|
||||
public DebuggerData(SqlQueryType queryType, String[] queries, Long preparationDuration, Long bindingDuration, long executionDuration) {
|
||||
public DebuggerData(SqlQueryType queryType, String[] queries, String parameterDescription, Long preparationDuration, Long bindingDuration, long executionDuration) {
|
||||
this.id = nextID++;
|
||||
Thread currentThread = Thread.currentThread();
|
||||
this.threadName = currentThread.getName();
|
||||
@ -64,6 +65,7 @@ public class DebuggerData implements Serializable {
|
||||
this.callerStackTraceElements = new Exception().getStackTrace();
|
||||
this.queryType = queryType;
|
||||
this.queries = queries;
|
||||
this.parameterDescription = parameterDescription;
|
||||
this.preparationDuration = preparationDuration;
|
||||
this.bindingDuration = bindingDuration;
|
||||
this.executionDuration = executionDuration;
|
||||
@ -93,6 +95,13 @@ public class DebuggerData implements Serializable {
|
||||
return queries;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return non null if queries consist of a single prepared statement with parameters.
|
||||
*/
|
||||
public String getParameterDescription() {
|
||||
return parameterDescription;
|
||||
}
|
||||
|
||||
public Long getPreparedStatementPreparationDuration() {
|
||||
return preparationDuration;
|
||||
}
|
||||
|
||||
@ -759,7 +759,12 @@ public class LoggerPane extends JPanel {
|
||||
return sqlQueryDebuggerData.getQueryType();
|
||||
}
|
||||
public String[] getQueries() {
|
||||
return sqlQueryDebuggerData.getQueries();
|
||||
String parameterDescription = sqlQueryDebuggerData.getParameterDescription();
|
||||
String[] queries = sqlQueryDebuggerData.getQueries();
|
||||
if(parameterDescription != null) {
|
||||
return new String[] {queries[0] + " -> " + parameterDescription};
|
||||
}
|
||||
return queries;
|
||||
}
|
||||
public Throwable getThrowable() {
|
||||
return throwable;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user