COMPILATION LISTING OF SEGMENT vrmu_validate_spec Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/21/84 1439.4 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 vrmu_validate_spec: proc (I_vrm_cursor_ptr, I_spec_ptr, O_num_key_constraints, O_code); 8 9 /* 10*. BEGIN_DESCRIPTION 11* 12*The purpose of this module is to validate if the fields supplied in the 13*search_specification are with the range of attributes for this relation. 14* 15*And to count the number of key_constraint fields used 16* 17*. END_DESCRIPTION 18**/ 19 20 21 /* HISTORY 22*82-08-30 Roger Lackey : Initially written. 23* 24**/ 25 26 /* PARAMETERS */ 27 28 dcl I_vrm_cursor_ptr ptr parameter; /* Pointer to vrm_cursor */ 29 dcl I_spec_ptr ptr parameter; /* Pointer to dm_specification supplied */ 30 dcl O_num_key_constraints fixed bin parameter; /* Number of constraints against the index for cursor supplied */ 31 dcl O_code fixed bin (35) parameter; /* Error_code */ 32 33 /* vrmu_validate_spec: proc (I_vrm_cursor_ptr, I_spec_ptr, O_num_key_constraints, O_code); */ 34 35 vrm_cursor_ptr = I_vrm_cursor_ptr; 36 relation_search_specification_ptr = I_spec_ptr; 37 O_num_key_constraints = 0; 38 O_code = 0; 39 rss_maximum_number_of_constraints = 0; /* Just to keep compile happy */ 40 vrm_rel_desc_ptr = vrm_cursor.vrm_relation_desc_ptr; 41 vrm_open_info_ptr = vrm_cursor.open_info_ptr; 42 num_key_constraints = 0; 43 44 if relation_search_specification_ptr ^= null () then do; 45 46 if relation_search_specification.head.version ^= SPECIFICATION_VERSION_4 then do; 47 O_code = dm_error_$unimplemented_spec_version; 48 return; 49 end; 50 51 if relation_search_specification.head.type ^= ABSOLUTE_RELATION_SEARCH_SPECIFICATION_TYPE & 52 relation_search_specification.head.type ^= RELATIVE_RELATION_SEARCH_SPECIFICATION_TYPE then do; 53 O_code = dm_error_$unsup_search_spec_head_type; 54 return; 55 end; 56 57 58 59 if relation_search_specification.range.type ^= ALL_RANGE_TYPE & 60 relation_search_specification.range.type ^= LOW_RANGE_TYPE then do; 61 O_code = dm_error_$unsup_search_spec_range_type; 62 return; 63 end; 64 65 do ag = 1 to relation_search_specification.number_of_and_groups while (O_code = 0); 66 67 if ^relation_search_specification.and_group (ag).collection_id_supplied then do; 68 call sub_err_ (mrds_error_$internal_error, 69 "vrmu_validate_spec", ACTION_CANT_RESTART, null, 0, 70 "A relation_search_specification has been found without a collection_id supplied."); 71 end; 72 73 do c = 1 to relation_search_specification.and_group (ag).number_of_constraints while (O_code = 0); 74 75 if relation_search_specification.and_group (ag).constraint (c).field_id < 1 | 76 relation_search_specification.and_group (ag).constraint (c).field_id > vrm_rel_desc.number_attrs 77 then O_code = dm_error_$invalid_specification_field; 78 79 else if relation_search_specification.and_group (ag).constraint (c).value_ptr ^= null then do; 80 opr = relation_search_specification.and_group (ag).constraint (c).operator_code; 81 if opr < 1 | opr > 7 | opr = 4 82 then O_code = dm_error_$unsupported_spec_operator; 83 x = relation_search_specification.and_group (ag).constraint (c).field_id; 84 85 if vrm_rel_desc.attr (x).key_head | vrm_rel_desc.attr (x).primary_key_attr 86 then num_key_constraints = num_key_constraints + 1; 87 end; 88 end; /* END do c = 1 to relation_search_specification.and_group (ag).number_of_constraints while (O_code = 0); */ 89 90 91 end; 92 93 end; 94 95 O_num_key_constraints = num_key_constraints; 96 97 98 1 1 /* BEGIN INCLUDE vrm_cursor.incl.pl1 */ 1 2 1 3 /* 83-05-26 Roger Lackey : Modifyed for relation cursors */ 1 4 1 5 dcl vrm_cursor_ptr pointer; /* Pointer to this structure */ 1 6 1 7 dcl 1 vrm_cursor aligned based (vrm_cursor_ptr), /* vfile relation manager cursor */ 1 8 2 opening_id bit (36) aligned, /* ID of opening associated with this cursor */ 1 9 2 debug_sw unal, /* Undefined MBZ */ 1 10 3 trace_open bit (1) unal, /* Show opening of iocb cursor creation time */ 1 11 3 pad bit (35) unal, 1 12 2 switches, 1 13 3 shared bit (1) unal, /* Other processes can use this relation */ 1 14 3 meter_sw bit (1) unal, /* On = Keep meters for this cursor */ 1 15 3 pad bit (7) unal, /* Unsed */ 1 16 2 opening_mode fixed bin, /* Opening mode for this cursor (8 = KSQR 10 = KSQU) */ 1 17 2 open_info_ptr pointer, /* Pointer to parent opening info structure */ 1 18 2 vrm_relation_desc_ptr pointer, /* Pointer to parent rel desc */ 1 19 2 iocb_ptr pointer, /* Pointer to attach iocb */ 1 20 2 secondary_iocb_ptr ptr, /* Second iocb_ptr used by vrmu_search */ 1 21 2 search_list_ptr ptr, /* Pointer to search_list */ 1 22 2 search_keys_ptr ptr, /* Pointer to search_keys array */ 1 23 2 meter_ptr pointer, /* Pointer metering str if metering is on or null */ 1 24 2 vrm_iocb_list_block_ptr pointer, /* Pointer to vrm_iocb_list_block that contains this cursors iocb */ 1 25 2 vrm_iocb_list_block_iocbs_ix fixed bin; /* Index into list_block.iocbs for location of iocb */ 1 26 1 27 1 28 /* END INCLUDE vrm_cursor.incl.pl1 */ 99 100 2 1 /* BEGIN INCLUDE vrm_collection_info.incl.pl1 */ 2 2 2 3 /* R. Harvey 82-11-02 */ 2 4 2 5 2 6 dcl 1 vrm_collection_info aligned based (vrm_collection_info_ptr), 2 7 /* Index collection description */ 2 8 2 record_id unal, 2 9 3 header bit (4) unal, /* collection type */ 2 10 3 id bit (8) unal, /* index id */ 2 11 2 unique bit (1) unal, 2 12 2 primary_key bit (1) unal, /* This is the MRDS primary key collection */ 2 13 2 pad bit (26) unal, 2 14 2 number_of_attributes 2 15 fixed bin, 2 16 2 attribute (vci_no_of_attributes refer (vrm_collection_info.number_of_attributes)), 2 17 3 attr_index fixed bin, /* Attribute number in relation description */ 2 18 3 key_offset fixed bin, /* Offset within key in bits */ 2 19 3 key_bit_len fixed bin ; /* Length of key in bits */ 2 20 2 21 dcl vrm_collection_info_ptr 2 22 ptr; 2 23 dcl vci_no_of_attributes fixed bin; 2 24 dcl vrm_collection_header_type 2 25 bit (4) unal int static options (constant) init ("1100"b); 2 26 dcl VRM_COLLECTION_KEY_HEAD char (16) int static options (constant) init ("@collection_info"); 2 27 2 28 /* END INCLUDE vrm_collection_info.incl.pl1 */ 101 102 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 */ 103 104 4 1 /* BEGIN INCLUDE FILE dm_specification_head.incl.pl1 */ 4 2 4 3 /* HISTORY: 4 4*Written by Matthew Pierret, 05/11/83. (Extracted from dm_specification.incl.pl1) 4 5*Modified: 4 6*05/20/83 by Matthew Pierret: Changed to use version 4. 4 7**/ 4 8 4 9 /* format: style2,ind3 */ 4 10 dcl 1 specification_head based (specification_head_ptr), 4 11 2 version fixed bin (35), 4 12 2 type fixed bin (17) unal, 4 13 2 pad bit (18) unal, 4 14 2 subset_specification_ptr 4 15 ptr; 4 16 4 17 4 18 dcl specification_head_ptr ptr; 4 19 dcl SPECIFICATION_VERSION_4 4 20 init (4) fixed bin (35) internal static options (constant); 4 21 4 22 dcl ( 4 23 SEARCH_SPECIFICATION_TYPE 4 24 init (1), 4 25 ABSOLUTE_SEARCH_SPECIFICATION_TYPE 4 26 init (1), 4 27 NUMERIC_SPECIFICATION_TYPE 4 28 init (2), 4 29 ABSOLUTE_NUMERIC_SPECIFICATION_TYPE 4 30 init (2), 4 31 RELATIVE_SEARCH_SPECIFICATION_TYPE 4 32 init (3), 4 33 RELATIVE_NUMERIC_SPECIFICATION_TYPE 4 34 init (4), 4 35 ABSOLUTE_RELATION_SEARCH_SPECIFICATION_TYPE 4 36 init (5), 4 37 RELATIVE_RELATION_SEARCH_SPECIFICATION_TYPE 4 38 init (6), 4 39 ABSOLUTE_RELATION_NUMERIC_SPECIFICATION_TYPE 4 40 init (7), 4 41 RELATIVE_RELATION_NUMERIC_SPECIFICATION_TYPE 4 42 init (8) 4 43 ) fixed bin (17) internal static options (constant); 4 44 4 45 4 46 /* END INCLUDE FILE dm_specification_head.incl.pl1 */ 105 106 5 1 /* BEGIN INCLUDE FILE dm_relation_spec.incl.pl1 */ 5 2 5 3 /* HISTORY: 5 4*Written by Matthew Pierret, 05/10/83. 5 5*Modified: 5 6**/ 5 7 5 8 /* format: style2,ind3 */ 5 9 dcl 1 relation_search_specification 5 10 aligned based (relation_search_specification_ptr), 5 11 2 head like specification_head, 5 12 2 maximum_number_of_constraints 5 13 fixed bin (17) unal, 5 14 2 number_of_and_groups 5 15 fixed bin (17) unal, 5 16 2 flags unal, 5 17 3 return_unique_tuples 5 18 bit (1) unal, 5 19 3 mbz bit (35) unal, 5 20 2 range, 5 21 3 type fixed bin (17), 5 22 3 size fixed bin (17), 5 23 2 and_group (rss_number_of_and_groups refer (relation_search_specification.number_of_and_groups)), 5 24 3 search_collection_id 5 25 bit (36) aligned, 5 26 3 flags unal, 5 27 4 collection_id_supplied 5 28 bit (1) unal, 5 29 4 mbz bit (17) unal, 5 30 3 number_of_constraints 5 31 fixed bin (17) unal, 5 32 3 constraint (rss_maximum_number_of_constraints 5 33 refer (relation_search_specification.maximum_number_of_constraints)), 5 34 4 field_id fixed bin (17) unal, 5 35 4 operator_code fixed bin (17) unal, 5 36 4 value_field_id fixed bin (17) unal, 5 37 4 mbz bit (18) unal, 5 38 4 value_ptr ptr; 5 39 5 40 5 41 dcl 1 relation_numeric_specification 5 42 aligned based (relation_numeric_specification_ptr), 5 43 2 head like specification_head, 5 44 2 collection_id bit (36) aligned, 5 45 2 range_size fixed bin (35), 5 46 2 position_number fixed bin (17) unal, 5 47 2 pad bit (18) unal; 5 48 5 49 5 50 dcl (relation_search_specification_ptr, relation_numeric_specification_ptr) 5 51 ptr init (null); 5 52 dcl (rss_number_of_and_groups, rss_maximum_number_of_constraints) 5 53 fixed bin (17) init (0); 5 54 5 55 5 56 5 57 /* END INCLUDE FILE dm_relation_spec.incl.pl1 */ 107 108 6 1 /* BEGIN INCLUDE FILE dm_range_constants.incl.pl1. */ 6 2 6 3 /* HISTORY: 6 4*Written by Matthew Pierret, 05/27/83. 6 5*Modified: 6 6**/ 6 7 6 8 dcl ( 6 9 ALL_RANGE_TYPE init (1), 6 10 LOW_RANGE_TYPE init (2), 6 11 HIGH_RANGE_TYPE init (3) 6 12 ) fixed bin internal static options (constant); 6 13 6 14 6 15 /* END INCLUDE FILE dm_range_constants.incl.pl1. */ 109 110 7 1 /* BEGIN INCLUDE vrm_open_info.incl.pl1 */ 7 2 7 3 /* R. Harvey 82-11-02 7 4* 82-09-82 Roger Lackey: added iocb_list_ptr */ 7 5 7 6 dcl 1 vrm_open_info aligned based (vrm_open_info_ptr), /* Vfile relation description */ 7 7 2 version char (8), /* Version number of this structure */ 7 8 2 opening_id bit (36) aligned, /* Opening id associated with this desc */ 7 9 2 file_uid bit (36) aligned, /* Unique id of msf dir */ 7 10 2 number_of_openings fixed bin, /* Number of separate calls to vrm$open */ 7 11 2 switches, 7 12 3 shared bit (1) unal, /* Open relation in shared mode */ 7 13 3 pad bit (35) unal init ("0"b), /* Unused must be zero */ 7 14 2 database_dir_path char (168) varying, /* Absolute path of database */ 7 15 2 relation_name char (30) varying, /* Name of relation */ 7 16 2 relation_model_ptr pointer, /* Pointer to the relation_model in the relation itself or a temp seg */ 7 17 2 com_ptr pointer, /* Temp seg for cursors and scratch space */ 7 18 2 iocb_list_ptr pointer, /* Pointer to first vrm_iocb_list_block */ 7 19 2 primary_key_info_ptr pointer, /* Special case collection info ptr */ 7 20 2 number_of_index_collections fixed bin, /* Count of index collections (include primary key) */ 7 21 2 index_collection (voi_no_of_index_collections 7 22 refer (vrm_open_info.number_of_index_collections)), 7 23 3 id bit (36), 7 24 3 info_ptr ptr unal; /* Points to more detailed info */ 7 25 7 26 7 27 dcl VRM_OPEN_INFO_VERSION_1 char (8) int static options (constant) init (" 1"); 7 28 dcl vrm_open_info_ptr ptr; 7 29 dcl voi_no_of_index_collections fixed bin; 7 30 7 31 /* END INCLUDE vrm_open_info.incl.pl1 */ 111 112 8 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 8 2 /* format: style3 */ 8 3 8 4 /* These constants are to be used for the flags argument of sub_err_ */ 8 5 /* They are just "string (condition_info_header.action_flags)" */ 8 6 8 7 declare ( 8 8 ACTION_CAN_RESTART init (""b), 8 9 ACTION_CANT_RESTART init ("1"b), 8 10 ACTION_DEFAULT_RESTART 8 11 init ("01"b), 8 12 ACTION_QUIET_RESTART 8 13 init ("001"b), 8 14 ACTION_SUPPORT_SIGNAL 8 15 init ("0001"b) 8 16 ) bit (36) aligned internal static options (constant); 8 17 8 18 /* End include file */ 113 114 115 dcl dm_error_$invalid_specification_field fixed bin (35) ext static; 116 dcl dm_error_$unimplemented_spec_version fixed bin (35) ext static; 117 dcl dm_error_$unsupported_spec_operator fixed bin (35) ext static; 118 dcl dm_error_$unsup_search_spec_range_type fixed bin (35) ext static; 119 dcl dm_error_$unsup_search_spec_head_type fixed bin (35) ext static; 120 dcl c fixed bin; 121 dcl ag fixed bin; 122 dcl mrds_error_$internal_error fixed bin (35) ext static; 123 dcl null builtin; 124 dcl num_key_constraints fixed bin; 125 dcl opr fixed bin; 126 dcl sub_err_ entry () options (variable); 127 dcl x fixed bin; 128 129 end vrmu_validate_spec; 130 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/21/84 0934.2 vrmu_validate_spec.pl1 >special_ldd>online>mrds_install>vrmu_validate_spec.pl1 99 1 10/14/83 1609.1 vrm_cursor.incl.pl1 >ldd>include>vrm_cursor.incl.pl1 101 2 10/14/83 1609.1 vrm_collection_info.incl.pl1 >ldd>include>vrm_collection_info.incl.pl1 103 3 10/14/83 1609.1 vrm_rel_desc.incl.pl1 >ldd>include>vrm_rel_desc.incl.pl1 105 4 10/14/83 1609.1 dm_specification_head.incl.pl1 >ldd>include>dm_specification_head.incl.pl1 107 5 10/14/83 1609.1 dm_relation_spec.incl.pl1 >ldd>include>dm_relation_spec.incl.pl1 109 6 10/14/83 1609.1 dm_range_constants.incl.pl1 >ldd>include>dm_range_constants.incl.pl1 111 7 10/14/83 1609.1 vrm_open_info.incl.pl1 >ldd>include>vrm_open_info.incl.pl1 113 8 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.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. ABSOLUTE_RELATION_SEARCH_SPECIFICATION_TYPE constant fixed bin(17,0) initial dcl 4-22 ref 51 ACTION_CANT_RESTART 000000 constant bit(36) initial dcl 8-7 set ref 68* ALL_RANGE_TYPE constant fixed bin(17,0) initial dcl 6-8 ref 59 I_spec_ptr parameter pointer dcl 29 ref 7 36 I_vrm_cursor_ptr parameter pointer dcl 28 ref 7 35 LOW_RANGE_TYPE constant fixed bin(17,0) initial dcl 6-8 ref 59 O_code parameter fixed bin(35,0) dcl 31 set ref 7 38* 47* 53* 61* 65 73 75* 81* O_num_key_constraints parameter fixed bin(17,0) dcl 30 set ref 7 37* 95* RELATIVE_RELATION_SEARCH_SPECIFICATION_TYPE constant fixed bin(17,0) initial dcl 4-22 ref 51 SPECIFICATION_VERSION_4 constant fixed bin(35,0) initial dcl 4-19 ref 46 ag 000115 automatic fixed bin(17,0) dcl 121 set ref 65* 67 73 75 75 79 80 83* and_group 10 based structure array level 2 dcl 5-9 attr 14 based structure array level 2 dcl 3-5 c 000114 automatic fixed bin(17,0) dcl 120 set ref 73* 75 75 79 80 83* collection_id_supplied 11 based bit(1) array level 4 packed unaligned dcl 5-9 ref 67 constraint 12 based structure array level 3 dcl 5-9 dm_error_$invalid_specification_field 000010 external static fixed bin(35,0) dcl 115 ref 75 dm_error_$unimplemented_spec_version 000012 external static fixed bin(35,0) dcl 116 ref 47 dm_error_$unsup_search_spec_head_type 000020 external static fixed bin(35,0) dcl 119 ref 53 dm_error_$unsup_search_spec_range_type 000016 external static fixed bin(35,0) dcl 118 ref 61 dm_error_$unsupported_spec_operator 000014 external static fixed bin(35,0) dcl 117 ref 81 field_id 12 based fixed bin(17,0) array level 4 packed unaligned dcl 5-9 ref 75 75 83 flags 11 based structure array level 3 packed unaligned dcl 5-9 head based structure level 2 dcl 5-9 key_head 25(01) based bit(1) array level 3 packed unaligned dcl 3-5 ref 85 maximum_number_of_constraints 4 based fixed bin(17,0) level 2 packed unaligned dcl 5-9 ref 67 67 73 73 75 75 75 75 79 79 80 80 83 83 mrds_error_$internal_error 000022 external static fixed bin(35,0) dcl 122 set ref 68* null builtin function dcl 123 ref 44 68 68 79 5-50 5-50 num_key_constraints 000116 automatic fixed bin(17,0) dcl 124 set ref 42* 85* 85 95 number_attrs 13 based fixed bin(17,0) level 2 dcl 3-5 ref 75 number_of_and_groups 4(18) based fixed bin(17,0) level 2 packed unaligned dcl 5-9 ref 65 number_of_constraints 11(18) based fixed bin(17,0) array level 3 packed unaligned dcl 5-9 ref 73 open_info_ptr 4 based pointer level 2 dcl 1-7 ref 41 operator_code 12(18) based fixed bin(17,0) array level 4 packed unaligned dcl 5-9 ref 80 opr 000117 automatic fixed bin(17,0) dcl 125 set ref 80* 81 81 81 primary_key_attr 25(02) based bit(1) array level 3 packed unaligned dcl 3-5 ref 85 range 6 based structure level 2 dcl 5-9 relation_numeric_specification_ptr 000106 automatic pointer initial dcl 5-50 set ref 5-50* relation_search_specification based structure level 1 dcl 5-9 relation_search_specification_ptr 000104 automatic pointer initial dcl 5-50 set ref 36* 44 46 51 51 59 59 65 67 73 75 75 79 80 83 5-50* rss_maximum_number_of_constraints 000111 automatic fixed bin(17,0) initial dcl 5-52 set ref 39* 5-52* rss_number_of_and_groups 000110 automatic fixed bin(17,0) initial dcl 5-52 set ref 5-52* specification_head based structure level 1 unaligned dcl 4-10 sub_err_ 000024 constant entry external dcl 126 ref 68 type 6 based fixed bin(17,0) level 3 in structure "relation_search_specification" dcl 5-9 in procedure "vrmu_validate_spec" ref 59 59 type 1 based fixed bin(17,0) level 3 in structure "relation_search_specification" packed unaligned dcl 5-9 in procedure "vrmu_validate_spec" ref 51 51 value_ptr 14 based pointer array level 4 dcl 5-9 ref 79 version based fixed bin(35,0) level 3 dcl 5-9 ref 46 vrm_attr_info based structure level 1 unaligned dcl 3-28 vrm_cursor based structure level 1 dcl 1-7 vrm_cursor_ptr 000100 automatic pointer dcl 1-5 set ref 35* 40 41 vrm_open_info_ptr 000112 automatic pointer dcl 7-28 set ref 41* vrm_rel_desc based structure level 1 unaligned dcl 3-5 vrm_rel_desc_ptr 000102 automatic pointer dcl 3-41 set ref 40* 75 85 85 vrm_relation_desc_ptr 6 based pointer level 2 dcl 1-7 ref 40 x 000120 automatic fixed bin(17,0) dcl 127 set ref 83* 85 85 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSOLUTE_NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 ABSOLUTE_RELATION_NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 ABSOLUTE_SEARCH_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 ACTION_CAN_RESTART internal static bit(36) initial dcl 8-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 8-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 8-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 8-7 HIGH_RANGE_TYPE internal static fixed bin(17,0) initial dcl 6-8 NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 RELATIVE_NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 RELATIVE_RELATION_NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 RELATIVE_SEARCH_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 SEARCH_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 VRM_COLLECTION_KEY_HEAD internal static char(16) initial unaligned dcl 2-26 VRM_OPEN_INFO_VERSION_1 internal static char(8) initial unaligned dcl 7-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 relation_numeric_specification based structure level 1 dcl 5-41 specification_head_ptr automatic pointer dcl 4-18 vci_no_of_attributes automatic fixed bin(17,0) dcl 2-23 voi_no_of_index_collections automatic fixed bin(17,0) dcl 7-29 vrd_no_of_attrs automatic fixed bin(17,0) dcl 3-42 vrm_attr_info_ptr automatic pointer dcl 3-45 vrm_collection_header_type internal static bit(4) initial unaligned dcl 2-24 vrm_collection_info based structure level 1 dcl 2-6 vrm_collection_info_ptr automatic pointer dcl 2-21 vrm_open_info based structure level 1 dcl 7-6 NAME DECLARED BY EXPLICIT CONTEXT. vrmu_validate_spec 000050 constant entry external dcl 7 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 520 546 364 530 Length 1106 364 26 323 134 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vrmu_validate_spec 172 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vrmu_validate_spec 000100 vrm_cursor_ptr vrmu_validate_spec 000102 vrm_rel_desc_ptr vrmu_validate_spec 000104 relation_search_specification_ptr vrmu_validate_spec 000106 relation_numeric_specification_ptr vrmu_validate_spec 000110 rss_number_of_and_groups vrmu_validate_spec 000111 rss_maximum_number_of_constraints vrmu_validate_spec 000112 vrm_open_info_ptr vrmu_validate_spec 000114 c vrmu_validate_spec 000115 ag vrmu_validate_spec 000116 num_key_constraints vrmu_validate_spec 000117 opr vrmu_validate_spec 000120 x vrmu_validate_spec THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$invalid_specification_field dm_error_$unimplemented_spec_version dm_error_$unsup_search_spec_head_type dm_error_$unsup_search_spec_range_type dm_error_$unsupported_spec_operator mrds_error_$internal_error LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000043 5 50 000055 5 52 000060 35 000062 36 000066 37 000071 38 000072 39 000073 40 000074 41 000076 42 000100 44 000101 46 000104 47 000107 48 000111 51 000112 53 000122 54 000124 59 000125 61 000132 62 000134 65 000135 67 000152 68 000170 73 000241 75 000270 79 000323 80 000330 81 000334 83 000345 85 000347 88 000354 91 000356 95 000360 129 000363 ----------------------------------------------------------- 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