Redundant Quality Rules not included in the SQL Analyzer

The following table lists the Quality Rules that have not been included in the SQL Analyzer, and provides an explanation for this decision.

# Name of Quality Rule when not using the SQL Analyzer extension Name of Quality Rule when using the SQL Analyzer Explanation
1 Avoid SQL queries that no index can support Avoid non-indexed SQL queries Renamed for clarity
2 Avoid SQL queries using functions on indexed columns in the WHERE clause *) Avoid non-indexed SQL queries
Removed because:
  • It is a sub case of Avoid SQL queries that no index can support
  • In some cases, when the join is indexable by another constraint, then the specification itself is "wrong" (i.e. a false positive exists by design). Here is an example with t1.c1 being indexed - this is an indexed join that the query optimizer uses (t1.c1 = t2.c1) but by rule design, the query is marked as a violation:

select * 
from Table1 t1, Table2 t2 
where t1.c1 = t2.c1 
  and f(t1.c1) > 10;
3 Avoid SQL queries not using the first column of a composite index in the WHERE clause *) Avoid non-indexed SQL queries Removed because:
  • It is a sub case of Avoid SQL queries that no index can support
  • Any violation for this is also a violation for Avoid SQL queries that no index can support

Note that a * denotes that the same thing has been done for the equivalent “XXL” Quality Rule.