The WHERE
clause specifies search conditions, that
remove unwanted data from the query result. The
following operators, are in order of precedence. The
operators are evaluated in the specified order:
SELECT * FROM java.lang.String s WHERE s.count >= 100
SELECT * FROM java.lang.String s WHERE toString(s) LIKE ".*day"
SELECT * FROM java.lang.String s WHERE s.value NOT IN dominators(s)
The right hand side of IN
can be a Java java.util.List, Java Object[]
array, a Java int[] array, or a result table from another
SELECT
, in which case the item is searched among the entries
in the first column.
If the right hand side is a Java int[] array and the left
hand side is an IObject then the object ID is searched for
in the array.
SELECT * FROM java.lang.Class c WHERE c IMPLEMENTS org.eclipse.mat.snapshot.model.IClass
IMPLEMENTS
works when the left hand side is any object or an integer
which is considered as an object ID and the actual IObject is used for the test.
SELECT * FROM java.lang.String s WHERE toString(s) = "monday"
SELECT * FROM java.lang.String s WHERE s.count > 100 AND s.@retainedHeapSize > s.@usedHeapSize
SELECT * FROM java.lang.String s WHERE s.count > 1000 OR s.value.@length > 1000
Operators can be applied to expressions, constant literals and sub queries. Valid expressions are explained in the next sections.
Boolean, String, Integer, Long, Character, Float, Double and null literals:
SELECT * FROM java.lang.String s
WHERE ( s.count > 1000 ) = true
OR toString(s) = "monday"
OR dominators(s).size() = 0
OR s.@retainedHeapSize > 1024L
OR s.value != null AND s.value.@valueArray.@length >= 1 AND s.value.@valueArray.get(0) = 'j'
SELECT * FROM instanceof java.lang.Number s
WHERE s.value > -1
OR s.value > -1L
OR s.value > 0.1
OR s.value > -0.1E-2F
OR s.value > 0.1D
OR s.value > -0.1E-2D
OR s.value > 0.1
OR s.value > -0.1E-2F
OR s.value > 0.1D
OR s.value > -0.1E-2D