1 :Info: restructure_mrds_db: rmdb:  1986-01-10  restructure_mrds_db, rmdb
  2 
  3 Syntax as a command:  rmdb {db_path} {-control_args}
  4 
  5 
  6 Function:  This command is used to enter the MRDS Restructuring
  7 Subsystem to restructure a given data base (see Notes below).  If the
  8 data base does not exist it can be created.  If the data base exists,
  9 and is not already quiesced, then it is quiesced.
 10 
 11 
 12 Arguments:
 13 db_path
 14    is a relative or absolute path to the data base to be restructured.
 15 
 16 
 17 Control arguments:
 18 -abbrev, -ab
 19    enables abbreviation expansion and editing of request lines.
 20 -force, -fc
 21    specifies that the data base be created if it does not already exist
 22    without querying the user.
 23 -no_abbrev, -nab
 24    suppresses the abbreviation expansion and editing of request lines.
 25    (Default)
 26 -no_force, nfc
 27    queries the user if the data base does not exist, to determine if
 28    the data base should be created.  This argument overrides the -force
 29    control argument.  (Default)
 30 -no_prompt, -npmt
 31    suppresses the prompt in the request loop.
 32 
 33 
 34 -pathname db_path, -pn db_path
 35    specifies the path of the data base used for restructuring.  The
 36    indicated data base is quiesced.  This overrides any previously
 37    indicated data bases given via the optional db_path argument
 38    (above), or another -pathname control argument.
 39 -profile path, -pf path
 40    specifies the pathname of the profile used for abbreviation
 41    expansion.  The profile suffix is added if necessary.  This control
 42    argument implies -abbrev.
 43 -prompt STR, -pmt STR
 44    sets the request loop prompt to STR.  (Default is "rmdb:")
 45 -quiesce_wait_time N, -qwt N
 46    sets the number of seconds that an attempt to quiesce waits for
 47    conflicting data base users to depart before failing.  (Default is
 48    0, that is, no waiting before failing.)
 49 
 50 
 51 -relation_type type {modes}, -rt type {modes}
 52    specifies the type of relation to create if the data base does NOT
 53    already exist.  The supported types are vfile or
 54    data_management_file (dmf).  The mode argument is only valid for dmf
 55    relations, and the supported modes are any combination of protected,
 56    concurrency, or rollback separated by commas.  Any mode may be
 57    preceded with a NOT sign (^) to negate it.  (Also see Notes below.)
 58 -request STR, -rq STR
 59    executes STR as an rmdb request line before entering the request
 60    loop.
 61 
 62 
 63 -temp_dir path, -td path
 64    provides the path of a directory that has more quota than the
 65    default of the process directory when more temporary storage is
 66    needed to restructure a large data base.  If the user gets a record
 67    quota overflow in the process directory during an rmdb invocation,
 68    then a new_proc is required.  A retry of the rmdb invocation with
 69    the -temp_dir argument, giving a pathname of a directory with more
 70    quota than the process directory, can then be done.
 71 
 72 
 73 Notes:  This command can only be used against a Version 4 or later data
 74 base and only by the DBA.  In addition, this command cannot be used
 75 against a data base that is already open by any process.  The data base
 76 can be opened (only by the process invoking this subsystem) after the
 77 subsystem is entered by invoking linus or the mrds_call command via the
 78 ".."  (or execute) request.
 79 
 80 If a new data base is to be created, and the -relation_type control
 81 argument is not specified, then the default relation type is vfile.
 82 
 83 
 84 List of requests:
 85    The following list summarizes all of the restructuring requests.
 86 
 87 .
 88    identifies rmdb with the version number and the pathname of the data
 89    base being restructured.
 90 ?
 91    lists the available rmdb requests and active requests.
 92 
 93 
 94 abbrev, ab
 95    turns abbreviation processing ON or OFF and changes profile
 96    segments.
 97 answer
 98    supplies an answer to a question asked by a request.
 99 create_attribute, cra
100    creates a new attribute based upon a previously defined domain.  The
101    attribute is unreferenced until it is used in a relation.
102 
103 
104 create_domain, crd
105    creates a new domain.  A newly created domain is considered
106    unreferenced although it has a corresponding attribute of the same
107    name defined upon itself.
108 create_index, cri
109    makes the indicated attribute a secondary index into the relation.
110 create_relation, crr
111    creates a new relation.  An unpopulated relation can be specified by
112    listing the attributes that make up the relation; each attribute
113    must already be defined.
114 delete_attribute, dla
115    deletes the indicated attribute from the data base.  The attribute
116    is removed from all relations in which it is referenced.
117 
118 
119 delete_domain, dld
120    deletes the indicated domain from the data base.  All attributes
121    based upon the domain are also deleted causing restructuring of
122    relations referencing those attributes.
123 delete_index, dli
124    deletes the secondary index over the indicated attribute in the
125    relation.
126 delete_relation, dlr
127    deletes the indicated relation from the data base.
128 display_data_model, ddm, dmdm
129    displays details of the data base model.
130 
131 
132 do
133    substitutes args into the request_line and passes the result to the
134    rmdb request processor.
135 exec_com, ec
136    executes the rmdb exec_com indicated by ec_path.  The ec_path
137    arguments are passed to the exec_com processor.
138 execute, e
139    executes a Multics command line after evaluating rmdb active
140    requests.
141 free_db, fdb
142    unquiesces the data base.
143 help
144    displays information about request names or topics.  A list of
145    available topics is produced by the list_help request.
146 
147 
148 if
149    conditionally executes a request.
150 list_help, lh
151    displays a list of available info segments whose names include a
152    topic string.
153 list_requests, lr
154    displays information about rmdb requests.
155 quit, q
156    restores the current data base to a non-quiescent state (if the
157    current data base was quiesced by the rmdb subsystem) and leaves
158    rmdb.
159 
160 
161 ready_db, rdb
162    quiesces the indicated data base and makes it available for
163    restructuring.  Note that only one data base can be restructured at
164    any given time.  If the data base does NOT exist, a query is made to
165    determine if an empty data base is to be created.
166 
167 
168 rename_attribute, rna
169    renames the indicated attribute.
170 rename_domain, rnd
171    renames the indicated domain and its corresponding attributes.
172 rename_relation, rnr
173    renames the indicated relation.
174 subsystem_name
175    displays the name of the subsystem, "rmdb".
176 subsystem_version
177    displays the current version of rmdb.
178 
179 
180 List of active requests:
181 ab  {control_args}
182    returns "true" if abbreviation expansion of request lines is
183    currently enabled within the subsystem and "false" otherwise.
184 do {request_STR} {args}
185    returns expanded request STR.
186 exec_com ec_path {ec_args}, ec ec_path {ec_args}
187    executes the rmdb exec_com indicated by ec_path.  The suffix of
188     .rmdb is assumed if not given.  The ec_path arguments are passed to
189    the exec_com processor.  The value returned by the exec_com is
190    substituted into the rmdb request line.
191 execute STRs, e STRs
192    invokes Multics active function within rmdb request line.
193 
194 
195 if expr -then line1 {-else line2}
196    returns one of two character strings to the subsystem request
197    processor depending on the value of an active string.
198 subsystem_name
199    returns the name of the subsystem ("rmdb").
200 subsystem_version
201    returns the current version of rmdb.
202 
203 
204 :hcom:
205 
206 
207 
208 /****^  HISTORY COMMENTS:
209   1) change(2020-12-16,GDixon), approve(2021-02-22,MCR10088),
210      audit(2021-05-27,Swenson), install(2021-05-27,MR12.6g-0056):
211       A) Change "Syntax:" to "Syntax as a command:" in command info seg
212          last changed after 1984.
213                                                    END HISTORY COMMENTS */
214 
215 
216