compile insert DICT.EQUATES
*  D I C T . E Q U A T E S
*
*  Equates that define the structure of Advanced Revelation's Data Dictionary
*
*
EQUATE D.E.TYPE               TO 1      ;* Type of current field.
                                        ;* 'F' = Data Field
                                        ;* 'S' = Symbolic (formula in D.E.FORMULA)
                                        ;* 'G' = Group (group data in D.E.DISPLAY)

EQUATE D.E.FIELD.NO           TO 2      ;* The position of the data in the record

EQUATE D.E.DISPLAY            TO 3      ;* The Column Heading used by RLIST and other tools
                                        ;* For type 'G' dictionary records, this field
                                        ;* contains the group data.

EQUATE D.E.SM                 TO 4      ;* Single or Multivalue flag "S"ingle "M"ulti

EQUATE D.E.PART               TO 5      ;* Key part.  For multi-part keys, this field
                                        ;* specifies the part number (1, 2, 3, etc.)
                                        ;* For single-part key fields, this field should be 0.

EQUATE D.E.INDEX.FLAG         TO 6      ;* BTREE INDEX flag (boolean value).

EQUATE D.E.CONV               TO 7      ;* Contains the output conversion for data

EQUATE D.E.FORMULA            TO 8      ;* If the field type = "S" then this field will contain an rbasic formula

EQUATE D.E.JUST               TO 9      ;* Justification for displaying and sorting data.
                                        ;* 'L' = Left
                                        ;* 'R' = Right
                                        ;* 'C' = Centered
                                        ;* 'T' = Text
                                        ;* Text justification means no justification.

EQUATE D.E.LENGTH             TO 10     ;* Display length for this field.  Note that this length
                                        ;* is not necessarily the length of the data itself,
                                        ;* especially in bonded files.

EQUATE D.E.PATTERN            TO 11     ;* Input validation/conversion for this field

EQUATE D.E.GENERIC.TYPE       TO 12     ;* The Arev Generic Data type associated with this field

EQUATE D.E.SOURCE             TO 13     ;* This field is basically reserved for backwards compatibility
                                        ;* with REV/G.  Don't use it.

EQUATE D.E.DESC               TO 14     ;* Description of this field. Used for documentation.
                                        ;* Can be displayed as online help using an HD code.

EQUATE D.E.FOREIGN.TYPE       TO 15     ;* The data type name in the foreign environment

EQUATE D.E.FOREIGN.NAME       TO 16     ;* The field name in the foreign environment

EQUATE D.E.FOREIGN.MAP        TO 17     ;* For bonded files, this field uniquely specifies
                                        ;* a data mapping (that is, the algorithm used to
                                        ;* transfer data between the Advanced Revelation data type
                                        ;* and the foreign data type).

EQUATE D.E.FOREIGN.ATTR       TO 18     ;* This field contains any foreign field attributes
                                        ;* that a bonded dictionary field may have, separated
                                        ;* by value marks.

EQUATE D.E.PMD                TO 19     ;* This field is still being designed.

EQUATE D.E.NULL.TRUNC         TO 20     ;* This field allows the user to override the bond's
                                        ;* default handling of null values for this field.
                                        ;* If the bond cannot support null values, setting the first
                                        ;* value of this field to 'Y' allows nulls to be stored
                                        ;* without an error.  A 'N' or null first value allows the
                                        ;* default behaviour: if the bond cannot store nulls in this
                                        ;* field and a null is written, an I/O error will result.
                                        ;* If the first value is 'Y', the second value can be
                                        ;* used to specify what value the bond should store in
                                        ;* the field when a null is written.  The bond is not
                                        ;* required to support this latter ability.

EQUATE D.E.DEPENDENT          TO 21     ;* Reserved for indexing.

EQUATE D.E.XREF               TO 22     ;* If non-null, then there is a cross-reference index
                                        ;* on this field.  In that case, the value in D.E.XREF
                                        ;* is the name of the symbolic field that calculates the
                                        ;* cross-reference index.

EQUATE D.E.RELATIONAL         TO 23     ;* If non-null, then this field is used to update a relational
                                        ;* index in another file and contains the key to a record
                                        ;* in that other file.

EQUATE D.E.RELATED            TO 24     ;* For relational indexes, this field is updated to contain the
                                        ;* keys to the related records in the other file.

EQUATE D.E.PROTECT            TO 25     ;* 1 if this field is protected.  This flag is set by
                                        ;* relational indexing process.

EQUATE D.E.LOWERCASE          TO 26     ;* Controls how indexed fields are indexed:
                                        ;* 0 = convert to uppercase
                                        ;* 1 = maintain case supplied.

EQUATE D.E.COMPUTED           TO 27     ;* Reserved for indexing.

EQUATE D.E.MASTER.FLAG        TO 28     ;* For 'F'-type dictionary records, this flag
                                        ;* distinguishes synonym fields from the "real" field.
                                        ;* This flag is '0' for synonyms and '1' otherwise.

EQUATE D.E.DEFAULT            TO 29     ;* SQL default value for insertions.

EQUATE D.E.REFERENCE          TO 30     ;* SQL.  Indicates this column is a foreign key to the listed table(s).

EQUATE D.E.NULL               TO 31     ;* SQL.
                                        ;* 0 = column can store nulls.
                                        ;* 1 = column can't store nulls.
                                        ;* We're still figuring out whether this field and
                                        ;* D.E.NULL.TRUNC should be the same field.

EQUATE D.E.UNIQUE             TO 32     ;* SQL.  0=column may contain duplicate values. 1=column must contain unique values.

EQUATE D.E.LENGTH.LIMIT       TO 33     ;* SQL.  Length (in chars) of data.  Needs to be
                                        ;* integrated with bonding.

EQUATE D.E.IN.TRUNC           TO 39     ;* The first value in this field is either null, 0, or 1.
                                        ;* 0 or null means the default handling of input truncation:
                                        ;* if transferring a field into AREV would result in any loss of
                                        ;* information, an I/O error is returned.  1 allows the
                                        ;* the bond to truncate the data without returning an error.
                                        ;* In this case, either one or two values can follow the 1.
                                        ;* For character-based fields, a single value specifies what the
                                        ;* bond should read in when all information would be lost
                                        ;* (e.g., the field consisted of 3 field marks).  For numeric-
                                        ;* based fields, the second value is the replacement for
                                        ;* numeric underflow and the third value is the replacement for
                                        ;* overflow.

EQUATE D.E.OUT.TRUNC          TO 40     ;* Same as D.E.IN.TRUNC, except for output.

EQUATE D.E.USER1              TO 41     ;* This field is reserved for the application.
EQUATE D.E.USER2              TO 42     ;* ""
EQUATE D.E.USER3              TO 43     ;* ""
EQUATE D.E.USER4              TO 44     ;* ""
EQUATE D.E.USER5              TO 45     ;* ""

EQUATE D.E.OBJECT             TO 51     ;* This field contains binary data; object code for the current field

*
* Equates that define the structure of the special record "%FIELDS%" found in each Arev Dictionary
* All of these fields are associated multivalued fields.
*

EQUATE FIELDS.MAXFIELD$       TO 2      ;* The highest FMC number in the dictionary.
EQUATE FIELDS.NAME$           TO 3      ;* Contains field names.
EQUATE FIELDS.TYPE$           TO 4      ;* Contains D.E.TYPE values.
EQUATE FIELDS.FIELD.NO$       TO 5      ;* Contains D.E.FIELD.NO values.
EQUATE FIELDS.INDEX$          TO 6      ;* Contains D.E.INDEX.FLAG values.
EQUATE FIELDS.XREF$           TO 7      ;* Contains D.E.XREF values.
EQUATE FIELDS.PART$           TO 8      ;* Contains D.E.PART values.
EQUATE FIELDS.MVFLAG$         TO 9      ;* Contains D.E.SM values.
EQUATE FIELDS.JUST$           TO 10     ;* Contains D.E.JUST values.
EQUATE FIELDS.LENGTH$         TO 11     ;* Contains D.E.LENGTH values.
EQUATE FIELDS.CONV$           TO 12     ;* Contains D.E.CONV values.
EQUATE FIELDS.DEFAULT$        TO 13     ;* Contains D.E.DEFAULT values.
EQUATE FIELDS.MASTER.FLAG$    TO 14     ;* Contains D.E.MASTER.FLAG values.
* Source Date: 09:48:08  02 MAR 1993  Build ID: AREV*3.1.31  Level: 3.1
