1 /* BEGIN mdbm_rm_attr_info.incl.pl1 -- jaw, 11/16/78 */ 2 3 /* WARNING 4 If the rm_attr_info structure is changed then the mrds_data_ 5 item saved_res_version MUST be incremented to invalidate all 6 existing saved resultants 7 */ 8 9 /* 10 11 Modified by Jim Gray - - 80-11-05, to add mdbm_secured bit, so 12 that rm_rel_info does not have to be checked 13 14 81-05-28 Jim Gray : removed structure elements referring to 15 foreign keys. 16 17 82-08-19 D. Woodka : removed rm_attr_info.bit_offset for the DMS 18 conversion. 19 20 82-09-15 Davids: added the number_of_dups field. 21 22 82-09-20 Mike Kubicar : changed the index_id field to be bit (36) 23 aligned. This is to conform with the new definition in the database 24 model. Also removed the now useless field varying. 25 26 82-11-05 Davids: added the field model_defn_order and clarified the 27 comment for the field defn_order. 28 29 83-05-23 Mike Kubicar : changed number_of_dups to fixed bin (35) since 30 that's what relation manager returns. 31 32 */ 33 34 35 /* 36 this structure is allocated in the static area of 37 mdbm_rm_db_info.incl.pl1 once for each attribute per relation in 38 a readied file. it in turn points to 39 mdbm_rm_domain_info.incl.pl1 for the attributes domain. the 40 rm_attr_info is pointed to by mdbm_rm_rel_info.incl.pl1. all 41 structures are in the rm_db_info area. the attribute data 42 position within a tuple as stored in the data file are kept in 43 this resultant model of the attribute. 44 */ 45 46 dcl 1 rm_attr_info aligned based (rai_ptr), /* resultant attr. info */ 47 2 name char (32), /* from submodel */ 48 2 model_name char (32), /* from model */ 49 2 key_attr bit (1) unal, /* if key attribute */ 50 2 index_attr bit (1) unal, /* if secondary index */ 51 2 read_perm bit (1) unal, /* user has retr. permission */ 52 2 modify_perm bit (1) unal, /* user has modify permission */ 53 2 mdbm_secured bit (1) unal, /* on => database secured */ 54 2 reserved bit (30) unal, /* for future use */ 55 2 index_id bit (36) aligned, /* index id if index_attr */ 56 2 defn_order fixed bin, /* relative order in which attr is defined in the view */ 57 2 key_order fixed bin, /* relative order defined in prim. key */ 58 2 bit_length fixed bin (35), /* length if fixed, max. len. if var. */ 59 2 domain_ptr ptr, /* to domain info */ 60 2 number_of_dups fixed bin (35), /* if the attribute is indexed this will 61 be the number of duplicate values, exact 62 for a page_file database, an estimate for a vfile type */ 63 2 model_defn_order fixed bin; /* relative order in which attr is defined in the model */ 64 65 dcl rai_ptr ptr int automatic init (null ()); 66 67 /* END mdbm_rm_attr_info.incl.pl1 */ 68 69