COMPILATION LISTING OF SEGMENT mrds_dsl_delete_se Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/01/88 1327.0 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 mrds_dsl_delete_se: proc (dbcb_ptr, caller, code); 19 20 /* 21* BEGIN_DESCRIPTION 22* This procedure clears selection expression values in the dbcb 23* when a new selection expression is specified. The select area (which 24* contains all allocations for the previous selection expression) 25* is initialized at this time. 26* END_DESCRIPTION 27**/ 28 29 /* HISTORY: 30* 31* Initially written by J. A. Weeldreyer -- March, 1976. 32* 33* Modified by J. A. Weeldreyer to free complex selection 34* expressions and arithmetic expressions -- April, 1977. 35* 36* Modified by Oris D. Friesen to free resultant info for tuples to 37* be stored -- Dec. 1977. 38* 39* Modified by J. A. Weeldreyer to correctly reset DBCB flags 40* pertaining to select. expr. being deleted -- March, 1978. 41* 42* Modified for MR7.0 by JA Weeldreyer -- November, 1978. 43* 44* Modified by Al Kepner, June 8, 1979 to use select_area. 45* 46* Modified by E Brunelle, 9/80 to free all temp segments for 47* dsl_search for the specific dbi 48* 49* Modified by Jim Gray - - 80-10-20, to change temp seg routine 50* name to mdbm_util_ standard 51* 52* Modified by Jim Gray - - 80-10-21, to call free_all_temp_segs 53* instead of relase_all_temp_segs, so that the overhead of 54* truncation will not be incurred. This is a tradeoff between 55* capacity and performance, since the temp segs will grow to the 56* largest usage of a single selection expression and remain that 57* size until close time. 58* 59* Modified by Jim Gray - - 80-10-24, to add resetting of new dbcb 60* bit new_selct_expr, so that mrds_dsl_search can properly manage 61* tid_list space usage. 62* 63* 81-04-25 Jim Gray : changed length delcarations of 64* mrds_data_$temp_seg_name, and dbi_pic to allow three digit 65* db_index values as part of incresing from 64 to 128. 66* 67* 81-07-06 Jim Gray : added increment of current select expr ID 68* number. 69* 70* 83-02-28 Davids: explicitly declared variables that were declared by 71* context of implication and removed declarations to variables that 72* were never referenced. 73* 74* 84-10-20 Hergert: Added check to make sure the right select_area_ptr 75* is going to be used. If we were called during a compile we leave it alone. 76* If not, its possible that the last operation was done using a cse so 77* we have to reset the select_area_ptr to the default one. Also cleaned up 78* duplicate initializations. 79**/ 80 81 /* INPUT CONDITIONS: 82* 83* dbcb_ptr points to a valid DBCB. 84**/ 85 86 /* OUTPUT DEFINITIONS: 87* 88* code = 0; if no errors are encountered. 89**/ 90 91 /* ***************************************************************************************************************** */ 92 93 dbcb.another_flag, /* reset s.e. flags */ 94 dbcb.current_flag, 95 dbcb.dup_retain, 96 dbcb.prev_select, 97 dbcb.possible_op, 98 dbcb.sel_clause, 99 dbcb.val_mod, 100 dbcb.val_del, 101 dbcb.val_rtrv, 102 dbcb.val_dtr = "0"b; 103 104 dbcb.ss_ptr, /* null out appropriate dbcb pointers */ 105 dbcb.range_ptr, 106 dbcb.select_ptr, 107 dbcb.ti_ptr, 108 dbcb.current_ptr, 109 dbcb.lit_ptr, 110 dbcb.so_ptr = null; 111 112 dbcb.new_select_expr = "1"b; /* tell search to start new tid_list management period */ 113 114 /* BEGIN CHANGE 81-07-06 ************************************************** */ 115 116 dbcb.last_s_e_id_num = 117 mod (dbcb.last_s_e_id_num + 1, 999999); /* increment the select expr ID for current S.E. */ 118 119 /* END CHANGE 81-07-06 ************************************************ */ 120 121 if dbcb.compiled_se_info_ptr ^= null then 122 if dbcb.select_area_ptr ^= dbcb.compiled_se_info_ptr -> compiled_se_info.real_select_area_ptr & 123 caller ^= mrds_data_$caller_compile then 124 dbcb.select_area_ptr = dbcb.compiled_se_info_ptr -> compiled_se_info.real_select_area_ptr; 125 126 call mrds_dsl_init_select_area (dbcb_ptr, icode); 127 if icode ^= 0 then call error (icode); 128 dbi_pic = dbcb.dbi; 129 130 call mu_temp_segments$free_all_temp_segments (mrds_data_$temp_seg_name || dbi_pic, icode); 131 if icode ^= 0 & icode ^= error_table_$argerr then call error(icode) ; /* no temp segs found */ 132 133 code = 0; /* indicate successful completion */ 134 135 exit: return; 136 137 error: proc (cd); 138 dcl cd fixed bin (35) parm; 139 code = cd; 140 go to exit; 141 end error; 142 1 1 /* BEGIN mrds_dbcb.incl.pl1 -- jaw, 11/7/78 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(85-11-17,Dupuis), approve(85-12-16,MCR7314), 1 7* audit(86-02-04,Brunelle), install(86-02-05,MR12.0-1013): 1 8* This entry is being made to cover the change made on 85-07-01 by Thanh 1 9* Nguyen. The scopes_changed flag was added to make checking for this 1 10* more efficient (mrds error list #137). 1 11* 2) change(86-06-10,Blair), approve(86-08-07,MCR7491), 1 12* audit(86-08-07,Gilcrease), install(86-08-15,MR12.0-1127): 1 13* Add a bit called dont_check_txn_id to indicate whether or not we should 1 14* care if multiple txns use the same selection_expression. (mrds #156) 1 15* 3) change(87-11-23,Hergert), approve(88-06-28,MCR7903), 1 16* audit(88-06-28,Dupuis), install(88-08-01,MR12.2-1073): 1 17* Added parser_work_area_ptr and mrds_se_info_ptr for new parser. 1 18* END HISTORY COMMENTS */ 1 19 1 20 1 21 /* WARNING 1 22* If the dbcb structure is changed then the mrds_data_ 1 23* item saved_res_version MUST be incremented to invalidate all 1 24* existing saved resultants 1 25**/ 1 26 1 27 /* HISTORY : 1 28* 1 29* modified by Jim Gray - - 80-10-24, to add new_select_expr bit for 1 30* tid_list management 1 31* 1 32* 81-1-9 Jim Gray : added like reference for ease in making the 1 33* phony resultant in mu_database_index, without having the area dcl 1 34* included. 1 35* 1 36* 81-06-17 Roger Lackey : added last_store_rel_name for use by 1 37* mrds_dsl_store 1 38* 1 39* 81-06-26 Roger Lackey : Added no_optimize and print_search_order 1 40* switches 1 41* 1 42* 81-07-06 Jim Gray : added identifier for the current selection 1 43* expression, so that relation statistics can be updated relative 1 44* to number of selection expressions seem. Also removed init for 1 45* last_store_rel_name, as this iw now properly done in 1 46* mrds_dsl_init_res. 1 47* 1 48* 81-07-17 Roger Lackey : added pred_ptr and unused_ptrs. 1 49* 1 50* 82-08-19 Mike Kubicar : added store_vector field. This is needed 1 51* for the conversion to the relation manager. 1 52* 1 53* 82-08-23 Davids: added the relmgr_entries and access_costs 1 54* substructures so that the entries and costs can change 1 55* depending on the type of database that is opened. 1 56* 1 57* 82-09-09 Mike Kubicar : added modify_vector field. This is needed 1 58* since modify uses a different vector type (general) than does store. 1 59* 1 60* 82-09-20 Davids: changed names of (store modify)_vector to 1 61* (store modify)_vector_ptr. Also (delete modify)_tuple_by_id to 1 62* (delete modify)_tuples_by_id. added the element cursor_storage_ptr 1 63* which should be inited to null and will be set by mu_cursor_manager_$get 1 64* during the first call. 1 65* 1 66* 82-09-21 Davids: renamed cursor_storage_ptr to cursor_ptrs_storage_ptr 1 67* since it deals with the pointers to the cursors and not the cursors 1 68* themelves and added the element cursor_storage_area_ptr which points 1 69* to the area where the cursors are kept. 1 70* 1 71* 82-09-22 Davids: renamed the transact_ctl_seg to transactions_needed. 1 72* the transact_ctl_seg always had a value of 0 and really didn't mean 1 73* anything. 1 74* 1 75* 82-09-22 Mike Kubicar : added create_relation, create_index and 1 76* destroy_relation_by_opening to relmgr_entries. They are needed 1 77* by mrds_dsl_define_temp_rel. 1 78* 1 79* 82-09-24 Donna Woodka : added put_tuple to relmgr_entries. It 1 80* is needed by mu_store. 1 81* 1 82* 82-11-12 Davids: changed the declaration of the access_costs from fixed 1 83* bin to float bin since the values are not integers. 1 84* 1 85* 83-02-02 Davids: added the dbc_uid element. This will allow mrds to make 1 86* sure that the dbc_ptr still points to the correct segment. Element was 1 87* added to the end of the structure to allow modules that don't use 1 88* the element to continue to reference the dbcb structure without recompiling. 1 89* 1 90* 83-02-25 Davids: added the concurrency_on and rollback_on elements. These 1 91* are needed so that temp rels can be created with the same file attributes 1 92* as the permanent relations. 1 93* 1 94* 83-05-02 Mike Kubicar : Deleted get_next_search_specification_ptr and 1 95* added the resultant_in_pdir bit. 1 96* 1 97* 83-05-18 Davids: reduced the number of reserved bits to 14 (from 15) and 1 98* added the res_already_made element. 1 99* 1 100* 83-05-24 Mike Kubicar : Updated the relation manager calling sequences. 1 101* 1 102* 83-08-03 Mike Kubicar : Added the element_id_list_segment_ptr and removed 1 103* one of the unused pointers. 1 104* 1 105* 83-09-20 Ron Harvey: Added relmgr_entries.get_population. 1 106* 1 107* 84-08-27 John Hergert: Created compiled_se_info_ptr from unused_ptrs(2) 1 108* leaving unused_ptrs(1). 1 109* 1 110* 85-01-15 Thanh Nguyen: Added the work_area_ptr and removed the last 1 111* unused_ptrs (1). 1 112* 1 113* 85-04-12 Thanh Nguyen: Added user_started_transaction and 1 114* non_shared_to_shared flags. Also added se_transaction_id and some more 1 115* spare ptrs, entries and reserved storages for future enhancement, since 1 116* we changed the saved_res_version from rslt0001 to rslt0002. 1 117* 1 118* 85-07-01 Thanh Nguyen: Added scopes_changed flag. This flag is set by 1 119* common routine of mrds_dsl_set_scope, reset by mrds_dsl_optimize and 1 120* mrds_dsl_gen_srch_prog when building of a new search_vars. 1 121**/ 1 122 1 123 1 124 /* this structure is based on the {unique_name}.mrds.dbcb segment 1 125* that constitutes the non-secure portion of the resultant model that is 1 126* created during the opening of a database. it contains variables that 1 127* are used during the runtime access of the database, and an area 1 128* for evaluation of requests. it points to four other 1 129* segments in the resultant model, {unique_name}.mrds.rdbi, the secure 1 130* portion of the resultant(see mdbm_rm_db_info.incl.pl1), 1 131* {unique_name}.mrds.select, an area for selection expression evaluation, 1 132* {unique_name}.mrds.curdat, and {unique_name}.mrds.stadat, two segments 1 133* used in the elimination of duplicate tuples during a retrieve. 1 134* the dbcb area holds the structure in mdbm_scope_info.incl.pl1 1 135* that is used when the database is using the file scope mechanism 1 136* for concurrency control over file readying. the segment overlayed via 1 137* mrds_dbc.incl.pl1 structure is pointed to and also handles concurrency control, 1 138* across database openings. the pointer to this dbcb structure is kept in a table 1 139* which associates database indexes(returned from a call to dsl_$open), with particular 1 140* opening instances of resultant models. (see mu_database_index routine) */ 1 141 1 142 dcl 1 dbcb aligned based (dbcb_ptr), /* DBCB -- non-secure portion */ 1 143 2 data like dbcb_data, 1 144 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (dbcb.static_area)))); 1 145 1 146 dcl dbcb_ptr ptr; 1 147 1 148 declare 1 dbcb_data based, /* info part of dbcb, separated out so that 1 149* like references can avoid getting the area declaration */ 1 150 2 rdbi_ptr ptr, /* pointer to write protected mdbm_util_ info. */ 1 151 2 range_ptr ptr, /* ptr to range structure, or null */ 1 152 2 select_ptr ptr, /* ptr to select list, or null */ 1 153 2 sv_ptr ptr, /* pointer to search variables */ 1 154 2 so_ptr ptr, /* pointer to search operators */ 1 155 2 ti_ptr ptr, /* pointer to tuple info */ 1 156 2 lit_ptr ptr, /* pointer to the literal area, or null */ 1 157 2 current_ptr ptr, /* ptr to select list resulting from -current clause */ 1 158 2 ss_ptr ptr, /* ptr to select sets block if not simple s.e. */ 1 159 2 retr_info_ptr ptr, /* ptr to retrieve info area */ 1 160 2 trel_info_ptr ptr, /* ptr to retrieve info area */ 1 161 2 sti_ptr ptr, /* pointer to store info */ 1 162 2 dbc_ptr ptr, /* pointer to the data base control segment */ 1 163 2 sfi_ptr ptr, /* points to head of scalar function list */ 1 164 2 scope_ptr ptr, /* points to array of scope tuples */ 1 165 2 select_area_ptr ptr, /* ptr to area for current selection expression allocations */ 1 166 2 current_data_ptr ptr, /* ptr to one of 2 segments used by mrds_dsl_retrieve 1 167* for eliminating duplicate tuples. */ 1 168 2 static_data_ptr ptr, /* ptr to one of 2 segments used by mrds_dsl_retrieve 1 169* for eliminating duplicate tuples. */ 1 170 2 store_area_ptr ptr, /* temp storage area for dsl_$store */ 1 171 2 retrieve_area_ptr ptr, /* temp storage for dsl_$retrieve */ 1 172 2 modify_area_ptr ptr, /* temp storage area for dsl_$modify */ 1 173 2 delete_area_ptr ptr, /* temp storage area for dsl_$delete */ 1 174 2 def_temp_rel_area_ptr ptr, /* temp storage area for dsl_$define_temp_rel */ 1 175 2 pred_ptr ptr, /* Pointer to pred_array */ 1 176 2 store_vector_ptr ptr, /* Vector structure used during store operations */ 1 177 2 modify_vector_ptr ptr, /* Used during modifies */ 1 178 2 element_id_list_segment_ptr ptr, /* Points to the segment used to hold element_id_list structures */ 1 179 2 compiled_se_info_ptr ptr, /* points to the segment containing all info on compiled sexs */ 1 180 2 work_area_ptr ptr, /* Work area for encode/decode value allocations in mu_retrieve */ 1 181 2 se_info_ptr ptr, /* Points to se_info struct. Primarily for error reports */ 1 182 2 parser_work_area_ptr ptr, /* work area for parser */ 1 183 2 reserved_ptrs (4) ptr, /* Reserved for future use */ 1 184 2 another_flag bit (1) unal, /* on if predicate was -another */ 1 185 2 current_flag bit (1) unal, /* on if predicate was -current clause */ 1 186 2 dbc_incr bit (1) unal, /* on if dbc open mode has been incremented for this user */ 1 187 2 delete_flag bit (1) unal, /* On if search was called from mrds_dsl_sec_delete */ 1 188 2 dup_retain bit (1) unaligned, /* On if dup tuples allowed for retrieval */ 1 189 2 prev_select bit (1) unal, /* on if prev. select block processed in this s.e. */ 1 190 2 possible_op bit (1) unal, /* on of arith op. allowed */ 1 191 2 sel_clause bit (1) unal, /* on if currently in select clause */ 1 192 2 dsm_sw bit (1) unal, /* on if data base was opened via data submodel */ 1 193 2 val_rtrv bit (1) unal, /* if s.e. valid for retrieve */ 1 194 2 val_mod bit (1) unal, /* for modify */ 1 195 2 val_del bit (1) unal, /* for delete */ 1 196 2 val_dtr bit (1) unal, /* for define temp rel */ 1 197 2 transactions_needed bit (1) unal, /* On => transaction must be started or in progress does 1 198* not imply that the database is of type page_file */ 1 199 2 open_mode bit (3) unal, /* 0=>unknown, 1=>r, 2=>u, 3=>er, 4=>eu, >4=>bad */ 1 200 2 new_select_expr bit (1) unal, /* on => starting a new tid list management period */ 1 201 2 no_optimize bit (1) unal, /* On => no optimize */ 1 202 2 print_search_order bit (1) unal, /* On => print the search order */ 1 203 2 resultant_in_pdir bit (1) unal, /* On => Temp segments are in the process dir */ 1 204 2 res_already_made bit (1) unal, /* On => resultant has been made based on a saved copy */ 1 205 2 user_started_transaction bit (1) unal, /* On => user already started his own transaction. */ 1 206 2 non_shared_to_shared bit (1) unal, /* On => user changed the scope from non shared to shared 1 207* inside a sequence of -another selection expression. */ 1 208 2 scopes_changed bit (1) unal, /* On => scopes had been changed by set_scopes or delete_scopes */ 1 209 2 dont_check_txn_id bit (1) unal, /* On => cpmd needs same selection exp across multiple txns */ 1 210 2 reserved bit (10) unal, /* reserved for future use */ 1 211 2 nseq_sch fixed bin (35), /* no. tuples located via sequential search */ 1 212 2 nind_sch fixed bin (35), /* no. tuples located via index search */ 1 213 2 nhash_sch fixed bin (35), /* no. tuples located via hash search */ 1 214 2 nlk_sch fixed bin (35), /* no tuples located via link search */ 1 215 2 cur_lit_offset fixed bin (35), /* current bit offset in literal string */ 1 216 2 dbi fixed bin (35), /* database index for this opening */ 1 217 2 last_s_e_id_num fixed bin (35), /* identifying number for last selection expression seen */ 1 218 2 se_transaction_id bit (36) aligned, /* transaction id from beginning of select expression */ 1 219 2 last_store_rel_name char (32), /* Name of relation last used for store */ 1 220 2 cursor_ptrs_storage_ptr ptr, /* pointer to space where cursor ptrs are stored */ 1 221 2 cursor_storage_area_ptr ptr, /* pointer to area where the cursors are kept */ 1 222 2 reserved_words (10) fixed bin (35), /* Reserved for future use */ 1 223 2 relmgr_entries, /* relation manager entries */ 1 224 3 open entry (char (*), char (*), bit (36) aligned, fixed bin (35)), 1 225 3 close entry (bit (36) aligned, fixed bin (35)), 1 226 3 create_cursor entry (bit (36) aligned, ptr, ptr, fixed bin (35)), 1 227 3 destroy_cursor entry (ptr, ptr, fixed bin (35)), 1 228 3 set_scope entry (bit (36) aligned, bit (2) aligned, bit (2) aligned, fixed bin (35)), 1 229 3 delete_tuples_by_id entry (ptr, ptr, fixed bin (35), fixed bin (35)), 1 230 3 modify_tuples_by_id entry (ptr, ptr, ptr, fixed bin (35), fixed bin (35)), 1 231 3 get_tuple_by_id entry (ptr, bit (36) aligned, ptr, ptr, ptr, fixed bin (35)), 1 232 3 get_tuples_by_spec entry (ptr, ptr, ptr, ptr, ptr, fixed bin (35)), 1 233 3 get_tuple_id entry (ptr, ptr, ptr, ptr, fixed bin (35)), 1 234 3 put_tuple entry (ptr, ptr, bit (36) aligned, fixed bin (35)), 1 235 3 get_count entry (ptr, ptr, fixed bin (35), fixed bin (35)), 1 236 3 get_duplicate_key_count entry (ptr, bit (36) aligned, fixed bin (17), fixed bin (35), fixed bin (35)), 1 237 3 get_population entry (ptr, fixed bin (35), fixed bin (35)), 1 238 3 create_relation entry (char (*), char (*), ptr, ptr, bit (36) aligned, bit (36) aligned, fixed bin (35)), 1 239 3 create_index entry (bit (36) aligned, ptr, bit (36) aligned, fixed bin (17), bit (36) aligned, fixed bin (35)), 1 240 3 destroy_relation_by_path entry (char (*), char (*), fixed bin (35)), 1 241 3 reserved_entries (5) entry (), 1 242 2 access_costs, /* access costs for permute */ 1 243 3 total_primary_key_cost float bin, 1 244 3 access_cost float bin, 1 245 3 access_overhead float bin, 1 246 3 us_access_cost float bin, 1 247 3 os_access_cost float bin, 1 248 2 dbc_uid bit (36) aligned, /* uid of the segment containing the dbc structure */ 1 249 2 concurrency_on bit (1) unal, /* "1"b implies dmfile concurrency is being used */ 1 250 2 rollback_on bit (1) unal; /* "1"b iomplies before journaling is to be done */ 1 251 1 252 /* END mrds_dbcb.incl.pl1 */ 1 253 1 254 143 144 2 1 /* Begin mrds_compiled_se_info.incl.pl1 -- John Hergert 09/01/84 2 2* Data structure to hold all pertinent information regarding compiled 2 3* selection expressions. Most of this information is put into the dbcb 2 4* variables having the same names when the compiled selection is referenced. 2 5**/ 2 6 2 7 2 8 /****^ HISTORY COMMENTS: 2 9* 1) change(87-01-22,Hergert), approve(88-05-19,MCR7903), 2 10* audit(88-06-28,Dupuis), install(88-08-01,MR12.2-1073): 2 11* Removed all references to var_exists_ptr. 2 12* END HISTORY COMMENTS */ 2 13 2 14 2 15 dcl 1 compiled_se_info aligned based (compiled_se_info_ptr), 2 16 2 real_select_area_ptr ptr, /* the real one assigned at open time */ 2 17 2 compile_area_ptr ptr, /* run time work area */ 2 18 2 temp_x_leaf_ptr ptr, /* temp place to hold ptr to pred_leaf_list of .x.'s */ 2 19 2 temp_temp_rel_list_ptr ptr, /* temporary holding spot for list of temp rels */ 2 20 2 number_of_compiled_se /* count of number of cse's weve had in this opening */ 2 21 fixed bin (35), 2 22 2 23 2 24 2 se_info (1 /* various peices of information needed to describe the se */ 2 25 refer (compiled_se_info.number_of_compiled_se)), 2 26 3 free bit(1) unal, /* indicates whether this se is being used or not */ 2 27 3 dup_retain bit(1) unal, /* se had a -dup in it */ 2 28 3 reserved bit(34) unal, /* a few spares */ 2 29 3 se_id_num fixed bin(35), /* the unique id num for the se */ 2 30 3 seg_ptr ptr, /* points to seg that has compiled se */ 2 31 3 saved_ptrs, /* these point to the various tables in the seg */ 2 32 5 select_area_ptr 2 33 ptr, 2 34 5 range_ptr ptr, 2 35 5 select_ptr ptr, 2 36 5 ti_ptr ptr, 2 37 5 ss_ptr ptr, 2 38 5 so_ptr ptr, 2 39 5 temp_rel_list_ptr ptr, 2 40 5 x_leaf_ptr ptr, /* ptr to list of ptrs to pred leaves for .x.'s */ 2 41 5 lit_ptr ptr, 2 42 5 reserved (5) ptr; 2 43 2 44 dcl compiled_se_info_ptr ptr; 2 45 2 46 2 47 2 48 /* info relating to the attributes and the literal for filling .X.'s */ 2 49 2 50 dcl 1 x_pred_leaf based (x_pred_leaf_ptr) aligned, 2 51 2 number_of_x fixed bin (35), /* number of .x. specified in this selection expr */ 2 52 2 lit_arg_ptr ptr, /* temp pointer to literal arg */ 2 53 2 lit_desc_ptr ptr, /* temp pointer to literal desc */ 2 54 2 info (mrds_data_$max_pred_nodes refer (x_pred_leaf.number_of_x)), /* this should be big enough */ 2 55 3 encode_proc bit unal, /* does this .x. have to be encoded */ 2 56 3 pad bit(35) unal, 2 57 3 encode_entry entry, /* encode proc */ 2 58 3 encode_in_desc_ptr ptr, /* ptr to input to encode descrptior */ 2 59 3 encode_out_desc_ptr ptr, /* ptr to encoded descrptior */ 2 60 3 encode_bit_len fixed bin(35), /* length in bits of encoded value */ 2 61 3 lit_val_len fixed bin(35), /* length of value in bits to go in lit pool */ 2 62 3 lit_val_ptr ptr; /* ptr to value in lit pool */ 2 63 2 64 2 65 dcl x_pred_leaf_ptr ptr; 2 66 2 67 2 68 /* array of names for the temp rels used in a cse */ 2 69 /* these are used to make sure the temp isnt redefined on us after the se is compiled */ 2 70 dcl 1 temp_rel_list based (trl_ptr) aligned, 2 71 2 number_of_temp_rels fixed bin(35), /* total number of temp rels in se including sets */ 2 72 2 temp_rel_info (mrds_data_$max_temp_rels) , 2 73 3 name char(32), /* model name */ 2 74 3 index fixed bin(35); /* temp rel index */ 2 75 2 76 2 77 dcl trl_ptr ptr; 145 146 147 dcl caller fixed bin(35); 148 dcl code fixed bin (35); /* Output -- return code */ 149 dcl icode fixed bin (35); /* internal error code */ 150 dcl dbi_pic pic "999"; 151 declare mrds_data_$temp_seg_name char (23) ext; /* common name for temp segments */ 152 dcl mrds_data_$caller_compile fixed bin (35) ext; 153 154 dcl (sys_info$max_seg_size, 155 error_table_$argerr) fixed bin (35) ext; 156 dcl mrds_dsl_init_select_area entry (ptr, fixed bin (35)); 157 dcl mu_temp_segments$free_all_temp_segments entry (char (*), bin (35)); 158 159 dcl (null, 160 addr, 161 fixed, 162 mod, 163 rel) builtin; 164 165 end mrds_dsl_delete_se; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/01/88 1314.7 mrds_dsl_delete_se.pl1 >special_ldd>install>MR12.2-1073>mrds_dsl_delete_se.pl1 143 1 08/01/88 1300.0 mrds_dbcb.incl.pl1 >special_ldd>install>MR12.2-1073>mrds_dbcb.incl.pl1 145 2 08/01/88 1300.0 mrds_compiled_se_info.incl.pl1 >special_ldd>install>MR12.2-1073>mrds_compiled_se_info.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. another_flag 106 based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* caller parameter fixed bin(35,0) dcl 147 ref 18 121 cd parameter fixed bin(35,0) dcl 138 ref 137 139 code parameter fixed bin(35,0) dcl 148 set ref 18 133* 139* compiled_se_info based structure level 1 dcl 2-15 compiled_se_info_ptr 66 based pointer level 3 dcl 1-142 ref 121 121 121 current_flag 106(01) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* current_ptr 16 based pointer level 3 dcl 1-142 set ref 104* data based structure level 2 dcl 1-142 dbcb based structure level 1 dcl 1-142 dbcb_data based structure level 1 unaligned dcl 1-148 dbcb_ptr parameter pointer dcl 1-146 set ref 18 93 93 93 93 93 93 93 93 93 93 104 104 104 104 104 104 104 112 116 116 121 121 121 121 121 126* 128 dbi 114 based fixed bin(35,0) level 3 dcl 1-142 ref 128 dbi_pic 000101 automatic picture(3) packed unaligned dcl 150 set ref 128* 130 dup_retain 106(04) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* error_table_$argerr 000014 external static fixed bin(35,0) dcl 154 ref 131 icode 000100 automatic fixed bin(35,0) dcl 149 set ref 126* 127 127* 130* 131 131 131* last_s_e_id_num 115 based fixed bin(35,0) level 3 dcl 1-142 set ref 116* 116 lit_ptr 14 based pointer level 3 dcl 1-142 set ref 104* mod builtin function dcl 159 ref 116 mrds_data_$caller_compile 000012 external static fixed bin(35,0) dcl 152 ref 121 mrds_data_$temp_seg_name 000010 external static char(23) packed unaligned dcl 151 ref 130 mrds_dsl_init_select_area 000016 constant entry external dcl 156 ref 126 mu_temp_segments$free_all_temp_segments 000020 constant entry external dcl 157 ref 130 new_select_expr 106(17) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 112* null builtin function dcl 159 ref 104 121 possible_op 106(06) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* prev_select 106(05) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* range_ptr 2 based pointer level 3 dcl 1-142 set ref 104* real_select_area_ptr based pointer level 2 dcl 2-15 ref 121 121 sel_clause 106(07) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* select_area_ptr 36 based pointer level 3 dcl 1-142 set ref 121 121* select_ptr 4 based pointer level 3 dcl 1-142 set ref 104* so_ptr 10 based pointer level 3 dcl 1-142 set ref 104* ss_ptr 20 based pointer level 3 dcl 1-142 set ref 104* ti_ptr 12 based pointer level 3 dcl 1-142 set ref 104* val_del 106(11) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* val_dtr 106(12) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* val_mod 106(10) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* val_rtrv 106(09) based bit(1) level 3 packed packed unaligned dcl 1-142 set ref 93* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addr builtin function dcl 159 compiled_se_info_ptr automatic pointer dcl 2-44 fixed builtin function dcl 159 rel builtin function dcl 159 sys_info$max_seg_size external static fixed bin(35,0) dcl 154 temp_rel_list based structure level 1 dcl 2-70 trl_ptr automatic pointer dcl 2-77 x_pred_leaf based structure level 1 dcl 2-50 x_pred_leaf_ptr automatic pointer dcl 2-65 NAMES DECLARED BY EXPLICIT CONTEXT. error 000207 constant entry internal dcl 137 ref 127 131 exit 000206 constant label dcl 135 ref 140 mrds_dsl_delete_se 000012 constant entry external dcl 18 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 344 366 234 354 Length 614 234 22 211 110 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mrds_dsl_delete_se 100 external procedure is an external procedure. error internal procedure shares stack frame of external procedure mrds_dsl_delete_se. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mrds_dsl_delete_se 000100 icode mrds_dsl_delete_se 000101 dbi_pic mrds_dsl_delete_se THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac mdfx3 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. mrds_dsl_init_select_area mu_temp_segments$free_all_temp_segments THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$argerr mrds_data_$caller_compile mrds_data_$temp_seg_name LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000006 93 000017 104 000046 112 000072 116 000076 121 000104 126 000122 127 000132 128 000136 130 000151 131 000175 133 000204 135 000206 137 000207 139 000211 140 000214 ----------------------------------------------------------- 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