File-defining items

File-defining items are the mechanisms by which the D3 system establishes the disk addresses of a file.

Warning: Editing a file-defining item should be done using the Update Dictionary processor or by using the editor with the D option.

This item contains ASCII numeric data that describes the file location in virtual memory.

These numbers are the base frame ID and the modulo that resolves to drive, cylinder, sector, and head.

File-defining items are often called FID or D-pointers in reference to the dictionary code in attribute 1.

File-defining items define the nature of the item-ID (attribute 0) and the relationships between files, and contain default macros for AQL and the Update processor.

In D3, information about the file itself, its physical extents, status, indexes, and so on, is stored in a separate data structure called the file control block. This data structure is unavailable to the user except indirectly through the file-defining item.

Note: For D-pointer Caching: Whenever a change is made to a D-pointer, you must log off, and then back on again for the change to take effect.
Attribute Name Description
0 Item-ID Name of the file being defined.
1 Dictionary Code Must contain a d for file-defining items.

The following characters can be added to the dictionary code to further define the item:

f Bypasses logging of clear-file operations in the file-of-files file.
l Logs updates to the transaction logger.
n (VME Only) Disables update protection on a file, even if global update protection is enabled. Cannot be used with the u option.
p (VME Only) Primary file space. Contains only pointer items.
q Prevents files from being resized.

This allows sequential commands (for example, count) to be used without having to update the File Control Block.

Warning: Administrators should not clear the q d-code and start a resize unless certain that there are no sequential operations in progress on the file.

See the u option of the resize command for a description of the potential problems that may occur.

s Item-IDs are case-sensitive.
t Disables logging updates to the transaction logger when logging (applicable if logging all files).
u (VME Only) Enables update protection on a file, even when global update protection is disabled. Cannot be used with the n option.
x Does not save file contents on a file-save. The file does not exist on restore.
y Does not save file contents on a file-save. An empty file of the same modulo exists after restore.
2 Base For the VME: Frame ID number of the associated file. The value assigned to the base of the file is reflected in the message that displays to the screen when the file is created.

For the FSI: Path to the file.

3 Modulo (VME Only) Number of contiguous frames in the primary file space of the file.

The value assigned to the modulo of the file is reflected in the message that displays to the screen when the file is created. A file cannot be created unless there is a large enough block of contiguous space to handle the requested file size.

4 Reserved
5 Retrieval Lock Controls access to dictionaries in the master dictionary.

In the dictionary, this attribute controls access to files. One of the user’s lock codes in attribute 6 of the users item in the users file must match the first lock code specified in this attribute to access the appropriate dictionary. Multiple lock codes are treated as multiple values and are separated by value marks within this attribute.

6 Update Lock Controls access to account master dictionaries or file dictionaries for update.

One of the user’s lock codes in attribute 6 of the users item in the users file must match the first lock code specified in this attribute to update the appropriate dictionary. Multiple lock codes are treated as multiple values and are separated by value marks.

7 Reserved
8 Correlative Contains processing codes as described in Processing codes. Processing codes allow a file to function as an application by pre- and post-processing data, and are applied when an item in this file is updated.

Unlike correlatives in attribute-defining items, file correlatives are not processed strictly in their order of appearance on attribute 8. File processing codes are processed in the order: Calls, Bridges, Indexes, Sub-Indexes.

9 Justification Contains codes used to specify justification for the item-ID:
l Left justification with word wrap on overflow. This option breaks on a word.
r Right justification with overflow to the left.
t Left justification with word wrap on overflow. This option word wraps, only breaking on a space.
u Left justification with overflow to the right.
w Processes through the Output Processor before listing.

Any valid Output Processor command can follow this code or be used in this attribute. This code only works for noncolumnar formats. Dot commands following the w are prefixed to the attribute. A second value may contain dot commands to be postfixed to the attribute for output processing.

ww Processes all attributes from the current attribute through the end of the item through the Output Processor before listing. This code works for noncolumnar formats only.

Dot commands following the ww are prefixed to the first attribute. Thus, they are executed before the output data. A second value may contain dot commands to be postfixed to the item for output processing.

x Used with l, r, or t to expand display field to fill the terminal or printer width as specified in the term command.
10 Column Width Number of character spaces used for displaying the item-ID on AQL reports.
11-12 Reserved
13 Reallocation Used in the save and restore process to redefine the value of the modulo of the associated file.
14 Input-Conversion Contains processing codes to be applied to data prior to entry.
15 Macro Contains the attribute names to be used as default input specifications for the Update Processor.

The attribute-defining items listed here are used as the default output list by AQL if no output-macro is specified. They are automatically listed when any AQL command that allows attribute-defining items is invoked with no attribute names are specified. Attribute names in the list are separated by spaces. If the specified attribute name does not exist in the dictionary, it is ignored.

The macro attribute can be MultiValued. When MultiValued macros are used, the macro to be used by AQL or the Update Processor is determined by calling a FlashBASIC program from the input-conversion of the D-pointer that assigns a value number to access(18). This value number corresponds to the value number of the macro to be used.

To automatically prompt for an item-ID, the id-prompt modifier or the i Update Processor option can be used.
16 Output-Macro If present, this becomes the default output-macro. Otherwise, attribute 15, if present, is used as the output-macro.

The purpose of having both the macro and the output-macro is to use different default attribute-defining items for AQL and the Update Processor.

17 Description Used for comments and descriptions concerning the function of the current file. A ? gets the help message from the item in the Update Processor.
18–19 Reserved
20 hotkey.all
21 hotkey1 Designates the subroutine to execute when the CTRL + X1 command is executed.
22 hotkey2 Designates the subroutine to execute when the CTRL + X2 command is executed.
23 hotkey3 Designates the subroutine to execute when the CTRL + X3 command is executed.
24 hotkey4 Designates the subroutine to execute when the CTRL + X4 command is executed.
25 hotkey5 Designates the subroutine to execute when the CTRL + X5 command is executed.
26 hotkey6 Designates the subroutine to execute when the CTRL + X6 command is executed.
27 hotkey7 Designates the subroutine to execute when the CTRL + X7 command is executed.
28 hotkey8 Designates the subroutine to execute when the CTRL + X8 command is executed.
29 hotkey9 Designates the subroutine to execute when the CTRL + X9 command is executed.
30 hotkey0 Designates the subroutine to execute when the CTRL + X0 command is executed.
31   Index attribute count.
32   Index attribute correlative.
33   Index attribute name.
34   Index attribute description.
35   Segment-base. Displays the beginning of the frame-id (fid) of each contiguous block (segment) in a file.
36   Segment-mod. Displays the size (modulo) of each contiguous block (segment) in a file.
37–99 Reserved
40   File compression property (get the field number corresponding to the compress trigger).
41-66 Reserved
67   The file number.
68   The post commit file name.

If parent was created as part of a transaction, the actual file name is stored in attribute 68. Otherwise, the actual file name is in attribute 2.

69   The file level (1= account level, 2= dict level, 3= data level).
70   The pre-commit file name with symbols resolved (resolved pre-commit name or resolved actual name).

This attribute when writing a d-pointer for the purpose if creating a file during a commit in a transaction.

71   The post-commit file name.
72   Frame size of the file (currently 4096 bytes).
73   D-pointer version number.
74   The account name.
75   The dict name.
76   The data name.
77   The old account name (used by rename-file).
78   The old dict name.
79   The old data name.
80   The parent file number.