Trivial condition
Supported by ❌ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
The SPI methods handling these events are trivialCondition(). This diagnostic depends on the transform patterns feature.
This problem appears with JDBC, jOOQ or with any ORM. A predicate of arbitrary complexity can sometimes be reduced to a simple TRUE or FALSE condition.
Why is it bad?
A trivial condition is bad for your application for multiple reasons:
- It could just be a typo (e.g. a
JOINpredicate of the formA.ID = A.IDinstead ofA.ID = B.ID), in case of which it's simply wrong. - The redundant predicate might be a subtle cause for duplicate statements.
An example is given here:
// A custom DiagnosticsListener SPI implementation
class TrivialCondition implements DiagnosticsListener {
@Override
public void trivialCondition(DiagnosticsContext ctx) {
System.out.println("Trivial condition: " + ctx.part());
}
}
And then:
// Configuration is configured with the target DataSource, SQLDialect, etc. for instance Oracle.
try (Connection c = DSL.using(configuration.derive(new TrivialCondition()))
.diagnosticsConnection();
Statement s = c.createStatement()) {
try (ResultSet rs = s.executeQuery("SELECT * FROM author WHERE id = id")) {
// ..
}
}
Feedback
Do you have any feedback about this page? We'd love to hear it!