Predicates for special uses

You can use certain special predicates to influence access path selection for a query.

For example, you can use the following special predicates:

WHERE (COL1=? OR 0=1)
The always-false OR 0=1 condition has the following effects on the compound predicate:
  • Disables index access.
  • Adds 0.04 to the estimated filter factor.
  • Converts it to a non-Boolean predicate and disables certain query transformations, such as pushdown and transitive closure.
WHERE (COL1=? OR 0<>0)
The always-false OR 0<>0 condition has the following effects on the compound predicate:
  • Disables index access.
  • Adds 0.96 to the estimated filter factor, which indicates the predicate has low selectivity.
  • Converts it to a non-Boolean predicate and disables certain query transformations, such as pushdown and transitive closure.
WHERE COL1=?+0
The +0 is removed when the query is transformed, however the predicate is marked as not matching indexable.
noncol-expr+0
noncol-expr-0
noncol-expr*1
noncol-expr/1
noncol-expr CONCAT blank-value
These predicates disable index access.