EMS Manual
Compiled Filters
EMS Manual—426909-005
5-24
Comparisons
The node that compares the file names
When writing a file name in a filter, you should normally omit the node name.
The file names are equal:
If both file names are in local form, the value of the file-name comparison depends
on whether the names match.
If both file names are in network form, the value of the file-name comparison
depends both on whether the system numbers match and on whether the rest of
the file parts match.
If one file name is network and the other is local, the value of the file-name
comparison depends both on whether the one in network form designates the
same system as ZEMS^TKN^SYSTEM and on whether the rest of the file parts
match.
The file name comparisons just described apply only to equal (=) or not equal (<>)
comparisons. Other comparisons treat file names as string data, using the 24-
character internal representation of the file name.
Comparing Fields
Field values have the same data types as token values. You can compare a field with a
constant, a token value, or another field.
In addition to the previous comparisons, you can compare arrays of fields, using the
range parameter in the field syntax.
The filter compares each pair of fields in two structured tokens or in a token and a
composite constant. Comparison stops as soon as a FALSE comparison occurs. The
maximum number of comparisons that can occur is equal to the number of array
elements in the array with the lesser number of elements.
For example, suppose A and B are arrays of file names. If the first two file names are
equal, the expression A <> B involves only one comparison because A <> B is FALSE
on the first comparison.
As another example, you can compare an array of three single-word integer fields to
an array of four double-word integer fields. The compiler converts each single- and
double-word integer value to an 8-byte value (using sign extension) and then makes at
most three (the lesser) comparisons.
Note. Be careful of the following limitation when comparing file names with seven-character
volume names. If $RELEASE is also $21 on the local node, comparing $21 with $RELEASE
on node \A is TRUE. However, the same comparison on any other node is FALSE because
$RELEASE is too long to put in network form. The comparison cannot be performed properly.
The problem occurs only when you compare a seven-character volume name with a logical-
device number of a device on a remote node.