Published By | Date | Version | Knowledge Level | Keywords |
---|---|---|---|---|
Revelation Technologies | 29 JUL 1990 | 2.X | INTERMEDIATE | INDEXING, INDEXES, MFS, REMOVING |
Sometimes you need to remove indexing from a file manually. This is usually happens when you clear or delete the indexing file (!filename) explicitly, which also deletes important control information. When you then try to remove indexing from the file, the system returns an error message.
In order to remove indexing from a file manually, there are three steps to be performed.
Each of these steps will be covered in turn.
The volume directory maintains information about each file in a volume. Part of that information is a list of Modifying Filing Systems (MFSs) associated with the file. When a file has indexing on it, an MFS called SI.MFS is placed on the file. This MFS must be removed.
To remove the MFS, follow these steps.
ATTACH SALES_DATA REVMEDIA
EDIT REVMEDIA CUSTOMERS*SALES
If the indexing file (!filename, not !INDEXING) still exists, it must be deleted. To delete the file, follow these steps:
LOGTO SALES
ATTACH SALES_DATA
DELETEFILE !CUSTOMERS
The indexing system maintains a variety of information in the dictionary record of an indexed field. Depending on the type on indexing, different information is maintained.
You will have to edit the dictionary record for each field in the file that was indexed:
Warning! Do not use [Ctrl-D] (delete a line) or press [Enter] while editing a dictionary record. This will alter the dictionary record, making it unusable.
To edit a dictionary record, enter from TCL:
EDIT DICT.FILENAME FIELDNAME
Field 6 of each dictionary record tells the system whether or not this field has a Btree index. If there is a 1 in this field, the field has had a Btree index installed. Change the 1 to a 0 and save the record.
When a Cross Reference index is placed on a field, a symbolic field is created to maintain the index. This field can be identified by the .XREF extension.
Because this field is no longer required, it should be deleted. If a cross reference index is placed on the field again, the symbolic field will be recreated.
In addition, a field with a Cross Reference index has the name of the cross reference symbolic in field 22 of the dictionary record. Position the cursor on line 22 of the dictionary record, press [Ctrl-X], and save the record.
Relational indexes use several fields in the dictionary record to store their control information.
In the record that serves as the target of the relational index, change the 1 on line 25, which tells the system that this field's data is protected, to a 0. Line 24 contains the name of the relational index, which should be cleared with [Ctrl-X].
To completely remove the Relational index, the dictionary of the source file must also be edited. In that dictionary, the source field will have the name of the related field on line 23. Remove the name with[Ctrl-X].
In Advanced Revelation 2.0 and higher, there are two other records in the dictionary that should be deleted: %PROTECT.SPEC% and %FIELDS%. Delete these fields after editing the indexed fields.
Reattach the file and the system will recreate these records, reflecting the changes made to the dictionary.
At this point the file has had all indexing removed. Indexes can be re-established as necessary.