File-Defining Items

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

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.

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 fileoffiles 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 you are 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 in order 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 in order 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, and 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-39

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.

 

NOTE

For D-pointer Caching: Whenever a change is made to a D-pointer, you must log off and then back on again to the line for that file.

 

WARNING

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

See Also

access() Function, Account, account-maint Command, account-save Command, Attribute, b (Bridge) Processing Code, call Processing Code, callx (Write Trigger) Processing Code, check-dx Command, create-account Command, D-Pointer, d/code, f-resize Command, f/syn, FDI, File Control Block, File Reference, fileflgs, Hashing, Hot Key Commands, item Command, Item-ID, itmflgs, lfd Macro, list-item Command, Pointer Item, Subvalue, ulk, Value