1 /* BEGIN INCLUDE FILE mrds_attribute_list.incl.pl1 - - 81-01-14 Jim Gray */ 2 3 /* HISTORY: 4 5 81-01-14 Jim Gray : originally created for the dsl_$get_attribute_list interface. 6 7 */ 8 9 /* DESCRIPTION: 10 11 For a giving database opening via a model or submodel view, 12 this structure contains attribute information for a particular relation. 13 The number of attributes in this model/submodel view of the relation, 14 and the names in both the model and submodel are given 15 (these will be the same if opened with a model view) 16 The name of the domain for each attribute, and the descriptor 17 of the users view of the data type is given, as well as whether the attribute 18 can be used as an indexed attribute. 19 20 Access information is also returned for various versions of MRDS security, as follows: 21 22 system_acl entries refers strictly to "rew" type multics acl's. 23 for version 3 access info, attr system_acls are the same as the relation acls, 24 unless the attribute is inverted, in which case it is the acl 25 of the attribute as it appears under the invert_dir in the database. 26 27 mrds_access entries are version dependent, version 3 databases 28 with mrds_list/set_delete_acl commands used a mrds specific access 29 set of modes of retreive-store-modify-delete. 30 version 4 databases released in MR8 had no mrds specific 31 access, but used system acl's of "rew". 32 version 4 databases for MR9 mrds using submodel security have 33 mrds specific access mode of append/delete_tuple for relations, 34 and read/modify_attr for attributes. 35 36 effective_access entries use the same units as mrds_access. 37 it is the logical result of applying both mrds and system access, 38 and coming up with a user effective mode of access to the relation/attribute. 39 for version 3 databases, the effective access includes 40 in the relation effective access, the effect that access of inverted attributes 41 in the invert_dir may have. 42 43 */ 44 45 46 declare 1 mrds_attribute_list aligned based (mrds_attribute_list_ptr), 47 2 version fixed bin, /* version number of this structure */ 48 2 access_info_version fixed bin, /* version of mrds access modes 49 3 => version 3 db with r-s-m-d access, 50 4 => version 4 MR8 db with r-e-w access, 51 5 => version 4 MR9 db with relation a-d, and attr r-m modes 52 (submodel security) */ 53 2 num_attrs_in_view fixed bin, /* number of attributes in this view of the relation */ 54 2 submodel_view bit (1) unal, /* ON => the opening was via a submodel */ 55 2 mbz1 bit (35) unal, 56 2 attribute (mrds_attribute_list_num_attrs_init refer (mrds_attribute_list.num_attrs_in_view)), 57 3 model_name char (32), /* name of attribute in model */ 58 3 submodel_name char (64), /* alias name of attribute in submodel, else model name */ 59 3 domain_name char (32), /* name of the domain for this attribute */ 60 3 user_data_type bit (36), /* standard multics data descriptor for storage format 61 users view if -decode_dcl, else same as db descriptor */ 62 3 system_acl char (8) varying, /* the system access from r-e-w modes */ 63 3 mrds_access char (8) varying, /* version 3 => from r-s-m-d, 4 => from r-e-w, 5 => from r-m */ 64 3 effective_access char (8) varying, /* effect of system + mrds access, in mrds access units */ 65 3 indexed bit (1) unal, /* ON => this is a secondary index attribute, or a key head */ 66 3 mbz2 bit (35) unal ; 67 68 69 declare mrds_attribute_list_num_attrs_init fixed bin ; 70 71 declare mrds_attribute_list_ptr ptr ; 72 73 declare mrds_attribute_list_structure_version fixed bin init (1) int static options (constant) ; 74 75 /* END INCLUDE FILE mrds_attribute_list.incl.pl1 */