KEY [ SORT-MERGE/XL General Users Guide ] MPE/iX 5.0 Documentation
SORT-MERGE/XL General Users Guide
KEY
The >KEY command specifies the location of the key data items in a file's
records which are to be sorted or merged.
SYNTAX
>K[EY] keyspec1 [; keyspec2]...[; keyspecN]
PARAMETERS
keyspec A group of parameters used to specify a key data item to be
sorted or merged. The syntax of the keyspec parameters
follows:
position, length [,type][,DESC]
position A positive number (integer) specifying the position of the
first character of the key data item within the record.
(The first position of a record line is numbered one.)
length A positive number (integer) indicating the length of the
data item key field in bytes.
type Defines the type of data contained in the data item key
field. The type of data can be one of the following:
B[YTE] A direct byte comparison is used. It is the default value
for the type parameter and should be used for ASCII or
EBCDIC data. The specification of an alternate collating
sequence via the >DATA and >ALTSEQ commands affects the
collating of this key type only.
C[HARACTER] The collating sequence for the native language defined in
the >LANGUAGE command is used. If no >LANGUAGE command has
been issued, SORT/XL and MERGE/XL use the default data
language of the system (usually ASCII). Refer to the Native
Language Programmer's Guide (32650-90022) for additional
information on the default data language.
I[NTEGER] The key data item field contains a two's complement number
of the specified length in bytes. Any value may be
specified for length. The length parameter defaults to two
bytes.
R[EAL] The key data item field contains a floating-point number in
standard HP 3000 format. Any value may be entered for
length. The length parameter defaults to four bytes.
Table 6-0. (cont.)
L[ONG] LONG is the same as REAL except that length defaults to
eight bytes.
F[POINT] The key data item field contains a floating-point number in
IEEE standard format. The length parameter defaults to four
bytes. Any value may be entered for length.
NOTE NANs (Not A Number) will collate at the beginning or end for IEEE
floating-point numbers. The method of reporting (or ignoring)
these entities has not been determined.
F8[POINT] Same as FPOINT except that length defaults to eight bytes.
F16[POINT] Same as FPOINT except that length defaults to sixteen bytes.
T[WO-BYTE] Key data item field contains 16-bit data. The length
specified for this key type must be an even number of bytes.
P[ACKED] Key data item field contains a packed decimal number. In
this format, each character except the last contains two
digits. Each digit occupies four bits. The rightmost
character contains the least significant digit of the number
in its four leftmost bits, and the sign of the number in its
four rightmost bits. The sign is considered minus if it has
the value 1101 (binary) and plus otherwise.
PACKED* Same as PACKED except there are an even number of digits and
a sign. The leftmost four bits are not treated as part of
the field.
DI[SPLAY-TRAILING-SIGN] Key field contains a numeric display quantity. Numeric
display items are represented by ASCII-coded decimal digits
(0 through 9) except for the rightmost digit, which carries
the sign of the data item. The sign is determined according
to the table shown in Figure 6-1. (Sign is optional.) For
example, 123 is represented by 12C.
DISPLAY-L[EADING-SIGN] In this case, the leftmost digit carries the sign of the
data item. For example, -123 is represented by J23. Refer
to the table shown in Figure 6-1. (Sign is optional.)
DISPLAY-TRAILING-SIGN- The sign is contained in the character position to the right
S[EPARATE] of the rightmost digit. For example, 123 is represented by
123+. (Sign can be blank.)
DISPLAY-LEADING-SIGN- The sign is contained in the character position to the left
S[EPARATE] of the leftmost digit. For example, -123 is represented by
-123. (Sign can be blank.)
DESC Indicates the records are to be arranged in descending
order. If this parameter is not specified, the records are
arranged in the default ascending order.
Display Digit Positive Negative No Sign
0 { (%173) } (%175) 0 (%60)
1 A (%101) J (%112) 1 (%61)
2 B (%102) K (%113) 2 (%62)
3 C (%103) L (%114) 3 (%63)
4 D (%104) M (%115) 4 (%64)
5 E (%105) N (%116) 5 (%65)
6 F (%106) O (%117) 6 (%66)
7 G (%107) P (%120) 7 (%67)
8 H (%110) Q (%121) 8 (%70)
9 I (%111) R (%122) 9 (&71)
DISCUSSION
SORT-MERGE/XL sorts keys contain binary, ASCII, or EBCDIC data according
to an eight-bit binary sequence (00000000 to 11111111), except for the
type CHARACTER, which is sorted according to the collating sequence of
the native language specified in the >LANGUAGE command. Refer to
Appendix C for further information on native language collating. Other
types of data (integer, real, etc.) are sorted according to the standard
arithmetic relational operators. For example, 2 is greater than -5. The
keys can contain alphabetic, numeric, or alphanumeric (alphabetic and
numeric intermixed) data. They can be contiguous or separated in a
record or they can overlap each other, provided the collating sequence is
not altered, or a user-defined sequence is not used. An entire record
can be considered as a single key.
As explained in Chapter 3, each >KEY command can specify one or more key
fields which are separated by semicolons. Multiple key fields can also
be specified with more than one >KEY command. All the key fields do not
have to be specified in the same command. The most significant key is
called the major key and is declared first in the command. Other keys
have decreasing significance according to their relative positions
following the major key. They are compared if a comparison or more
significant keys results in an equal condition.
Consider a file containing the records of all the students in a high
school. Each record can contain information such as name, address, grade
level, grades in individual courses, as well as data on other
information. You can specify the order in which the records are sorted.
If the first record is of the student with the highest grades (A) in
English and Math, you specify an ascending order. If the major key is
English and the other key is Math, the data in the Math fields are
compared only if the data in the English fields are the same. The
sorting order is specified in the same commands that specify the keys.
An order is declared for each key. This order does not have to be the
same for all the keys in a record. For example, in the high school file,
you can declare English (major key) with an ascending order and Math with
a descending order. Note even if the sorting order is different for each
key, only one collating sequence is used for a particular operation.
EXAMPLES
The following examples show using the >KEY command and some of its
options:
>KEY 10, 5
BYTE key of length 5 starting in position 10, sorted in the ascending
order.
>KEY 20, REAL
REAL key of length 4, starting in position 20 and sorted in an ascending
order since four is the default for the length parameter when the key
data type is REAL.
>KEY 30, 20, INT, DESC
20-byte integer key starting in position 30, and sorted in a descending
order.
For information on making corrections to the key specification, refer to
the >RESET command in this chapter.
ADDITIONAL DISCUSSION
Refer to the >RESET command in this chapter.
MPE/iX 5.0 Documentation