ANALYZE/RMS_FILE POSITION — VMS 4.6
This command provides a quick way to position to a structure in an in indexed file without performing the normal progression of "DOWN" and "NEXT" commands that would otherwise be required to get there. This command is also useful for positioning to a structure which would otherwise be inaccessible due to structural errors in the file. This command is much like a "GOTO" in a programming language in that it short-circuits the normal structured steps required to get to the structure. One of the qualifiers /BUCKET or /RECORD must be included with this command.
Additional information available:
/BUCKET
Positions you to a bucket of the file. Once you have positioned to
a bucket in this manner, you can continue to peruse the file forwards
and downwards from this point just as if you had traversed the tree
structure through the index structure down to this bucket. However,
if you go "UP" from this point, rather than traverse upward through
the index structure, you will go immediately to the key descriptor
for the bucket.
This command blindly assumes that the bucket to which you position is
a valid bucket and uses information in the bucket header to determine
the context of the bucket, including the proper key descriptor and
the legal down paths. If you position to a reclaimed bucket or to a
vbn which is not the beginning of a bucket, ANALYZE/RMS_FILE takes the
information stored in what should be the bucket header at the beginning
of the block, and infers the context for the bucket. In most cases,
the information at the beginning of an illegal bucket boundary does not
make sense interpreted as a bucket header and causes many errors to be
reported.
If you use this command to position to a bucket and find that many
error messages appear on your screen, you have probably not positioned
to a vbn which is at the beginning of a bucket or have specified the
wrong index number for the bucket. (See information below on the
/INDEXNO qualifier.)
Format:
POSITION/BUCKET [/INDEXNO=n] Bucket_vbn
Additional information available:
Bucket vbn
This parameter is the vbn of the bucket to which you wish you position. If a bucket is more than one block long, enter the vbn at which the bucket begins. The notation for this argument is described in HELP RADIX.
/INDEXNO
This qualifier allows the user to specify the number of the index in which the bucket falls. For instance, "/INDEXNO=0" specifies that the bucket is a primary index bucket or a primary data bucket, and "/INDEXNO=1" specifies that the bucket resides in the 1st alternate index structure. This command is only necessary in those circumstances in which ANALYZE/RMS_FILE cannot infer the information on its own; specifically, (1) when the file is Prolog 1 or 2, or (2) when the user wants to override the index number found in the bucket header in a Prolog 3 file, perhaps because the bucket header has been corrupted. If you specify the wrong index number for a bucket, ANALYZE/RMS_FILE blindly assumes that the bucket belongs in the index which you specified and reports errors accordingly.
/RECORD
Positions you at a record within the current bucket whether or not a
valid record is found at this location and whether or not the bucket
header is valid. This command is only legal when you are positioned
at a bucket header.
Format:
POSITION/RECORD Record_offset
Additional information available:
Record offset
This parameter specifies the offset in bytes from the beginning of the current bucket to the record to which you wish to position. The notation for this parameter is described in HELP RADIX.
Examples
POSITION/BUCKET 23
This command positions you to the bucket which begins at
vbn 23 of the file.
POSITION/BUCKET/INDEXNO=1 %X'2F'
This command positions you to the bucket which begins at vbn 47
of the file and presumes that the bucket resides in the first
alternate index structure.
POSITION/RECORD %X'0E'
This command positions you to the record that begins 14 bytes
from the beginning of the current bucket. Note that this command
is only legal while positioned to the bucket header.