COMPILATION LISTING OF SEGMENT vrm_delete_by_id Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1344.6 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 delete_tuples_by_id: proc (I_cursor_ptr, I_element_id_list_ptr, O_number_deleted, O_code); 8 9 /* BEGIN_DESCRIPTION 10* 11* Delete the tuples with the tuple ids supplied in the element_id_list. 12* All indexed attribute keys associated with the tuple will also be deleted. 13* The number of tuples deleted will be returned. 14* 15* END_DESCRIPTION */ 16 17 /* HISTORY 18* 19* 82-10-11 Roger Lackey : Initially written 20* 83-05-24 Roger Lackey: replaced call to record_status to get record_ptr 21* with call to vrmu_cv_vf_desc_to_ptr 22* 84-12-19 Thanh Nguyen : Added code to continue on the next tuple in case of 23* the tuple was just deleted by another parallel process in share mode (by 24* error code = mrds_error_$inconsistent_data_length) and stop the premature 25* tuple_not_found. 26**/ 27 28 /* delete_tuples_by_id: proc (I_cursor_ptr, I_element_id_list_ptr, O_number_deleted, O_code); */ 29 30 31 dcl I_element_id_list_ptr ptr parameter; /* Id_list pointer */ 32 dcl I_cursor_ptr ptr parameter; /* Cursor pointer */ 33 dcl O_number_deleted fixed bin (35) parameter; /* Number of tuples deleted */ 34 dcl O_code fixed bin (35) parameter; /* Error code */ 35 36 /* Init parameters */ 37 38 element_id_list_ptr = I_element_id_list_ptr; 39 vrm_cursor_ptr = I_cursor_ptr; 40 O_number_deleted = 0; 41 O_code = 0; 42 43 if vrm_cursor.switches.meter_sw then do; 44 45 call cpu_time_and_paging_ (pf_1, t1, pf_dummy); 46 vrm_meter_ptr = vrm_cursor.meter_ptr; 47 vrm_meter.last_call_stats = 0; 48 end; 49 50 file_locked = "0"b; 51 52 on cleanup call tidy_up; /* To besure file is unlocked */ 53 54 call init_delete; /* Setup needed structures */ 55 56 do x = 1 to element_id_list.number_of_elements; /* Delete a tuple at a time */ 57 58 tid_ptr = addr (element_id_list.id (x)); /* Get pointer to input tuple_id (tid) */ 59 vfd_ptr = addr (vfile_desc); 60 61 vfile_desc = 0; 62 vfd.comp_number = tid.comp_num; 63 vfd.comp_offset = tid.offset; 64 65 66 call delete_one_tuple (element_id_list.id (x), vfile_desc, vrm_cursor.iocb_ptr); 67 O_number_deleted = O_number_deleted + 1; 68 end; 69 70 exit: call tidy_up; 71 return; 72 73 /* * * * * * * * * * * * * * delete_one_tuple * * * * * * * * * * * */ 74 75 delete_one_tuple: proc (I_tid, I_vf_desc, I_iocb_ptr); 76 77 dcl I_tid bit (36) aligned parameter; /* Tuple id of tuple to be deleted */ 78 dcl I_vf_desc fixed bin (35); /* Vfile descriptor of tuple to be deleted */ 79 dcl I_iocb_ptr ptr parameter; /* iocb_ptr */ 80 81 if vrm_cursor.shared then do; 82 if vrm_cursor.opening_mode = KSQU then call lock; /* If sharing the file, lock the vfile while we delete everthing */ 83 end; 84 85 86 87 call vrmu_cv_vf_desc_to_ptr (I_iocb_ptr, I_vf_desc, tuple_ptr, rec_len, code); 88 if code = 0 then do; /* Located the record */ 89 90 bd_ptr = addr (tuple.data); 91 92 do i = 1 to ksl_number_of_values; /* Build the primary key from tuple attr values */ 93 94 95 vrm_attr_info_ptr = addr (vrm_rel_desc.attr (vrm_open_info.primary_key_info_ptr -> vrm_collection_info.attribute (i).attr_index)); /* to attr info */ 96 key_source_list.val_info.val_ptr (i) = addr (key_vals (i)); /* set source value ptr */ 97 key_source_list.val_info.desc_ptr (i) = addr (vrm_attr_info.descriptor); /* and ptr to descr. */ 98 if vrm_attr_info.varying then do; /* if var. attr. */ 99 offset = tuple.var_offsets (vrm_attr_info.bit_offset); /* bit offset */ 100 key_source_list.val_info.val_ptr (i) = addr (bit_data (offset)); 101 end; /* if varying */ 102 else 103 key_source_list.val_info.val_ptr (i) -> bit_str = 104 substr (data_str, vrm_attr_info.bit_offset, vrm_attr_info.bit_length); 105 106 end; /* Build primary key list */ 107 108 109 call vrmu_encode_key (key_source_list_ptr, pri_key, (0), code); 110 if code ^= 0 then call error (code); 111 112 /* Now finish up the header on the primary key */ 113 114 index_ptr = addrel (addr (pri_key), 1); /* past length word of varying string */ 115 index_value_length = 0; /* save warning flag */ 116 index.rel_id = vrm_rel_desc.rel_id; 117 index.index_id = "0"b; 118 119 if vrm_rel_desc.switches.indexed then do; /* Build list of keys to be delete */ 120 call vrmu_build_index_list (vrm_rel_desc_ptr, vrm_open_info_ptr, tuple_ptr, 121 change_bits_ptr, key_list_ptr, code); 122 123 if code = 0 then /* Delete the index keys for this record */ 124 call vrmu_delete_indexes (I_iocb_ptr, key_list_ptr, I_tid, code); 125 if code ^= 0 then call error (code); 126 end; 127 128 call iox_$seek_key (I_iocb_ptr, pri_key, rec_len, code); 129 if code = 0 then call iox_$delete_record (I_iocb_ptr, code); 130 if code ^= 0 then call error (code); 131 132 end; 133 else if code = mrds_error_$inconsistent_data_length 134 /* Tuple is just deleted by other parallel process in share 135* mode. So it is O.K. to set code to zero. */ 136 then code = 0; 137 138 if file_locked then call unlock; /* Unlock the file now that we are done */ 139 140 if code ^= 0 then do; 141 if code = error_table_$no_record then code = dm_error_$no_tuple_id; 142 call error (code); 143 end; 144 145 if vrm_cursor.switches.meter_sw then 146 vrm_meter.last_call_stats.number_tuples_deleted = 147 vrm_meter.last_call_stats.number_tuples_deleted + 1; 148 149 end delete_one_tuple; 150 151 /* * * * * * * * * * * * * * * init_delete * * * * * * * * * * * * * * * */ 152 153 init_delete: proc; 154 155 156 vrm_cursor.switches.shared = vrm_cursor.open_info_ptr -> vrm_open_info.switches.shared; 157 158 if element_id_list.version ^= ELEMENT_ID_LIST_VERSION_1 then 159 call error (error_table_$unimplemented_version); 160 161 vrm_open_info_ptr = vrm_cursor.open_info_ptr; 162 vrm_rel_desc_ptr = vrm_cursor.vrm_relation_desc_ptr; 163 164 vrm_com_ptr = vrm_open_info.com_ptr; 165 166 if vrm_com.mod_seg_ptr = null () then do; 167 call get_temp_segment_ ("vrm_delete", vrm_com.mod_seg_ptr, code); 168 if code ^= 0 then call error (code); 169 end; 170 171 /* Instead of allocating the structures are placed in the temp_seg and their 172* pointer calculated by the procedure so freeing does not have to be done */ 173 174 bit_len = 9 * vrm_rel_desc.maximum_data_length; 175 cb_number_of_change_bits = vrm_rel_desc.number_attrs; 176 ksl_number_of_values = vrm_open_info.primary_key_info_ptr -> 177 vrm_collection_info.number_of_attributes; 178 179 key_list_ptr = vrm_com.mod_seg_ptr; /* For any indexed attributers */ 180 key_list.number_of_keys = vrm_rel_desc.number_sec_indexes; 181 182 i = currentsize (key_list); 183 key_source_list_ptr = addrel (key_list_ptr, i + mod (i, 2)); /* For Primary key */ 184 key_source_list.number_of_values = ksl_number_of_values; 185 186 i = currentsize (key_source_list); 187 kv_ptr = addrel (key_source_list_ptr, i + mod (i, 2)); 188 189 i = currentsize (key_vals); 190 change_bits_ptr = addrel (kv_ptr, i + mod (i, 2)); 191 change_bits.number_of_change_bits = cb_number_of_change_bits; 192 193 if cb_number_of_change_bits <= 128 then 194 string (change_bits.position) = substr (all_ones, 1, cb_number_of_change_bits); 195 else string (change_bits.position) = substr (all_ones || all_ones, 1, cb_number_of_change_bits); 196 197 end init_delete; 198 199 /* * * * * * * * * * * * * * lock * * * * * * * * * * * * * * * * */ 200 201 202 lock: proc; 203 204 call iox_$control (iocb_ptr, "set_file_lock", addr (LOCK), lock_err_code); 205 if lock_err_code ^= 0 then call error (lock_err_code); 206 207 file_locked = "1"b; 208 209 if vrm_cursor.switches.meter_sw then 210 vrm_meter.last_call_stats.number_times_locked = 211 vrm_meter.last_call_stats.number_times_locked + 1; 212 213 214 end lock; 215 216 217 218 219 220 221 222 /* * * * * * * * * * * * * * unlock * * * * * * * * * * * * * * * * */ 223 224 unlock: proc; 225 226 if file_locked then do; 227 call iox_$control (iocb_ptr, "set_file_lock", addr (UNLOCK), lock_err_code); 228 if lock_err_code ^= 0 then call error (lock_err_code); 229 end; 230 231 file_locked = "0"b; 232 233 end unlock; 234 235 236 /* * * * * * * * * * * * * * * * * error * * * * * * * * * * * * * */ 237 238 error: proc (cd); 239 240 dcl cd fixed bin (35) parameter; /* Error code */ 241 242 O_code = cd; 243 goto exit; 244 245 end error; 246 247 /* * * * * * * * * * * * * * * * * tidy_up * * * * * * * * * * * * * */ 248 249 tidy_up: proc; 250 251 if file_locked then call iox_$control (iocb_ptr, "set_file_lock", addr (UNLOCK), code); 252 253 if vrm_cursor.switches.meter_sw then do; 254 call cpu_time_and_paging_ (pf_2, t2, pf_dummy); 255 vrm_meter.last_call_stats.last_time_of_stats = clock; 256 257 t3 = t2 - t1; 258 vrm_meter.last_call_stats.vcpu_time = divide (t3, 1000000, 63); 259 vrm_meter.last_call_stats.page_faults = pf_2 - pf_1; 260 vrm_meter.last_call_stats.number_times_used = 1; 261 vrm_meter.total_stats.last_time_of_stats = 0; 262 vrm_meter.total_stats = vrm_meter.total_stats + vrm_meter.last_call_stats; 263 264 end; 265 266 267 end tidy_up; 268 1 1 /* BEGIN INCLUDE vrm_collection_info.incl.pl1 */ 1 2 1 3 /* R. Harvey 82-11-02 */ 1 4 1 5 1 6 dcl 1 vrm_collection_info aligned based (vrm_collection_info_ptr), 1 7 /* Index collection description */ 1 8 2 record_id unal, 1 9 3 header bit (4) unal, /* collection type */ 1 10 3 id bit (8) unal, /* index id */ 1 11 2 unique bit (1) unal, 1 12 2 primary_key bit (1) unal, /* This is the MRDS primary key collection */ 1 13 2 pad bit (26) unal, 1 14 2 number_of_attributes 1 15 fixed bin, 1 16 2 attribute (vci_no_of_attributes refer (vrm_collection_info.number_of_attributes)), 1 17 3 attr_index fixed bin, /* Attribute number in relation description */ 1 18 3 key_offset fixed bin, /* Offset within key in bits */ 1 19 3 key_bit_len fixed bin ; /* Length of key in bits */ 1 20 1 21 dcl vrm_collection_info_ptr 1 22 ptr; 1 23 dcl vci_no_of_attributes fixed bin; 1 24 dcl vrm_collection_header_type 1 25 bit (4) unal int static options (constant) init ("1100"b); 1 26 dcl VRM_COLLECTION_KEY_HEAD char (16) int static options (constant) init ("@collection_info"); 1 27 1 28 /* END INCLUDE vrm_collection_info.incl.pl1 */ 269 270 2 1 /* BEGIN INCLUDE vrm_open_info.incl.pl1 */ 2 2 2 3 /* R. Harvey 82-11-02 2 4* 82-09-82 Roger Lackey: added iocb_list_ptr */ 2 5 2 6 dcl 1 vrm_open_info aligned based (vrm_open_info_ptr), /* Vfile relation description */ 2 7 2 version char (8), /* Version number of this structure */ 2 8 2 opening_id bit (36) aligned, /* Opening id associated with this desc */ 2 9 2 file_uid bit (36) aligned, /* Unique id of msf dir */ 2 10 2 number_of_openings fixed bin, /* Number of separate calls to vrm$open */ 2 11 2 switches, 2 12 3 shared bit (1) unal, /* Open relation in shared mode */ 2 13 3 pad bit (35) unal init ("0"b), /* Unused must be zero */ 2 14 2 database_dir_path char (168) varying, /* Absolute path of database */ 2 15 2 relation_name char (30) varying, /* Name of relation */ 2 16 2 relation_model_ptr pointer, /* Pointer to the relation_model in the relation itself or a temp seg */ 2 17 2 com_ptr pointer, /* Temp seg for cursors and scratch space */ 2 18 2 iocb_list_ptr pointer, /* Pointer to first vrm_iocb_list_block */ 2 19 2 primary_key_info_ptr pointer, /* Special case collection info ptr */ 2 20 2 number_of_index_collections fixed bin, /* Count of index collections (include primary key) */ 2 21 2 index_collection (voi_no_of_index_collections 2 22 refer (vrm_open_info.number_of_index_collections)), 2 23 3 id bit (36), 2 24 3 info_ptr ptr unal; /* Points to more detailed info */ 2 25 2 26 2 27 dcl VRM_OPEN_INFO_VERSION_1 char (8) int static options (constant) init (" 1"); 2 28 dcl vrm_open_info_ptr ptr; 2 29 dcl voi_no_of_index_collections fixed bin; 2 30 2 31 /* END INCLUDE vrm_open_info.incl.pl1 */ 271 272 3 1 /* BEGIN INCLUDE vrm_rel_desc.incl.pl1 */ 3 2 3 3 /* 83-05-26 Roger Lackey : Added vrm_attr_info.key_head bit for relation_cursors */ 3 4 3 5 dcl 1 vrm_rel_desc based (vrm_rel_desc_ptr), 3 6 2 record_id bit (12) unal, /* Distinguish us from tuples and collection records */ 3 7 2 version char (8), /* Version of this structure */ 3 8 2 file_id bit (7), /* Value of file id from model */ 3 9 2 rel_id bit (12), /* Relation id */ 3 10 2 switches, 3 11 3 MRDS_compatible bit (1) unal, /* For pre-relation_manager_ MRDS */ 3 12 3 stationary_records 3 13 bit (1) unal, /* On = stationary */ 3 14 3 indexed bit (1) unal, /* This relation has attributes with secondary indices */ 3 15 3 pad bit (33) unal, 3 16 2 var_offset fixed bin (35), /* Position of first varying attr */ 3 17 2 maximum_data_length 3 18 fixed bin (35), /* Maximum size of tuple in characters */ 3 19 2 number_primary_key_attrs 3 20 fixed bin, /* Number of attributes which make up the primary key */ 3 21 2 number_sec_indexes fixed bin, /* Number of attributes which have a secondary index */ 3 22 2 last_var_attr_no fixed bin, /* Attr index of last varying attribute */ 3 23 2 number_var_attrs fixed bin, /* Number of varying attributes */ 3 24 2 number_attrs fixed bin, /* Number of attribute in rel */ 3 25 2 attr (vrd_no_of_attrs /* Description of each attribute */ 3 26 refer (vrm_rel_desc.number_attrs)) aligned like vrm_attr_info; 3 27 3 28 dcl 1 vrm_attr_info based (vrm_attr_info_ptr), 3 29 /* Attribute specific info */ 3 30 2 name char (32), /* Name of the attribute */ 3 31 2 descriptor bit (36) aligned, /* domain descriptor */ 3 32 2 varying bit (1) unal, /* ON = This is a varying string */ 3 33 2 key_head bit (1) unal, /* ON = This attr can be a keyhead */ 3 34 2 primary_key_attr bit (1) unal, /* ON = This is a primary key attribute */ 3 35 2 pad bit (15) unal, /* unused */ 3 36 2 index_collextion_ix fixed bin (17) unal, /* Index into vrm_open_info.index_collection array if key_head is on */ 3 37 2 bit_length fixed bin (35), /* Maximum bit length of tuple */ 3 38 2 bit_offset fixed bin (35); /* Offset in tuple if fixed, index to offset in tuple if varying */ 3 39 3 40 3 41 dcl vrm_rel_desc_ptr pointer; 3 42 dcl vrd_no_of_attrs fixed bin; 3 43 dcl VRM_REL_DESC_RECORD_ID bit (12) unal int static options (constant) init ("100000000000"b); 3 44 dcl VRM_REL_DESC_VERSION_1 char (8) int static options (constant) init (" 1"); 3 45 dcl vrm_attr_info_ptr pointer; 3 46 dcl VRM_REL_DESC_KEY char (256) varying int static options (constant) init ("@relation_description"); 3 47 3 48 /* END INCLUDE vrm_rel_desc.incl.pl1 */ 273 274 4 1 /* BEGIN INCLUDE vrm_cursor.incl.pl1 */ 4 2 4 3 /* 83-05-26 Roger Lackey : Modifyed for relation cursors */ 4 4 4 5 dcl vrm_cursor_ptr pointer; /* Pointer to this structure */ 4 6 4 7 dcl 1 vrm_cursor aligned based (vrm_cursor_ptr), /* vfile relation manager cursor */ 4 8 2 opening_id bit (36) aligned, /* ID of opening associated with this cursor */ 4 9 2 debug_sw unal, /* Undefined MBZ */ 4 10 3 trace_open bit (1) unal, /* Show opening of iocb cursor creation time */ 4 11 3 pad bit (35) unal, 4 12 2 switches, 4 13 3 shared bit (1) unal, /* Other processes can use this relation */ 4 14 3 meter_sw bit (1) unal, /* On = Keep meters for this cursor */ 4 15 3 pad bit (7) unal, /* Unsed */ 4 16 2 opening_mode fixed bin, /* Opening mode for this cursor (8 = KSQR 10 = KSQU) */ 4 17 2 open_info_ptr pointer, /* Pointer to parent opening info structure */ 4 18 2 vrm_relation_desc_ptr pointer, /* Pointer to parent rel desc */ 4 19 2 iocb_ptr pointer, /* Pointer to attach iocb */ 4 20 2 secondary_iocb_ptr ptr, /* Second iocb_ptr used by vrmu_search */ 4 21 2 search_list_ptr ptr, /* Pointer to search_list */ 4 22 2 search_keys_ptr ptr, /* Pointer to search_keys array */ 4 23 2 meter_ptr pointer, /* Pointer metering str if metering is on or null */ 4 24 2 vrm_iocb_list_block_ptr pointer, /* Pointer to vrm_iocb_list_block that contains this cursors iocb */ 4 25 2 vrm_iocb_list_block_iocbs_ix fixed bin; /* Index into list_block.iocbs for location of iocb */ 4 26 4 27 4 28 /* END INCLUDE vrm_cursor.incl.pl1 */ 275 276 5 1 /* BEGIN INCLUDE vrm_com.incl.pl1 */ 5 2 5 3 /* Written 82-08-23 by R. Harvey */ 5 4 5 5 dcl vrm_com_ptr ptr; 5 6 dcl 1 vrm_com aligned based (vrm_com_ptr), 5 7 2 get_seg_ptr ptr, /* temp seg for retrieve routines */ 5 8 2 put_seg_ptr ptr, /* temp seg for store routines */ 5 9 2 mod_seg_ptr ptr, /* temp seg for modify routines */ 5 10 2 work_area_ptr ptr, /* freeing area for oid_table sections and rel_descriptors */ 5 11 2 highest_oid bit (36) aligned, /* highest valid oid */ 5 12 2 next_free_oid bit (36) aligned, /* offset of first in free chain */ 5 13 2 first_assigned_oid bit (36) aligned, /* offset of first in assigned chain */ 5 14 2 oid_area area (sys_info$max_seg_size - fixed (rel (addr (vrm_com.work_area_ptr)))); 5 15 5 16 /* END INCLUDE vrm_com.incl.pl1 */ 277 278 6 1 /* BEGIN vrm_change_bits.incl.pl1 -- R. Harvey */ 6 2 6 3 dcl 1 change_bits based (change_bits_ptr), 6 4 2 number_of_change_bits fixed bin (17), 6 5 2 position (cb_number_of_change_bits refer (change_bits.number_of_change_bits)) bit (1) unal; 6 6 6 7 dcl cb_number_of_change_bits fixed bin; 6 8 dcl change_bits_ptr ptr; 6 9 6 10 /* END vrm_change_bits.incl.pl1 */ 279 280 7 1 /* BEGIN vrm_key_list.incl.pl1 -- jaw, 1/17/79 */ 7 2 7 3 dcl 1 key_list aligned based (key_list_ptr), /* list of keys for add_key or delete_key */ 7 4 2 number_of_keys fixed bin, /* no. keys in list */ 7 5 2 key_info (kl_number_of_keys refer (key_list.number_of_keys)), 7 6 3 item_index fixed bin, /* attr. index or plink index */ 7 7 3 cand_key bit (1) unal, /* on if key is for candidate key */ 7 8 3 unique_val bit (1) unal, /* on if value must be unique */ 7 9 3 pad bit (34) unal, 7 10 3 vf_info, /* info for vfile control orders */ 7 11 4 input_key bit (1) unal, /* if key val supplied */ 7 12 4 input_desc bit (1) unal, /* if desc. supplied */ 7 13 4 reserved bit (34) unal, 7 14 4 vf_desc, /* vfile_ descriptor */ 7 15 5 comp_no fixed bin (17) unal, 7 16 5 offset bit (18) unal, 7 17 4 key char (256) var; 7 18 7 19 dcl key_list_ptr ptr; 7 20 dcl kl_number_of_keys fixed bin; 7 21 7 22 /* END vrm_key_list.incl.pl1 */ 281 282 8 1 /* BEGIN vrm_tuple.incl.pl1 -- jaw, 7/25/78 */ 8 2 8 3 /* 82-08-27 R. Harvey: taken from mdbm_tuple.incl.pl1 for vfile_relmgr_. 8 4* Modified dimension references to point to entries in vrm_rel_desc. */ 8 5 8 6 8 7 dcl 1 tuple aligned based (tuple_ptr), /* tuple format, all file types */ 8 8 2 rel_id bit (12) unal, /* relation id */ 8 9 2 attr_exists (vrm_rel_desc.number_attrs) bit (1) unal, /* existance flags */ 8 10 2 var_offsets (vrm_rel_desc.number_var_attrs) fixed bin (35) unal, /* offsets for variable attr.; stored as len|value */ 8 11 2 force_even_word (tuple_pad_length) fixed bin (71) aligned, /* pad to even word boundary */ 8 12 2 data char (vrm_rel_desc.maximum_data_length) unal; /* space for data */ 8 13 8 14 8 15 dcl tuple_ptr ptr; 8 16 dcl tuple_length fixed bin (21); /* byte count */ 8 17 8 18 declare tuple_pad_length fixed bin internal static init (0) ; /* minimum array size needed for even word padding */ 8 19 8 20 8 21 8 22 /* END vrm_tuple.incl.pl1 */ 8 23 283 284 9 1 /* BEGIN vrm_index.incl.pl1 -- jaw, 5/12/78 */ 9 2 9 3 /* Renamed 9/29/82 by R. Harvey */ 9 4 9 5 /* This structure defines the header that gets put onto the beginning of 9 6* each key stored into a database */ 9 7 9 8 9 9 dcl 1 index aligned based (index_ptr), /* layout of mdbm_index for all file types */ 9 10 2 rel_id bit (12) unal, /* relation id */ 9 11 2 index_id bit (8) unal, /* id of index within rel */ 9 12 2 mbz bit (7) unal, /* pad to char. */ 9 13 2 index_value char (index_value_length) unal; /* index value; max 253 chars */ 9 14 9 15 dcl index_ptr ptr; 9 16 dcl index_value_length fixed bin (35); 9 17 9 18 /* END vrm_index.incl.pl1 */ 9 19 285 286 10 1 /* BEGIN vrm_key_source_list.incl.pl1 -- jaw, 6/1/78 */ 10 2 10 3 /* HISTORY: 10 4* 10 5* 81-07-18 Jim Gray : added pointer to the rm_attr_info for display purposes 10 6* 10 7* 81-07-19 Jim Gray : added condition that will used against the 10 8* key value for display purposes 10 9* 82-09-29 R. Harvey: Stolen and modified for vfile_relmgr_ 10 10* 10 11**/ 10 12 10 13 10 14 dcl 1 key_source_list aligned based (key_source_list_ptr), /* source info for key encoding */ 10 15 2 number_of_values fixed bin, /* no. values in key */ 10 16 2 val_info (ksl_number_of_values refer (key_source_list.number_of_values)), 10 17 /* 3 condition_code fixed bin, /* encoding for condition used on this key attr */ 10 18 3 val_ptr ptr, /* to value */ 10 19 3 desc_ptr ptr; /* to descriptor */ 10 20 10 21 dcl key_source_list_ptr ptr; 10 22 dcl ksl_number_of_values fixed bin; 10 23 10 24 /* END vrm_key_source_list.incl.pl1 */ 10 25 287 288 11 1 /* BEGIN INCLUDE vrm_meter.incl.pl1 */ 11 2 11 3 dcl vrm_meter_ptr pointer; 11 4 11 5 dcl 1 vrm_meter aligned based (vrm_meter_ptr), 11 6 2 cursor_name char (32), /* Name of cursor */ 11 7 2 meter_start_time fixed bin (71), 11 8 2 switches, 11 9 3 metering bit (1) unal, /* On = meter being done */ 11 10 3 mbz bit (35) unal, 11 11 2 cursor_ptr ptr, /* Pointer to vrm_cursor structure */ 11 12 2 last_call_stats like statistics, 11 13 2 total_stats like statistics; 11 14 11 15 dcl 1 statistics based, /* Used in like above */ 11 16 2 last_time_of_stats fixed bin (71), /* Last clock value for stats taken */ 11 17 2 vcpu_time float bin (63), /* The vcpu for this cursor */ 11 18 2 page_faults fixed bin (70), /* Page faults for this cursor */ 11 19 2 number_times_locked fixed bin (70), /* Number of time a lock was set */ 11 20 2 number_times_used fixed bin (70), /* Number of time cursor was used */ 11 21 2 num_times_search_called fixed bin (70), /* Number of time vrm_search was called */ 11 22 2 records_searched fixed bin (70), /* The records searched */ 11 23 2 seek_heads fixed bin (70), /* The seek heads done for key searches */ 11 24 2 special_seek_heads fixed bin (70), /* The seek heads done for key searches */ 11 25 2 keys_read fixed bin (70), /* The keys read by key search */ 11 26 2 keys_compared fixed bin (70), /* The keys compared in key search */ 11 27 2 key_hits fixed bin (70), /* The key hits for key search */ 11 28 2 non_key_compares fixed bin (70), /* The non_key compares done for this cursor */ 11 29 2 non_key_hits fixed bin (70), /* The non_key hits for this cursor */ 11 30 2 upper_limit_found_count fixed bin (70), /* The number of times upper limit was exceeded */ 11 31 2 number_items_returned fixed bin (70), /* Number of tuples or tid returned */ 11 32 2 number_tuples_deleted fixed bin (70), /* Number of tuples deleted */ 11 33 2 number_tuples_modified fixed bin (70), /* Number of tuples modified */ 11 34 2 number_tuples_stored fixed bin (70); /* Number of tuples stored */ 11 35 11 36 /* END INCLUDE vrm_meter.incl.pl1 */ 289 290 12 1 /* BEGIN INCLUDE FILE - dm_element_id_list.incl.pl1 */ 12 2 12 3 /* DESCRIPTION: 12 4* The element_id_list structure contains an array of element 12 5* identifiers. These identifiers are used as tuple, record or 12 6* element identifiers. This structure is used across the relation_manager_, 12 7* record_manager_ and index_manager_ interfaces. At some time the 12 8* version should be changed to be char(8)aligned, when such a conversion 12 9* can be coordinated with the other structures used at these interfaces. 12 10**/ 12 11 12 12 /* HISTORY: 12 13*Written by Matthew Pierret, 06/06/82. 12 14*Modified: 12 15*12/16/82 by Roger Lackey: Changed number_of_elements to fixed bin (35). 12 16* Did not change version. 12 17*02/11/85 by Matthew Pierret: Added DESCRIPTION, Written by. 12 18**/ 12 19 12 20 /* format: style2,ind3 */ 12 21 dcl 1 element_id_list aligned based (element_id_list_ptr), 12 22 2 version fixed bin (35), 12 23 2 number_of_elements fixed bin (35), 12 24 2 id (eil_number_of_elements refer (element_id_list.number_of_elements)) bit (36) aligned; 12 25 12 26 dcl element_id_list_ptr ptr; 12 27 dcl eil_number_of_elements fixed bin (35); 12 28 dcl ELEMENT_ID_LIST_VERSION_1 12 29 init (1) fixed bin (35); 12 30 12 31 12 32 /* END INCLUDE FILE - dm_element_id_list.incl.pl1 */ 291 292 293 dcl 1 tid aligned based (tid_ptr), /* MRDS tuple id (tid) */ 294 2 non_std_desc bit (1) unal, /* Non-standard descriptor bit */ 295 2 temp bit (1) unal, /* On if temp relation */ 296 2 file_id bit (7) unal, /* File id from mrds db_model file_id_list */ 297 2 comp_num bit (10) unal, /* Component number */ 298 2 offset bit (17) unal; /* Offset within component */ 299 300 dcl tid_ptr pointer; 301 302 303 dcl 1 vfd aligned based (vfd_ptr), /* Vfile desc */ 304 2 pad_1 bit (8) unal, 305 2 comp_number bit (10) unal, /* Component number */ 306 2 comp_offset bit (17) unal, /* Offset with in component */ 307 2 pade_2 bit (1) unal; 308 309 dcl vfd_ptr pointer; /* Pointer to vfd structure */ 310 311 312 313 314 dcl addr builtin; 315 dcl addrel builtin; 316 dcl all_ones bit (128) int static options (constant) init ((128)"1"b); 317 dcl bd_ptr ptr; 318 dcl bit_data (bit_len) bit (1) unal based (bd_ptr); 319 dcl bit_len fixed bin (35); 320 dcl bit_str bit (vrm_attr_info.bit_length) based; 321 dcl cleanup condition; 322 dcl clock builtin; 323 dcl code fixed bin (35); 324 dcl cpu_time_and_paging_ entry (fixed bin, fixed bin (71), fixed bin); 325 dcl currentsize builtin; 326 dcl data_str bit (bit_len) based (bd_ptr); 327 dcl divide builtin; 328 dcl dm_error_$no_tuple_id fixed bin (35) ext static; 329 dcl error_table_$no_record fixed bin (35) ext static; 330 dcl error_table_$unimplemented_version fixed bin (35) ext static; 331 dcl file_locked bit (1); 332 dcl fixed builtin; 333 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 334 dcl i fixed bin; 335 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 336 dcl iox_$delete_record entry (ptr, fixed bin (35)); 337 dcl iox_$seek_key entry (ptr, char (256) var, fixed bin (21), fixed bin (35)); 338 dcl key_vals (ksl_number_of_values) char (vrm_data_$max_kattr_length) based (kv_ptr); /* to hold values so they are aligned */ 339 dcl KSQU fixed bin int static options (constant) init (10); 340 dcl kv_ptr ptr; /* ptr to key values */ 341 dcl lock_err_code fixed bin (35); 342 dcl LOCK bit (2) aligned int static options (constant) init ("10"b); 343 dcl vrm_data_$max_kattr_length ext fixed bin (35); 344 dcl mrds_error_$inconsistent_data_length fixed bin (35) ext static; 345 dcl mod builtin; 346 dcl null builtin; 347 dcl offset fixed bin (35); /* temp attr offset */ 348 dcl pf_1 fixed bin; 349 dcl pf_2 fixed bin; 350 dcl pf_dummy fixed bin; 351 dcl pri_key char (256) var; /* holds encoded primary key */ 352 dcl rel builtin; 353 dcl string builtin; 354 dcl substr builtin; 355 dcl sys_info$max_seg_size fixed bin (35) ext static; 356 dcl t1 fixed bin (71); 357 dcl t2 fixed bin (71); 358 dcl t3 float bin (63); 359 dcl UNLOCK bit (2) aligned int static options (constant) init ("00"b); 360 dcl vrmu_build_index_list entry (ptr, ptr, ptr, ptr, ptr, fixed bin (35)); 361 dcl vrmu_delete_indexes entry (ptr, ptr, bit (36) aligned, fixed bin (35)); 362 dcl vrmu_encode_key entry (ptr, char (256) varying, fixed bin (35), fixed bin (35)); 363 dcl x fixed bin (35); 364 dcl vfile_desc fixed bin (35) aligned; 365 dcl rec_len fixed bin (21); 366 dcl vrmu_cv_vf_desc_to_ptr entry (ptr, fixed bin (35), ptr, fixed bin (21), fixed bin (35)); 367 368 369 end delete_tuples_by_id; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 1341.8 vrm_delete_by_id.pl1 >spec>on>mrds.pbf-04/23/85>vrm_delete_by_id.pl1 269 1 10/14/83 1609.1 vrm_collection_info.incl.pl1 >ldd>include>vrm_collection_info.incl.pl1 271 2 10/14/83 1609.1 vrm_open_info.incl.pl1 >ldd>include>vrm_open_info.incl.pl1 273 3 10/14/83 1609.1 vrm_rel_desc.incl.pl1 >ldd>include>vrm_rel_desc.incl.pl1 275 4 10/14/83 1609.1 vrm_cursor.incl.pl1 >ldd>include>vrm_cursor.incl.pl1 277 5 10/14/83 1609.1 vrm_com.incl.pl1 >ldd>include>vrm_com.incl.pl1 279 6 10/14/83 1609.1 vrm_change_bits.incl.pl1 >ldd>include>vrm_change_bits.incl.pl1 281 7 10/14/83 1609.1 vrm_key_list.incl.pl1 >ldd>include>vrm_key_list.incl.pl1 283 8 10/14/83 1609.1 vrm_tuple.incl.pl1 >ldd>include>vrm_tuple.incl.pl1 285 9 10/14/83 1609.1 vrm_index.incl.pl1 >ldd>include>vrm_index.incl.pl1 287 10 10/14/83 1609.1 vrm_key_source_list.incl.pl1 >ldd>include>vrm_key_source_list.incl.pl1 289 11 10/14/83 1609.1 vrm_meter.incl.pl1 >ldd>include>vrm_meter.incl.pl1 291 12 03/06/85 1031.5 dm_element_id_list.incl.pl1 >ldd>include>dm_element_id_list.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ELEMENT_ID_LIST_VERSION_1 000136 automatic fixed bin(35,0) initial dcl 12-28 set ref 12-28* 158 I_cursor_ptr parameter pointer dcl 32 ref 7 39 I_element_id_list_ptr parameter pointer dcl 31 ref 7 38 I_iocb_ptr parameter pointer dcl 79 set ref 75 87* 123* 128* 129* I_tid parameter bit(36) dcl 77 set ref 75 123* I_vf_desc parameter fixed bin(35,0) dcl 78 set ref 75 87* KSQU constant fixed bin(17,0) initial dcl 339 ref 82 LOCK 000014 constant bit(2) initial dcl 342 set ref 204 204 O_code parameter fixed bin(35,0) dcl 34 set ref 7 41* 242* O_number_deleted parameter fixed bin(35,0) dcl 33 set ref 7 40* 67* 67 UNLOCK 000004 constant bit(2) initial dcl 359 set ref 227 227 251 251 addr builtin function dcl 314 ref 58 59 90 95 96 97 100 114 204 204 227 227 251 251 addrel builtin function dcl 315 ref 114 183 187 190 all_ones 001342 constant bit(128) initial unaligned dcl 316 ref 193 195 195 attr 14 based structure array level 2 dcl 3-5 set ref 95 attr_index 3 based fixed bin(17,0) array level 3 dcl 1-6 ref 95 attribute 3 based structure array level 2 dcl 1-6 bd_ptr 000144 automatic pointer dcl 317 set ref 90* 100 102 bit_data based bit(1) array unaligned dcl 318 set ref 100 bit_len 000146 automatic fixed bin(35,0) dcl 319 set ref 102 174* bit_length 12 based fixed bin(35,0) level 2 dcl 3-28 ref 102 102 bit_offset 13 based fixed bin(35,0) level 2 dcl 3-28 ref 99 102 bit_str based bit unaligned dcl 320 set ref 102* cb_number_of_change_bits 000112 automatic fixed bin(17,0) dcl 6-7 set ref 175* 191 193 193 195 cd parameter fixed bin(35,0) dcl 240 ref 238 242 change_bits based structure level 1 unaligned dcl 6-3 change_bits_ptr 000114 automatic pointer dcl 6-8 set ref 120* 190* 191 193 195 cleanup 000150 stack reference condition dcl 321 ref 52 clock builtin function dcl 322 ref 255 code 000156 automatic fixed bin(35,0) dcl 323 set ref 87* 88 109* 110 110* 120* 123 123* 125 125* 128* 129 129* 130 130* 133 133* 140 141 141* 142* 167* 168 168* 251* com_ptr 74 based pointer level 2 dcl 2-6 ref 164 comp_num 0(09) based bit(10) level 2 packed unaligned dcl 293 ref 62 comp_number 0(08) based bit(10) level 2 packed unaligned dcl 303 set ref 62* comp_offset 0(18) based bit(17) level 2 packed unaligned dcl 303 set ref 63* cpu_time_and_paging_ 000010 constant entry external dcl 324 ref 45 254 currentsize builtin function dcl 325 ref 182 186 189 data based char level 2 packed unaligned dcl 8-7 set ref 90 data_str based bit unaligned dcl 326 ref 102 desc_ptr 4 based pointer array level 3 dcl 10-14 set ref 97* descriptor 10 based bit(36) level 2 dcl 3-28 set ref 97 divide builtin function dcl 327 ref 258 dm_error_$no_tuple_id 000012 external static fixed bin(35,0) dcl 328 ref 141 element_id_list based structure level 1 dcl 12-21 element_id_list_ptr 000134 automatic pointer dcl 12-26 set ref 38* 56 58 66 158 error_table_$no_record 000014 external static fixed bin(35,0) dcl 329 ref 141 error_table_$unimplemented_version 000016 external static fixed bin(35,0) dcl 330 set ref 158* file_locked 000157 automatic bit(1) unaligned dcl 331 set ref 50* 138 207* 226 231* 251 get_temp_segment_ 000020 constant entry external dcl 333 ref 167 i 000160 automatic fixed bin(17,0) dcl 334 set ref 92* 95 96 96 97 100 102* 182* 183 183 186* 187 187 189* 190 190 id 2 based bit(36) array level 2 dcl 12-21 set ref 58 66* index based structure level 1 dcl 9-9 index_id 0(12) based bit(8) level 2 packed unaligned dcl 9-9 set ref 117* index_ptr 000122 automatic pointer dcl 9-15 set ref 114* 116 117 index_value_length 000124 automatic fixed bin(35,0) dcl 9-16 set ref 115* indexed 3(03) based bit(1) level 3 packed unaligned dcl 3-5 ref 119 iocb_ptr 10 based pointer level 2 dcl 4-7 set ref 66* 204* 227* 251* iox_$control 000022 constant entry external dcl 335 ref 204 227 251 iox_$delete_record 000024 constant entry external dcl 336 ref 129 iox_$seek_key 000026 constant entry external dcl 337 ref 128 key_list based structure level 1 dcl 7-3 set ref 182 key_list_ptr 000116 automatic pointer dcl 7-19 set ref 120* 123* 179* 180 182 183 key_source_list based structure level 1 dcl 10-14 set ref 186 key_source_list_ptr 000126 automatic pointer dcl 10-21 set ref 96 97 100 102 109* 183* 184 186 187 key_vals based char array unaligned dcl 338 set ref 96 189 ksl_number_of_values 000130 automatic fixed bin(17,0) dcl 10-22 set ref 92 176* 184 189 kv_ptr 000162 automatic pointer dcl 340 set ref 96 187* 189 190 last_call_stats 16 based structure level 2 dcl 11-5 set ref 47* 262 last_time_of_stats 16 based fixed bin(71,0) level 3 in structure "vrm_meter" dcl 11-5 in procedure "delete_tuples_by_id" set ref 255* last_time_of_stats 64 based fixed bin(71,0) level 3 in structure "vrm_meter" dcl 11-5 in procedure "delete_tuples_by_id" set ref 261* lock_err_code 000164 automatic fixed bin(35,0) dcl 341 set ref 204* 205 205* 227* 228 228* maximum_data_length 6 based fixed bin(35,0) level 2 dcl 3-5 ref 90 174 meter_ptr 20 based pointer level 2 dcl 4-7 ref 46 meter_sw 2(01) based bit(1) level 3 packed unaligned dcl 4-7 ref 43 145 209 253 mod builtin function dcl 345 ref 183 187 190 mod_seg_ptr 4 based pointer level 2 dcl 5-6 set ref 166 167* 179 mrds_error_$inconsistent_data_length 000032 external static fixed bin(35,0) dcl 344 ref 133 null builtin function dcl 346 ref 166 number_attrs 13 based fixed bin(17,0) level 2 dcl 3-5 ref 90 99 175 number_of_attributes 2 based fixed bin(17,0) level 2 dcl 1-6 ref 176 number_of_change_bits based fixed bin(17,0) level 2 dcl 6-3 set ref 191* 193 195 number_of_elements 1 based fixed bin(35,0) level 2 dcl 12-21 ref 56 number_of_keys based fixed bin(17,0) level 2 dcl 7-3 set ref 180* 182 number_of_values based fixed bin(17,0) level 2 dcl 10-14 set ref 184* 186 number_sec_indexes 10 based fixed bin(17,0) level 2 dcl 3-5 ref 180 number_times_locked 24 based fixed bin(70,0) level 3 dcl 11-5 set ref 209* 209 number_times_used 26 based fixed bin(70,0) level 3 dcl 11-5 set ref 260* number_tuples_deleted 56 based fixed bin(70,0) level 3 dcl 11-5 set ref 145* 145 number_var_attrs 12 based fixed bin(17,0) level 2 dcl 3-5 ref 90 offset 0(19) based bit(17) level 2 in structure "tid" packed unaligned dcl 293 in procedure "delete_tuples_by_id" ref 63 offset 000165 automatic fixed bin(35,0) dcl 347 in procedure "delete_tuples_by_id" set ref 99* 100 open_info_ptr 4 based pointer level 2 dcl 4-7 ref 156 161 opening_mode 3 based fixed bin(17,0) level 2 dcl 4-7 ref 82 page_faults 22 based fixed bin(70,0) level 3 dcl 11-5 set ref 259* pf_1 000166 automatic fixed bin(17,0) dcl 348 set ref 45* 259 pf_2 000167 automatic fixed bin(17,0) dcl 349 set ref 254* 259 pf_dummy 000170 automatic fixed bin(17,0) dcl 350 set ref 45* 254* position 1 based bit(1) array level 2 packed unaligned dcl 6-3 set ref 193* 195* pri_key 000171 automatic varying char(256) dcl 351 set ref 109* 114 128* primary_key_info_ptr 100 based pointer level 2 dcl 2-6 ref 95 176 rec_len 000302 automatic fixed bin(21,0) dcl 365 set ref 87* 128* rel_id 2(25) based bit(12) level 2 in structure "vrm_rel_desc" packed unaligned dcl 3-5 in procedure "delete_tuples_by_id" ref 116 rel_id based bit(12) level 2 in structure "index" packed unaligned dcl 9-9 in procedure "delete_tuples_by_id" set ref 116* shared 2 based bit(1) level 3 in structure "vrm_cursor" packed unaligned dcl 4-7 in procedure "delete_tuples_by_id" set ref 81 156* shared 5 based bit(1) level 3 in structure "vrm_open_info" packed unaligned dcl 2-6 in procedure "delete_tuples_by_id" ref 156 statistics based structure level 1 unaligned dcl 11-15 string builtin function dcl 353 set ref 193* 195* substr builtin function dcl 354 ref 102 193 195 switches 3(01) based structure level 2 in structure "vrm_rel_desc" packed unaligned dcl 3-5 in procedure "delete_tuples_by_id" switches 2 based structure level 2 in structure "vrm_cursor" dcl 4-7 in procedure "delete_tuples_by_id" switches 5 based structure level 2 in structure "vrm_open_info" dcl 2-6 in procedure "delete_tuples_by_id" t1 000272 automatic fixed bin(71,0) dcl 356 set ref 45* 257 t2 000274 automatic fixed bin(71,0) dcl 357 set ref 254* 257 t3 000276 automatic float bin(63) dcl 358 set ref 257* 258 tid based structure level 1 dcl 293 tid_ptr 000140 automatic pointer dcl 300 set ref 58* 62 63 total_stats 64 based structure level 2 dcl 11-5 set ref 262* 262 tuple based structure level 1 dcl 8-7 tuple_pad_length constant fixed bin(17,0) initial dcl 8-18 ref 90 tuple_ptr 000120 automatic pointer dcl 8-15 set ref 87* 90 99 120* val_info 2 based structure array level 2 dcl 10-14 val_ptr 2 based pointer array level 3 dcl 10-14 set ref 96* 100* 102 var_offsets based fixed bin(35,0) array level 2 packed unaligned dcl 8-7 ref 99 varying 11 based bit(1) level 2 packed unaligned dcl 3-28 ref 98 vcpu_time 20 based float bin(63) level 3 dcl 11-5 set ref 258* version based fixed bin(35,0) level 2 dcl 12-21 ref 158 vfd based structure level 1 dcl 303 vfd_ptr 000142 automatic pointer dcl 309 set ref 59* 62 63 vfile_desc 000301 automatic fixed bin(35,0) dcl 364 set ref 59 61* 66* vrm_attr_info based structure level 1 unaligned dcl 3-28 vrm_attr_info_ptr 000104 automatic pointer dcl 3-45 set ref 95* 97 98 99 102 102 102 vrm_collection_info based structure level 1 dcl 1-6 vrm_com based structure level 1 dcl 5-6 vrm_com_ptr 000110 automatic pointer dcl 5-5 set ref 164* 166 167 179 vrm_cursor based structure level 1 dcl 4-7 vrm_cursor_ptr 000106 automatic pointer dcl 4-5 set ref 39* 43 46 66 81 82 145 156 156 161 162 204 209 227 251 253 vrm_data_$max_kattr_length 000030 external static fixed bin(35,0) dcl 343 ref 96 96 96 189 189 vrm_meter based structure level 1 dcl 11-5 vrm_meter_ptr 000132 automatic pointer dcl 11-3 set ref 46* 47 145 145 209 209 255 258 259 260 261 262 262 262 vrm_open_info based structure level 1 dcl 2-6 vrm_open_info_ptr 000100 automatic pointer dcl 2-28 set ref 95 120* 161* 164 176 vrm_rel_desc based structure level 1 unaligned dcl 3-5 vrm_rel_desc_ptr 000102 automatic pointer dcl 3-41 set ref 90 90 90 95 99 116 119 120* 162* 174 175 180 vrm_relation_desc_ptr 6 based pointer level 2 dcl 4-7 ref 162 vrmu_build_index_list 000034 constant entry external dcl 360 ref 120 vrmu_cv_vf_desc_to_ptr 000042 constant entry external dcl 366 ref 87 vrmu_delete_indexes 000036 constant entry external dcl 361 ref 123 vrmu_encode_key 000040 constant entry external dcl 362 ref 109 x 000300 automatic fixed bin(35,0) dcl 363 set ref 56* 58 66* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VRM_COLLECTION_KEY_HEAD internal static char(16) initial unaligned dcl 1-26 VRM_OPEN_INFO_VERSION_1 internal static char(8) initial unaligned dcl 2-27 VRM_REL_DESC_KEY internal static varying char(256) initial dcl 3-46 VRM_REL_DESC_RECORD_ID internal static bit(12) initial unaligned dcl 3-43 VRM_REL_DESC_VERSION_1 internal static char(8) initial unaligned dcl 3-44 eil_number_of_elements automatic fixed bin(35,0) dcl 12-27 fixed builtin function dcl 332 kl_number_of_keys automatic fixed bin(17,0) dcl 7-20 rel builtin function dcl 352 sys_info$max_seg_size external static fixed bin(35,0) dcl 355 tuple_length automatic fixed bin(21,0) dcl 8-16 vci_no_of_attributes automatic fixed bin(17,0) dcl 1-23 voi_no_of_index_collections automatic fixed bin(17,0) dcl 2-29 vrd_no_of_attrs automatic fixed bin(17,0) dcl 3-42 vrm_collection_header_type internal static bit(4) initial unaligned dcl 1-24 vrm_collection_info_ptr automatic pointer dcl 1-21 NAMES DECLARED BY EXPLICIT CONTEXT. delete_one_tuple 000234 constant entry internal dcl 75 ref 66 delete_tuples_by_id 000036 constant entry external dcl 7 error 001116 constant entry internal dcl 238 ref 110 125 130 142 158 168 205 228 exit 000227 constant label dcl 70 ref 243 init_delete 000604 constant entry internal dcl 153 ref 54 lock 000773 constant entry internal dcl 202 ref 82 tidy_up 001125 constant entry internal dcl 249 ref 52 70 unlock 001050 constant entry internal dcl 224 ref 138 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1610 1654 1347 1620 Length 2312 1347 44 422 240 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME delete_tuples_by_id 344 external procedure is an external procedure. on unit on line 52 64 on unit delete_one_tuple internal procedure shares stack frame of external procedure delete_tuples_by_id. init_delete internal procedure shares stack frame of external procedure delete_tuples_by_id. lock internal procedure shares stack frame of external procedure delete_tuples_by_id. unlock internal procedure shares stack frame of external procedure delete_tuples_by_id. error internal procedure shares stack frame of external procedure delete_tuples_by_id. tidy_up 88 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME delete_tuples_by_id 000100 vrm_open_info_ptr delete_tuples_by_id 000102 vrm_rel_desc_ptr delete_tuples_by_id 000104 vrm_attr_info_ptr delete_tuples_by_id 000106 vrm_cursor_ptr delete_tuples_by_id 000110 vrm_com_ptr delete_tuples_by_id 000112 cb_number_of_change_bits delete_tuples_by_id 000114 change_bits_ptr delete_tuples_by_id 000116 key_list_ptr delete_tuples_by_id 000120 tuple_ptr delete_tuples_by_id 000122 index_ptr delete_tuples_by_id 000124 index_value_length delete_tuples_by_id 000126 key_source_list_ptr delete_tuples_by_id 000130 ksl_number_of_values delete_tuples_by_id 000132 vrm_meter_ptr delete_tuples_by_id 000134 element_id_list_ptr delete_tuples_by_id 000136 ELEMENT_ID_LIST_VERSION_1 delete_tuples_by_id 000140 tid_ptr delete_tuples_by_id 000142 vfd_ptr delete_tuples_by_id 000144 bd_ptr delete_tuples_by_id 000146 bit_len delete_tuples_by_id 000156 code delete_tuples_by_id 000157 file_locked delete_tuples_by_id 000160 i delete_tuples_by_id 000162 kv_ptr delete_tuples_by_id 000164 lock_err_code delete_tuples_by_id 000165 offset delete_tuples_by_id 000166 pf_1 delete_tuples_by_id 000167 pf_2 delete_tuples_by_id 000170 pf_dummy delete_tuples_by_id 000171 pri_key delete_tuples_by_id 000272 t1 delete_tuples_by_id 000274 t2 delete_tuples_by_id 000276 t3 delete_tuples_by_id 000300 x delete_tuples_by_id 000301 vfile_desc delete_tuples_by_id 000302 rec_len delete_tuples_by_id THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return mod_fx1 enable ext_entry int_entry clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cpu_time_and_paging_ get_temp_segment_ iox_$control iox_$delete_record iox_$seek_key vrmu_build_index_list vrmu_cv_vf_desc_to_ptr vrmu_delete_indexes vrmu_encode_key THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$no_tuple_id error_table_$no_record error_table_$unimplemented_version mrds_error_$inconsistent_data_length vrm_data_$max_kattr_length LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000031 12 28 000043 38 000045 39 000051 40 000054 41 000055 43 000056 45 000061 46 000073 47 000076 50 000124 52 000125 54 000147 56 000150 58 000161 59 000164 61 000166 62 000167 63 000174 66 000201 67 000215 68 000222 70 000227 71 000233 75 000234 81 000236 82 000242 87 000246 88 000266 90 000270 92 000310 95 000317 96 000325 97 000340 98 000342 99 000346 100 000364 101 000372 102 000373 106 000403 109 000405 110 000423 114 000427 115 000433 116 000434 117 000441 119 000443 120 000446 123 000470 125 000510 128 000514 129 000532 130 000546 132 000552 133 000553 138 000557 140 000562 141 000564 142 000571 145 000573 149 000603 153 000604 156 000605 158 000613 161 000625 162 000630 164 000633 166 000636 167 000642 168 000667 174 000673 175 000677 176 000701 179 000705 180 000710 182 000713 183 000716 184 000724 186 000726 187 000731 189 000736 190 000744 191 000751 193 000753 195 000761 197 000772 202 000773 204 000774 205 001031 207 001035 209 001037 214 001047 224 001050 226 001051 227 001053 228 001110 231 001114 233 001115 238 001116 242 001120 243 001123 249 001124 251 001132 253 001171 254 001176 255 001211 257 001215 258 001222 259 001225 260 001232 261 001234 262 001236 267 001326 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved