01/10/86 restructure_mrds_db, rmdb Syntax: rmdb {db_path} {-control_args} Function: This command is used to enter the MRDS Restructuring Subsystem to restructure a given data base (see Notes below). If the data base does not exist it can be created. If the data base exists, and is not already quiesced, then it is quiesced. Arguments: db_path is a relative or absolute path to the data base to be restructured. Control arguments: -abbrev, -ab enables abbreviation expansion and editing of request lines. -force, -fc specifies that the data base be created if it does not already exist without querying the user. -no_abbrev, -nab suppresses the abbreviation expansion and editing of request lines. (Default) -no_force, nfc queries the user if the data base does not exist, to determine if the data base should be created. This argument overrides the -force control argument. (Default) -no_prompt, -npmt suppresses the prompt in the request loop. -pathname db_path, -pn db_path specifies the path of the data base used for restructuring. The indicated data base is quiesced. This overrides any previously indicated data bases given via the optional db_path argument (above), or another -pathname control argument. -profile path, -pf path specifies the pathname of the profile used for abbreviation expansion. The profile suffix is added if necessary. This control argument implies -abbrev. -prompt STR, -pmt STR sets the request loop prompt to STR. (Default is "rmdb:") -quiesce_wait_time N, -qwt N sets the number of seconds that an attempt to quiesce waits for conflicting data base users to depart before failing. (Default is 0, that is, no waiting before failing.) -relation_type type {modes}, -rt type {modes} specifies the type of relation to create if the data base does NOT already exist. The supported types are vfile or data_management_file (dmf). The mode argument is only valid for dmf relations, and the supported modes are any combination of protected, concurrency, or rollback separated by commas. Any mode may be preceded with a NOT sign (^) to negate it. (Also see Notes below.) -request STR, -rq STR executes STR as an rmdb request line before entering the request loop. -temp_dir path, -td path provides the path of a directory that has more quota than the default of the process directory when more temporary storage is needed to restructure a large data base. If the user gets a record quota overflow in the process directory during an rmdb invocation, then a new_proc is required. A retry of the rmdb invocation with the -temp_dir argument, giving a pathname of a directory with more quota than the process directory, can then be done. Notes: This command can only be used against a Version 4 or later data base and only by the DBA. In addition, this command cannot be used against a data base that is already open by any process. The data base can be opened (only by the process invoking this subsystem) after the subsystem is entered by invoking linus or the mrds_call command via the ".." (or execute) request. If a new data base is to be created, and the -relation_type control argument is not specified, then the default relation type is vfile. List of requests: The following list summarizes all of the restructuring requests. . identifies rmdb with the version number and the pathname of the data base being restructured. ? lists the available rmdb requests and active requests. abbrev, ab turns abbreviation processing ON or OFF and changes profile segments. answer supplies an answer to a question asked by a request. create_attribute, cra creates a new attribute based upon a previously defined domain. The attribute is unreferenced until it is used in a relation. create_domain, crd creates a new domain. A newly created domain is considered unreferenced although it has a corresponding attribute of the same name defined upon itself. create_index, cri makes the indicated attribute a secondary index into the relation. create_relation, crr creates a new relation. An unpopulated relation can be specified by listing the attributes that make up the relation; each attribute must already be defined. delete_attribute, dla deletes the indicated attribute from the data base. The attribute is removed from all relations in which it is referenced. delete_domain, dld deletes the indicated domain from the data base. All attributes based upon the domain are also deleted causing restructuring of relations referencing those attributes. delete_index, dli deletes the secondary index over the indicated attribute in the relation. delete_relation, dlr deletes the indicated relation from the data base. display_data_model, ddm, dmdm displays details of the data base model. do substitutes args into the request_line and passes the result to the rmdb request processor. exec_com, ec executes the rmdb exec_com indicated by ec_path. The ec_path arguments are passed to the exec_com processor. execute, e executes a Multics command line after evaluating rmdb active requests. free_db, fdb unquiesces the data base. help displays information about request names or topics. A list of available topics is produced by the list_help request. if conditionally executes a request. list_help, lh displays a list of available info segments whose names include a topic string. list_requests, lr displays information about rmdb requests. quit, q restores the current data base to a non-quiescent state (if the current data base was quiesced by the rmdb subsystem) and leaves rmdb. ready_db, rdb quiesces the indicated data base and makes it available for restructuring. Note that only one data base can be restructured at any given time. If the data base does NOT exist, a query is made to determine if an empty data base is to be created. rename_attribute, rna renames the indicated attribute. rename_domain, rnd renames the indicated domain and its corresponding attributes. rename_relation, rnr renames the indicated relation. subsystem_name displays the name of the subsystem, "rmdb". subsystem_version displays the current version of rmdb. List of active requests: ab {control_args} returns "true" if abbreviation expansion of request lines is currently enabled within the subsystem and "false" otherwise. do {request_STR} {args} returns expanded request STR. exec_com ec_path {ec_args}, ec ec_path {ec_args} executes the rmdb exec_com indicated by ec_path. The suffix of .rmdb is assumed if not given. The ec_path arguments are passed to the exec_com processor. The value returned by the exec_com is substituted into the rmdb request line. execute STRs, e STRs invokes Multics active function within rmdb request line. if expr -then line1 {-else line2} returns one of two character strings to the subsystem request processor depending on the value of an active string. subsystem_name returns the name of the subsystem ("rmdb"). subsystem_version returns the current version of rmdb. ----------------------------------------------------------- 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