REPORT ON COMPUTER USAGE OF ACCOUNTS GMIS SOFTWARE DEVELOPMENT

advertisement
REPORT ON COMPUTER USAGE OF ACCOUNTS
UNDER THE IBM/M.I.T. JOINT STUDY AGREEMENT
GMIS SOFTWARE DEVELOPMENT
NEEMIS Staff
Systems Programming Group
Energy Laboratory in Association with
the Alfred P. Sloan School of Management
Working Paper No. MIT-EL-76-018WP
July 1976
IBM/M.I.T. JOINT STUDY PROGRESS REPORT - PART I
GMIS SOFTWARE DEVELOPMENT
July 1976
C()NT
'['
('' NI' '~11TSf3
. ............
1.Introduction... .
2. Prloqress
in Softwire Developmcntt .
.
.
.
.
.
.
.
.
.
1
.
SEQ UEL
-21e.
2
2.2. TPRANSACT
........
..
..........
...........
. . . . ....... 3
2.3. Multi-UserInterface (UI) .....
..
2.4. SFQIHELDatabase DEscription and
2.5.
PAM
Utilization
2.6. Applications
2.7. New GMIS
Wcrkspace.
Packaqes
2.7.2.
2.7.
3.
...
.
.
.
5
.
5
....
.
. 5
Inter-machineCommunicatiorns
Mechanism . ..
7
;MIS
GMIS
fUsage
.
.
.
3. Computer Tchnoloqies
Advantages of
(TS
Mcnitor
.
.
Configluration .
.
7
cn tplementation
.
of New
8
. . . . . . . .
By RxamFle
2.7.5. Query
nhaincements ..
..
Used in the GMIS Effort . .
BM/MTt Jcint S0y
.
.
8
.
9.
5. uqqestions for Technologic!i Tprovements. . . ..
A: Current UJrF
.
of I4
.
Appendix B: Project
1975.
8
Env:ironmentin GMIS
Develorpment ............
Development
4
5
cf Nw
2.7.14. Current Prrcgrss
Appenilix
. 4.
4
ackup Utilities .
...
esin.......
2.7.1. Explnaticn
4.
1
Accounts
.
GMIS Progryosq
for
.
-
of
iscusicn
Jose, August,19759
............
.
.
.11
August 22,
.....................
Appendix C: o)vrview
1
Systems
...
Report
.
13
Topics at I:BMSan
.
. .. .
18
Reloase
3.
..
Appendix D: Log of SF(t JFT
Appendix
:
ApFendix
:
MIT-SEQUI
.
: XTRAM Fxtel
.
sions
.
.
.
.
.
.
.
..
Appe-nlix
H: TPANSACT
Appendix
I:
Appendi
J: TRANSACT PrJ, Command
Appendix
K:
(oima.ns
(Sv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
tax)
-* 31
33
.
.37
Fxplanation of I'RANSACT
ommands
. . . . ..
licro
Processor
Proposa
. 42
1. 46
Proposal for TANSACT'
Transaction Fditor . .
pT)FDESC
Conmand...
Appendix
M:
Bulkloading
of a Dnatahsc (L3)
Appendix
N: Creating
Appendix
0: Saving and Tcstcrii)
the
.
.
.
.
.67
. . . .
.
Bfi.-ackupDumpsF of S FJ FL, Da+abases
a SFOIEL
.
.
.
.
.
at.ahas
i
.
.
.
.
.
Appendix
Q: Using SELPP
Appendix
R: Datahase Utili2ation Analysis.
.
.73
atabase
.
Appendix P: Savinq and Pestorivq
64
.........
SEQPFST).
.
. 21
. . . . . . . . . .39
Using
DBSCAN)
*
.
Append ix L:
(SEQBACK,
*.
..
Limitations cf .SFQ!TT.:?'le.~S:' 3 . . . . .
Transaction
n1trfcc +Y)>,scription-
T
Appendix
i'c
"od i (n' .
.
.
.
.
.
. .75
.74
(ESAVE,
.
..
.
.
...............
.80
. . . . .
.
1
G1S
Progre;s
Programming Group
Syst-nr
1.
Po.port:
Introduction
This report will detail our progress to date
systoms programming and development effort relating
on the
to the
This systems effort has primarily
IB8/MIT Joint Study.
Management
focused on the develorment of the Generalized
Information
facilities.
(GMIS) and
System
many component software
its
Appendix A provides a list of each V/370
used in the GMIS systems development effort,
how
is being used.
ach account
GMIS Progress
Our last
development
this
Report detailing
Appendix E.
with work
our software
dated August 22, 1975, is included
efforts,
report as
report
account being
and describes
W? will
subsequent
done
begin this
to the
with
progress
August 22,
1975
report.
Thore
1)
will be five majcr sections
A discussion
to this report:
made
of ptogress
in each area of GIS
software development.
2)
A description
cf the
computer
technologies
used in
this software development effort.
3)
A discussion
cf the advantages
of
developing
this
administrative
the sot:tware, hardware and
system in
environment provid4edby the IRI/MIT Joint Study.
1 improvments
4) Some suggost icns for fechnological
that would improve the development process for GMIS, and
would
improve
5)
A
the use of the system.
statement
of
have
what we
learned during
our
system development efforts that would assist future design
and implementation efforts of ;asystem like GMIS.
2. ProqrEess in Software
Dve1loment
This section descrites oftware development efforts
August 22, 1975 GMIS
that have taken place since thWe will assume that the
Progress Report (Appendix A) .
with the motivation for GMIS, the uses of
reader is familiar
GMI a
this
the GIS architecture.
information
Manaqemnt
nd
is
nne document which provides
"GIMIS:An Fxv'primental System for Data
Analysis", by John
J. Donovan and
Henry
.
-2--
Jacoby (MIT
.Lahoratory
Working Paper MIT-EL-75-011WP,
nergy
Septemhber, 1q75).
2.1.sUL
Last summer, elease 2 of SEQUEL from San Jose was
Our
tested extensively for performance characteristics.
which are outlined in
findings were relayed to San Jse,
sections 3 and 5 of the discussion overview used there last
summer (Appendix C).
we learned
about the
System
but
R,
Their overall
response
use of SEUETL in the
they were
not
was to use what
development of
about
enthusiastic
making
changes to SEQUEL elease 2 to improve performance.
Several changes have been made
multi-segment
RAM
code over the
1)
data
type
include:
The
£EC (FIXFr
SEQUEL to supplement the
2)
These changes
to
DECIMAL) was added
existing NUM and CHAR data types.
SEQUEL Farser
The
to the SEQUEL, XRAM and
past year.
and
execution
transaction
were modified to accept the unary + and - operators
routines
as prefixes to numeric literals.
3)
activated,
A
was added
LOG facility
sends the fellcwing
to
SEQUEL which,
data items to the
if
STATPRI
file:
- the SEQUEL statement
- the time when the transaction was entered
-the
transaction
type (ANTYP)
- a list of all columns and tables referenced in the
statement.
4)
Software
declaration
installed
5)
"hooks"
installed
at the Multi User Interface
An
EXTERNAL rray
SFQ[]EL Transaction
of the
were
macros tc allow security
number of
adde9
SEQUEL outptut rows for formatting
the
(MUII)level.
called1 LPAD was
nterface (TRANs)
blanks
in
features
to inform
SEQUEL
to be
added to
the
UFI programs
to the left of columns in
purposes.
6) Several SEQUFL and XRAM routines were modified to
handle a problem that developed when inversions were made on
When a column
certain columns containing numeric data.
contained a numeric value that was either nonpositive or
greater
than the
inversion would
would
respond
greatest
ID
(2**21-1), the
successfully
when
used.
created, but
The
most
value of a RAM
apparently be
errorecusly
3-
straightforward tchnique to p.vent this from occurring was
to install
a checking mechanismthat would permit inversions
to be creatpd
and manintained
only on columns
with data in
the range of 1 to 2**21-1.
Extonsions to XRAM were made by
Ray Fessel to implement this mechanism, and SEQUEL was
modified to
activate this inversion
suppression when
necessary. The result of these modifications
is
that
the
performance benefits of SFQUEL/XPAM inversions of columns
cannot
be used
in
columns
with data
that
is
out of
a
relatively narrow numeric rang.
The SEQUL error messiages were revised
7)
easier
to understand
8)
Various
to make them
by users.
SF, TQUFL, XPA
RAM bugs
ad
were
identified
and fixed.
More
included
detailed
dccuuentition
in the following
1)
Log of SQUTJT
2)
Limitaticns of SEQUL
3)
Transaction
Release
3
4)
(Appendix
Mcdifications
Interfaco
3 (Appendix
Pescripticn
(AFpendix
is
-
)
MIT/SFQUEL
r,).
TPANSACT
last
A version of TANSACT
similar
GMIS
Progress
Rcecrt
was
detail
changes
(Appendix D)
Roase
2.2.
since
these
F)
XRAM Fxtpnsions
operational
on
document.S:
September,
the TRANSACT
syntax
to that described in the
debugged
and has
been
1)75.
The following documents
-n1 explain
the
use of each
command:
1)
TRANSACT Commands
2)
Explanation of TRANSACT Commands (Appendix I).
A numbor of extensions
(AppeiOix
_n
to
)
TRANSACT
have
een proposed,
inclu d ing:
1)
The
implementation
2)
The
TRANSACT FUN
f
a
SET LOG command,
activate the new SEQUElT
IOG -acility
previous sction cf this reFort.
facility,
similar
implemented last
"TRANSACT RN
J).
coiman:. macro processor.
to CMS FXFC,
summer. Tt is
Command Macro
described
was designed
doscribed in
to
in
the
This
and partially
the document
Proc-esor User Guide" (Appendix
-4i on
i mp lemntat
The,
3)
of
Ono proposal fcr this
editor.
report as Appendix K.
2.3. Multi-User
other
UserInterface
SEQUEL data
the
base machine
is the routine
that
to communicate
with
programs.
machines containing applications
virtual
The MUT is
transaction
(MUI)
Interface
The GMTS Multi permits
TIRANSACT
a
rlitor is included with this
actually
(UFI)
Interface
a SEQUEL 1iser Friendly
residing on the GMIS account as the SEQ3 MODULE. Access
control features were added to the original UI, SEQ2, which
can be invoked by specifying the option SECURE with the
(TVM)
Machine
.
This
replaced
facility
of
thP
GMIS
under the
new
GMIS int?r-machine
part
design.
section 2.7.
2.4.
Virtual
the Transaction
when activating
STARTexec
is
system
The new GTS design
SEQUEL Database Description
hbein
currently
is
communication-,
in
described
and Backup Utilities
additional
SEQUEL utility programs have been
Several
which
permit
users to retrieve a description of a
written
of
SEQUEL database and to create everal different types
backup copies of all or part of a database. These utility
routines include:
SETOrTP'L tbles
1) T)BDESCR - describes
cn the
+erminal
catalog information
(Appendix L) .
2)
I,
TB
3)
SFQDUMP
- the standard GIS
- the
bulk
prints
line
loader
(!JUFL
first
and
or
SFQUEL
printer
M).
(Appendix
backup
utility.
An
entire
SEQUEL database is dumF?d to CMS files in bulk loader
(LTDB) format (Appendix N).
SEQBACK and SECREST
3)
to create and relcad a taie
database.
These routincs
-
uilize
the
copy of the
disks
CMS
DDF command
containing
the
but arp
are faster than SEOClUMP,
less flexible in their use (Appendix).
4)
create
DBSAVE
and
DESCAN
- uiso
multiple backup copies
.SEQBACK and
SEQRFST
of SEQUEL
databases
to
on a
single tape, and creates an idlntifying label for each saved
database
5)
creates
user
on the tape (Appendix P).
SELDUMP-
ulk
a
selective
loader CMS files
(Appendix Q).
backup
facility,
which
for tablesspecifiedby the
2.5. RAM Utilizaticn
Ray
vessel
Wctrksace
has
frcught
lp
an
API
workspace
contains functions which masure the utilization
a AM(used by SQI'TI,) database.
are in Appendix R.
that
of pages in
Instructions
for its use
2.6. Applications Packagfes
Several
under VM/370
applicaticns packaq-s have been brought up
this past year for use in GMIS. Each one of
these systems can communicate with the GMISdatabase through
the use of
punched CMS files
and the VM spooling facility.
Specialized communicaticns interfaces for each package will
be built under
the new
MIS design
(Section 2.7).
The following applications packages
been made operational:
1)
TRPOLL
2)
TSP
3)
BMD
4)
TPIAN
5)
DYNAMO
6)
STATPAC
7)
MPSX
and systems
have
II
The packages
in thoe forthcoming
will bE briefly described
and referenced
GMTSU.Tc.r Gid.
2.7. New GMIS Design
the
Beginning in June, we launcbd
an effort
GMIS
new
system
to
communications software,
trom the GMIS prototype
this section,
presented.
descriptions
a
utilize
and
some
VM
to redesign
inter-machine
to apply what we have learned
system to an improved
rief dEscription of
design.
the new GMIS
will
In
be
More detailed sys+m level and user level
o the system are currently being written.
2.7.1. explanation of NewGMISConfiguration
Figure 1 presents
an cvervilw
of the
now GMIS. There
are five types of virtual
machines defined for this
configuration,
which allcws any available user application
packages to
communicate with any available
database
systoms. Note that the new GIS allows for more than one
database machine.
-(GF I ir.
I
IS IMPLE ENTATION VERVIEW
NEw
MANAGER
(ACTIVATES AND
MONITORS COMMUNICA-
VIRTUAL
TION VIRTUAL
MACH NE
MACHINES)
m m ~IImm
USER
TRANSACT
VIRTUAL
APLEPLM
(PUll)
MACHINES
r..
$1:
·i,
!
I
,
CoMmuNICATION
PiL/I
VIRTUAL
APLTO
TO
IIl
MACHINES
SEQUEL
INTERFACE
'
-"-
----
INTERFACE
IA'
III
.'
r
'N~
-'s,
/
/
.
/ '<
.
I
I
I/',
/
ITw
DATA RASE
SEQUEUGMIS
VIRTUAL
vC-.HINE
[VSAM/Gl
_WES/GMIS
[_.J
-
-
MCHINES,
USAGE
GATHERS USAGE STATISTICS
MbNITOR
=
VM
.
I
_
AND COMMENTS
FROM USER
AND DATA BASE VIRTUAL
MACHINES
-7-
fnier
to snd
scheme, a user vi rtiil
this
a query to a partictlldl
machine (UVM)wishing
;atabase
virtual
machine
(DtVM)must first signal the Manajrr Virtual Machine (MGR).
by signals
The MGR is always logged in, and is activated
it looks in
from UVM's. After the MGPhas bpen signalled,
its
MIS directory
Virtual Machinetat
ID, the
to log
AUTOLOGfacility
Assuming that
with the signalling UVM.
is asscciited
finds the
When it
for the ID of Communications
file)
(a CS
there
MrP
ses
Releas
3
n differenttypesof UVM(e.g.
a
and m ifferent
TRANSACT, TROLL, APL),
the VM/370
in the appropriateCVM.
types
DBVM (e.g.
of
ways a
(n x m) possible
SEQUEL, QBX,
IMS), then there arc
a TROLL
For example,
UVM's can communicate with a DPVM.
user may want to query an ITMS dat tbase, or an APL user may
of
these
Each
a SFQUEI
da'tabase.
want
to query
communications
a
r-j uires
combinations
user/database
interface, which will fcrmat user queries for the particular
format the reply from the
database system, signal the DVM,
DBVM for the UVM, and signal
processed.
These
functions
JVM that the query has been
wrc previously handled by the
(MUI).
nterface
GMIS Multi-User
the
Now, a separate
interface
FJVM/DPVMcombination will be written that
each have
DBVM's will
The UVM's and
resides in the CVM.
standard interfaces, and all query and reply formatting and
intermachine communications will be handled by the CVM.
program for each
as
(n x m) interface
e as many
there could
(Although
iinder consideration will be
programs, many of the iterfaces
nly activate its CVM through the MGR
A UVM need
the same).
with the appropriate
irterfac- program, and any
to send,
has a query
the rest of the wcrk.
it simply signals
2.7.2.
its
time a UVM
CVM, which does
Inter-machine coinunications Mechanism
Much of
the spooled virtual card
read/punch mechanism
facility
that was used for the inter-machine communications
will be replaced with the new SPY
of the GMIS prototype
memory-to-memory inter-machine
IBM Yorktown). The SPY routines
than the spooling mechanism.
2.7.3.
GMIS
Usaqe
communications
send
soft ware (from
messages
much faster
Monitcr
A Usage Monitor VP (UMVM) will be installed that
collects data from DBVM's (e.g. quories processed, execution
statistics) and TJVM's (e.g. descriptions of applications
done cn the CVM).
work being
later
that
can be rtrieved
analysis.
It will generate
for performance
a
log file
and
usage
2.7.4. Current Progress on Implementation of New GIS
been partially
simulated
VM
system has
At this
time, the new GIS
tested
in a
implemented
and
is
heing
VM/37C
runs under
the production
environment, which
The
Cambridqe
Scientific
Center.
operatinq system at the
Machine can AU'?OLO(a communications Virtual
hy a User Virtual Machine, and
eing sigral]ed
Manger Virtual
Machine after
interface
the TRANSACT/SEQUFL
Some of the
for testing.
for the
near future
tor the
additional
CVMis
almost ready
CVMinterfaces
include TROLL/SEQUJEL,
planned
APL/SEQUJEL,
and
APL/GIS.
xample Enhancements
2.7.5. Quer! By
front
We are investigating the possibility of rebuilding the
nd of the Query By Example (QBX) database system to
generate a less cryptic rEL/DML that can take advantage of
the efficient relational operators that have been built into
QBX.
This front end could make
use of a TANSACT-like
user
interface.
3. Computer Technologies Ued
in the GMIS Effort
GMIS, we have
In developing
made extensive
use of many
made available through the
software and hardware facilities
The software facilities
IBMCambridgeScientific Center.
used include:
1)
Language proce~scrs
- Assembly Language
- P/I Optimizing Compiler
-
FORTRAN
.
.
-
APLS.V
~~~~~~~~~~~~~~~~~~~~~~~~~~~
·
- SCRIPT
2)
for documentation).
VM/370 system
software
Modification of V ASCII
adaptation of ASCII terminals to VM
translate tables
routines
- Us; of many I/C and communications
call the CMS modules directly through BAL interfaces.
- Ulse of simulated VM1/370under
to test new GMIS
3)
and SPY code.
IBM experimental
code
for
that
production VM/370
-
:;}OTIFI.
-
-
/XpA
, /
r
_
AM
BX
- SPY
The
facilitics
hardware-
addition
disks,
to the
tapes)
1)
in
use I
in
GMI.S development,
CPU, printers,
stan.lard dvic('- 'iuod (.g.
ncludle:
Termin als
IBM 2741
-
- IBM 3270
- Telctype
-
TY
-
co~rratiY1c :i:-:-lay devices
(using
light
pens).
2) Telocommlnicationsfcl
ities
or 2741 lines,
- IBM 370a4 pregrammel
116 and 300
band TTY lines
-
MIT extensio ns conn.-ctielto VM/370
of IBM/M1 Joint
4. Advantages
t.Fdy
ports.
Environment in
GMIS
Develo2pment
The technicl I
GMIS
and
c eritio?-
l
environment
provided
IBM/MITJoint Stuly h: made it possible for the
through t
prototype
to
be
wade
opnrationa1,
to pro rse,
development of the new MTIS
the reasons for
this raid
and
for
the
Some of
o rapidly.
the type of
regress are due to
technical nvironment used; tfh- VM/370 operating
syst.em is
evelopment, combining the
an excellent facility fcr syst{m
advantages
systems, a
ability
very flexible
(CMS) and many other
Beside
through
ime qhrinrg,
of interactive
language processors,
crc
t
crttinnq
of many
system
commandlanguage
.cubtl- features.
hese- ad v anta (jes,
many
availability
S_,pportdifferent operatin
hich
comrnmercially available
opportunities unitie tc cur
rlationship
could
be accessed
systerms, were
s overal
to IBM:
1) The opportunity to us' and modify IBM experimental
software, including AM, XAM, STEL,
F'1 LkN (be-fore it was
announced
2)
y IBM) and SPY.
The ability
to us V
i
unconventional
running VM under VM, accs ?i qrl CMS ru tines
modifying
VM for T)
L nd for
ways (e.g.
directl y,
2:>Y)
, with the help) of CSC'
-1 0-
personnel.
Outsiel( vndors mijht not permit us to try some
of these experiments, or cur -iccers
to the vendor'ssystems
people might be limited.
3)
Our
close
rapport
with
CSC
solution of both technical (-.g.
design) and administrative
(e.g.
obtaining manuals) problems.
4)
The
fact that
we
personnel
for
the
fixing bugs, systems
setting up accounts,
ha-i direct
access
to the
Machine Room, so we cculd pick up our output
make minor
program changes immediately at
terminals.
CSC
uickly and
the local
5. Suggestions for Technological tIMrovements
After
using the
facilities
at IBM for
over two years,
could e
We will list
three of those
there are some
technical area- where improvements
made,
point of view.
from our
areas which cone tc mind
ere:
1) Interactive Ia atase
m nagement systems After
investigating
the availability
of interactive database
management systems within IBM, w
were disappointed
to find
no acceptable offerings beyond SFOUEL and IMS.
SEQUEL is
still very experimental, as we have pointed out many times.
IMS is restricted
to a hierarchial
currently compatitle
work
needs
2)
with CMS.
view of data
Much more
to be done in this arila.
Better
VM
irter-machino
improve
Hlowver,
communications
these
facilities
and
should
and
shared virtual
are initial
;ignalling
The
efforts
between
VM's.
be refined and incorporated
into the VM/370product, and ventually
siqnalling
-
communications
SIGNAL&SHAREand SPY softwarefacilities
to
and is not
product oriented
these intermachine
mmory segment
facilities
should be built into the TEM hrdware.
3)
fotlnd a
Pemote
need for
printing and
display terminals
faster and
more sophisticated
- We
have
terminals
that can be connected rcmotclv to the computer through
ordinary
telephone
lines.
Specific
suggestions
for
improvements in terminals that are possible today would be
to bild
an asynchronous
be used
as
a remote
controller, and a
an IBM 2741.
30 tc
IBM 3270 display terminal so it can
stand-alone
terminal
without
a
C character per
second version of
- 11-
A
AFFendix
Current
iUses of IBM Accounts
~or Systems
Development
July 16, 176
The
following
is
a list
ID, and the nature
1)
of the
ID:
Account
of
each ID
being used
name of the principal
systems development, the
cworkbing
for
user of the
done on the account:
NFfEMIS6
Principal users:
Bryan Mau, Ray FPesel
Purpose of account:
All of the MIS source code resides on the
NEEMIS6194 disk. Tho account is used to store the
code, and to make minor changes and enhancements to
the code.
2)
Account
ID:
NEFMIS7
Principal users:
Clerical
help, Louis Gutentag
Purpose of account:
All systems related documentation is entered
on this account in SCRIPT. This account is also
of the
experimental applications
used for
relational database software, for possible uses in
the
3)
old and new GMIS.
Account
ID:
NEEMISP
Principal users:
Bot Selirg:r
Purpose of account:
Systems
rcgrcimminq account.
Bob is writing
several
arts of the new GMIS, and does much of his
work n this acccunt.
4)
Account
ID: GMIS
Principal users:
- 12 -
Nolln, (I,oii.
(; t. lt
jI r )po I.si ble)
PUtpoe of a(cccunt:
This acccunt c )n+;iins all of the executable
GMTSmodules and EYFC
ril
s for users to access
It also contains all of he TXTLIB's and MACLIB's
necessary to create?
i; nodules and tc compile
GMIS programs, but do.s riot contain the GMIS source
code.
this
Finished SCRIPT Fil£s are
account
to users.
(1 /O)
=-7)
to
All GIS
efore tey
Account I:
also placed
on
ake ,T'S documentation
available
u,rTs
run ay
link to the GMIS account
r;MIS programs.
MT'I, GMIS2, GMIS3
Principal users:
Chat Lam, Pob Slinger,
Tony Smith
Purpose of accounts:
The nw
GFIS i
being developed and tested
under these acccunts. GMI32 runs the simulated VM
under VM for testing of he Manager Virtual Machine
and the SPY ccde. The other accounts are used to
develop the GMIS communications handlers, interface
routines,
tc.
-13-
Arpendlix B
Project GMIS Progress Report
August
22, 1975
This document will suwmarize the
soft.ware develcpment
progress made on GIS
to date.
After receiving t
code for SEQUEL, Release 1 from San
Jose,
we brought
up the system
using
their
3270
ser
Friendly Interface (UF170).
SiInce then, we have
written a
number of our own UI's
as described later in this paper.
We refrained from making chanjes to the actual SEQUEL code
until we received
and
rcught up Release 2
chanqes to SEQUEL are detailed in
NEEMIS6,
categories:
but
they
1) Added DTYPE
fall
Added
into
the
following
return
to pass
replies back to the UFI.
COrE
of
Our
general
array to Transaction Interface
data types of transaction
2)
of SEQUEL.
the SEQLOG SEQUEL file on
1
for
DISPLAY
ASSERTION
command.
3) Modified SEQUIEI/XFAM
to handle problem of creating
inversions
on columns with numeric values greater
than
2**21.
These inversions
will
now be suppressed.
4) Fixed assorted XA?
and
5)
implementation
Extended
SEQUEL
maximumdegree of a table,
RAMbugs.
restrictions
maximumlength of an identifier,
and maximumsize of a character
string constant.
formatting of rows in TRANS and
QUERY were
generality (for any "magic numbers"),
rewritten
on
output
for
Currently, we are odifying SEQUEL to accept the unary
- operators as prefixes to numeric literals, and to
handle unscaled FXFD
rICIMAL constants. After unscaled
FIXED DECIMAL is operational, we will extend this feature to
include scaled decimal numbers.
+ and
The current documertation on
these changes is included
in these documents:
Log of SEQUELModifications
Limitations of SEQUEL Release 3
Transaction Interface Description - MIT/SEQUEL Rel. 3
TRANSA''LC
TRANSACT
is a UFI
esigne'i
to
give users
a facility
to
enter transactions and receive replies from any terminal
device supported by VM/370. A d:-scription of the current
features
of TRANSACT
arc incluid
in the documents:
TRANSACT Commands
Explanation cf TANSACT Cmmands
We
version
features:
the
arp currently
almost
of TRANSACT that
will
1) A DISPILAYopticn
transaction
displaying the
2)
which,
which
transaction.
A PUN command
macro
rc)orqor
variable substitution,
version
TNSCT
will
b ?foro
has Leen written
be
which
containing
Tmplement-edfeatures Include
looping, a
A draft
3) If a POFI
it
display
The DISPLAY
is
conlitional
o
a loc.lment
this facility is availatlc (UNCOmmand
Guile)
A-disk,
will
~' EC-like files
write
JUI commands.
commandlines.
ON,
processing
new
npw
OUTPU'I devic.
will allow a iuer to
TFANSACT and S
when st
IRANSAC(' was
reply to that
sent to the current
finishe d debugging
a
support
the following
~:iA i
execution of
describin,
on the TT'ANSACTisoir's
PUN bcf£or,' cuxecutionof
the
first
TRANSACT command.
We have
also
pr~ Farp'd
a
proposal
for
a TRANSACT
interactive transaction
(editor,which will allow TRANSACT
users tc
modify transactions ;tfter
they have: been -ntered
(e.(. to correct
errors).
A ;elective dumping facility
is
also planned for
THANSPCT. This fAcility will permit users
to put th' result
cf any *3u rv into
a CMS file
i
bulk1
loader format. tUsingthis facility, any ;electedportion f
~
a database
may be savcd,
deleted from tth current databas,
and rstored
to the database
at ?rny future'time.
Multi-User Interface
(UI)
A UFI named SFQ? has he'n
implemen-ntf1 which p-,rmits
external
virtual
machines
to 'eT(i tratisaction?to a comman
Transaction Virtual
Machine (Vr) with
SiOJUEL
dat.aasp.
Communications facilit is
are provided through the ulse ot
shared multi-writeCM,
interprocessor signall ig
transaction and
reply
by means of virtual
and punches. This facility
is
described
iles,
and
card raders
fully in
Iouis
-
-1
Gutentag's Master's Thesis, Section 4.2.
this
There is some room for improvempnt in performance using
However,
UI implementatior.
mod.ified version of
slow system.
San Jose's
we plan
up a
to bring
SIGNAL&SHARE
to replace our
TransRarent TRANSInterface for the MUI
A procedure called IRIFUFI has been written to simulate
the SQUELtTransaction Interface for the MUI. This means,
using TIFUFIinstead ot
for example, that a call tc SEQ{IPL
into a transaction file,
TRANS
will actually write STRING
signal the TVM to process the transaction, and wait for the
TVMto signalthatit has written the reply file.
This procedure
permits
u
our existing
to use
tFI's
multi-user
env ironment
without
(e.g. IRA NSACT)
in a
modifying their scurce code. An EXEC called EMGEN on GMIS
191 performs the same function as CRTMOD, but uses TPIFUFI,
so resulting modules
running on a machine
will run only with the
with its own database.
MUI instead of
APL Interface
A series of assembly code
been writteOn to allow
TVM
through
passed to
the Mlti-User
the SEQUFL
machine
following APLstatement:
Z <-
rout.ines
SQUIT
QFPY
and
PL functions
to
transactions
Interface.
have
e passed
Transactions
(TYVM) through
the use
to a
are
of the
'<SEQUET translction>'
The results
f the
from
EQUEL.
where Z is the return code
or matrices
in API,
transaction
are
stored
as vectors
variables,
represent.
which are
named afer
t he column:, that
they
APL / TRANSACT
of TANVSAC
has-henT
imilemented
A subset
in the APL environment
function to allow user
th
rsults
of queries i
Complete
leave APL.
on APL TRANSACT must
as an API.
to display
a tabular format without having to
cocumnntation
on
still t'e written.
the A
Interface
and
-16-
Bulk loader.-,
The original
has gone
asses
several
San Jose
received from
cader
LSDB bulk
through
First, thE
of revisions.
loader was enhanced to permit rows that spanned more than
one 80 byte record to be loaded. This bulk loader was
LTDB.
called
series
The next
LTDBwere designed to
changes to
of
that
of SEQUEL
For generality,
version
with
our new
f up to 16 characters.
make
it compatible
permits identifiers
LTUB was extended in the fcllcwing ways:
1) Free format control cards.
2) Multiple
primary ky
card
card was added to
control
Previously, the $PRIKEYcard only
columns
seven
SEQUE.
:FNDKFY
extension.
permit this
supported primary keys of
or less.
Release
includes
2
on tables
asserticns
integrity
A
descriptions.
in
a
facility
making
LTDB calls
facility,
and bypasses this integrity
directly,
XRAM
for
the database.
which
Therefore, we generated
is implemented at the SQUFI level.
LTDBA is the same as
LTDB.
two new bulk loaders tc replace
LTDrRB is functionally
directly.
XPAM
and calls
LTDB
UPI which bulk
but is really a SEQUEL
equivalent to LTDBA,
tradeoff
fast and
slow
by means
into tables
loads rows
between
ignores
and checks
using
the
integrity
each
assertions.
integrity
Databas,,e"describes the
qreater detail.
of
NSFRT
two loaders
assertions,
inserted
and
row against
The
commands.
LTDBA is
is this:
LTDBB is
the
very
stored
The document "Bulkloadinq of a
use of the current bulk loaders in
SEQUEL atabase BackuL, Utilities
Th(re are currently two mthods to create backup copies
stand-alone utility
of SEQUELdatabases: sing th SQDUT)MP
program or the CMSuti lity
Dn.
SEQDT)UM
i a SEQTET. FI which
dumps a complete
copy of
This
hulk loader format.
at
any
to
their
database
to
add
that
data
permits users
dumps
a
The DDR program
tho hulk lcader.
time,
using
"snapshot" of the disks; containing the database, ad can he
used only to rstore the database to its state of integrity
at the time it was dumped. The tradeoff here is that
the
database +o CMS files
in
a ,nore f exible backup, but is slow when
creates
SEQDJUMP
to
dumping because it as to issue many S'OUELtransactions
perform
the
dump.
DPR, on the
other
hand,
dumps the
-17any exi-;inql ,atiah.se is
but.
.atahase quickly,
SEQUEL
be
Wcrks a c_
Ray Fessel
APT, workspace
has written an
(used fcr
that plots the
util.izd by a multi-segment RAM
amounts of disk space being
database
at
Bryan Mau.
obtained from Ray Fessel c
RAM Utilization
use of DDR can
on the
and information
atabases",
reRlaced
dumped by DD:.
Backup Dumps of
restoration time by the version that was
SEQDUMP is described i the piper "Creating
SF ClEt)
at
ny
given
time.
See
Ray
Fessel for further information.
TSP
A version
package
Smith
cf
is crrently
and Kai Wong.
at. the
the Time
Series
teing broqht.
This
MIT Tnformation
Processor
up under
that is being used
tho vrsion
is
statistics
CMSby Tony
rrocessing (Center.
After our
we will explore methods
an interface
and to add
version of TSP is debugged,
it an interactive system,
CMS
to make
to our
GMIS Multi-User In+erface.
TROLL
of bringing up a ccpy of thp
Weare also in the p'LOCo'S'
TROLL econometric modeling system under the VM/370 system at
the Cambridqe Scirntitic Cent.gr. There are several problems
which are causing delays in cur progress on this project.
First,
VM
the
versicn
of
'rOl
L
from
NBER
requires
modifications to the VM/370 op.rating system to support
their shared memory sgment and inter-processor signalling
functions.
other
(e.g.
under
These modifications
existing versions
San ose,
cf
must be made compatible with
shared
Yorktewn, CSC).
VM/370 as a namf-d system
(like
memoryand signalling
Also,
TROLLis
CMS), and uses
invoked
its
own
This makes the process of building an
unique fil{e system.
efficient
interface
between TROLL and the GMISMulti-User
Towever, as always, we can
Interface a formidable task.
provide
intorim
solutions
VM, and we can lise
tiybinging
virtual
communicate with GMIS.
u
TROLL on a VM under
card readers
and puncles
to
Arpfentix
Visit
to
I
C
San Jose P(etarch Laoratory
27-2 ° , 1975
AucuFt
I ouis
M.
iutpntag
Overview of Topics for Di,!cus ;ion ;tand]resentation
1.
Proqress
developm
update
cn
TBi /MTT Joint
Study
softwar4
nt
2.
Presentation of Prcjcct NFMIS
3.
Performance
analysis
of
SFQUE,
Release
2.
Identification of areas where performance
is especially
weak, and could be improved in current release:
I. 1
(cbectivc
applications.
SFQUFL
level
in most cases is to rduc
3.1.1.
Abse-nce cf GOUIP Y operator.
3.1.2.
Ilnetficient
calls to XRAM).
handling
of
joins
through
nested queries.
3.1.3. Inefficient
predicates
3.1.4. Creaticr
inversions
rsolution
on NM and
facility.
projecticns
in
compl¢ex
CHARdtiomains in SQUEL
predicates dloes not fully
3. 1.5. Technique
of
(too manycalls to TSTNODE)
((x non-creatioln) of temporary
used
to
utilize inversion
generate
SEQUL
cau-es excessive time to b spent
?YRAM
(really
an XRAM
design problem).
3.2. XPA.M
level
3.2.1.
3.2.2.
4.
ptimization
page
etches
vs.
Cptimization of code in specific
mu1+i-sQoEnt RM routines.
Discussion of
Data Base Grcip.
4..
of
resident page searches.
short and long term
Applications
orie nta t ion.
crientation
memory
XRAM
and
goals of
San Josh
vs.
research
-19 -
4. 2
l've lopent
4.
Time frame for roll
4. 4
Exploration
f jcs r intrfae:.
cf
t i.o: ot p+,rformance i:x;ues.
altornate
approachies
4 .5. Plan for
Performance
5.1.2.
ystem
r
analysis
5.1.1. Apply
P.
from SEQUEL.
larned
hat we hve
Handling
cf jirn.r.
of transactions
5.1.3. Reduction and ortimiza.ion
to
to
v,';teelm
t.o meet future needs
Analysis of System 1,as
of IBM/MIT Jcint Study.
5.1
IBM
for testing and feedback:.
wider user adience
5.
system
System R)
systems (e.gf.
of
release
to
existing
of
cr inc rloration
developient
products (.q. IMS).
f'rm
some ncrral
non-proced r al) .
(i..:.
at- h:,3
techniques.
accessinI
Ijarh
a,,7 collect ion,
and
5.1. . Data clusterin]
make D)ML truly
other space utili7ation is:s.
Automatic (us,'r-trnspar-nt)
5.1
of
strulctures
database
5.2
virtual
Feature
5.2.
1
stcrtage i V.
analysis
Transact ion
IFFT's
FEO.)U'L v.S.
of
for
TnterF'aces
aO
rplaci.mont
will
RSI (how much dehl'iling
5.2.2.
u:;c
of
of i;yv+cm .
Compatibility
o xistin
of
minri;li,;ltion
anri
p+imiation
5.1.6.
to dmtabase over ti me.
apllie,
transactions
reorganization
ase d on types of user
Data
yFes supportod
BINARY, FLCAT TN.'-Y,
Sy:eom
t Laiis tr
ot
t
of
XRAIqwith
RSI need?)
(7TXPn DElCIMAL, IX:D
fIi:I~CT).
for
-specially
o)f NI I,.vailues;,
Handling
returned values of 1-atistical functions.
5.2.3.
5.2.4.
Eixtensibility oF
addition
cf
DMI.,
statistic l
possibl
macro
extensior
of
especially
for
fuInctions
and
d ef initions.
con
n
"_
ystemi
capabilities to rduce
dependence
UFI's f r numeric +ransformations.
Gneriral
utational
on APL and
-2
-
restrictions
5.2.5. Possihb. impl-mntation
nutbers"
"magic
prrchle
(.g.
SFOU1L, maximum
i
of rows in tab'.l,, miximum of pages/segment,
running
cut of ID's)
5.2.6. User views ani acc¢ssing of system tables.
5.2.7. DependEncies on
to
SIGNAT&SHARF modifications
V.
5.2.7.1. Exrlcre
oft
acceptance
to
relating
probloms
oditications
by I
or
at
customer instal1lations.
modifications to M for
5.2.7.2. Discuss NR
TROII - compitibility and efficicncy
issues.
Ne l
to
agree
onr
st.anda rd
interface for 'lifferent implementations
of SIGNAL9SHAPf-.
6.
Discussion
of docu}entaticn
roblems.
6.1. SEQUEL Languace Referenc? Manual.
6.2.. Improvedt
used.
documentation
of
code
and
algorithu;s
- 2 1-
Ar-[.n!iix
Loan of
SFCIfFt
?,
odifications
4/30/75 L. Gutentag
Modified UFIDCL to include arr.lycalled DPYPE which contains
t.he
data
(MAXDEGREF)
types
of
BIN FIXED
DTYPE
output
X.
columns,
declared
E'lYPE to
the datai types of
5/1/75 L. Gutentag
Modified
columns.
QUEPY
tc
s-t
output
5/13/75 . Fessel (loggqed y . (l1tntag)
Modified TRANS so
hat
all
will
return through
FILFSW=' 1'B and COnf=C,
be read
without
calls
return
EQUEl with FTLESW='1'B
to SF(T1
.T by the
a new call
5/14/75
P.. t Fessel
(logq(d
y .
5l. /
5
'
q d]
Modified
to
the
in+nrface.
Previously,
if
the next statem(:ntin the file would
DDASERT so that
a
tUFI.
tnntag)
r.
DISPT.AY AS.iRTiON
command will
with COPE=1instead of COr?=1).
5/29/75 R. Fessel (logged y . u(31:tenta:)
Modified XPARSE so that
CHAR (QSTRING_ IENGTH+l)
the size
of BJFFERis
declared
as
VAP.
6/24/75, R. Fessel
ModifiedXRAM routine
when an
attempt
the domains contains
2**21.
relation
In
RINV so t-
is made to
nurhber outsile
this case,
the
it
,returns 9
creat* an inversion
inversion
must be testedt tc see
but
in FCOrP
one of
th,? range between 1 and
tuple
for the
v- ich domains failed
cntrol
to have
inversions created becausse~for to'sc . domains where inversion
creation is possible, such i nv,,rnins are actually created.
6/25/75 P. Fessel
Modified CRTINVso that it detect-; . return code of 9 from
XRTINV.In this case an rror nossage is composed with a
return code of 99 and the na.m:
of th. failed
column(s) is
-22 -
appended to the message. Additionally th-; type 9 relafions
originally created for these inv,-rsion, - are dropped. Any
roce,-di
normally.
inversions which succeed
. Fessel
6/30/75
Modified GENINV so that
when called
to creat
if
a
it jet3
an
CODE of 9 from XINV
temporarv ivrsion,
it returns a
special value in CODEt PASS3,na;jily 999.
7/1/75, RP.Fessel
Modified XPAPSE routin.
sc thit i:' the STATIST bit is on,
and the FILFSWbit
is on, evory +ime a record is read from
the query file,
it
is also writ+;:-n
out to the statis+ics
+
the statistics
file. Thus
ouplti
will.
always
query, even if it is injut from a `:ile.
contain the
7/8/75., P. Fessel
ASSFMFIF fil
retiirred
in
,odified IXFCLCK
times
are
now
microseconds.
package.
s:) that
virtuai and
total
mil.liseconds
rather than
overflows
This prevents fix-o=
in stat istics
essel
7/9/75 R.
Modified PASS3 routinIe in accordT nce with suggestion from
Mort Astrahan so that it rop-rlv handles a node which it
tries
a temporary invrf-sion for
to create
GENINV returns
a code
contained invalid
ct
numeric ati.
question has to dc multirle
7/9/75
indicating
999,
In this
tut for which
that
the column
case the
scnc- of the relation.
node in
FE. Fessel
Modified IXECLCKroutine
aain
so ta
timesc
are returned
in
units of 10 micrcseconds. This will still prevent fixed
overflows in statistics packar.q
while still retaininq
adequat e resoluticn.
7/14/75. Fessel
Modified
XPAn
routi ne
(RINV
so
t hat
ZGDEL
internal
subroutine does nct modify vira.hlei; used elsewhere. This
relations
are now
modification means that the type 9 XRAM
correctly dropped when either XRnRTIV
is invoked or when an
inversion relation is droped i nt,,rnally because it contains
-2 3numeric data outside
the
range btwt?,n
1 and 2*21.
7/15/75 R. Fessel
XRFTCHT so that the pare
Modified XRAM routines XRFETCr a
pointed to by pointer 2 is now unlocked. This page contains
the XRAM relation used( in th, arguments to these 2 ent.ry
points.
7/15/75 R. Fessel
so that it
Modified DPINV
associated
type 9 relation
oes
not call XRDROP to drop the
- inversion
with th:
this relaticn autcmatically.
drops
7/15/75
since XPAMnow
. Fessel
does
an explicit call
so that it no loner
Modified CTINV
an
with
the typ 9 r-lati.cn associated
for
to XRDROP
t cr -4t
inversion that failed to -'1.
7/15/75
Modified
to
. Fessel
NINV so
the
XRDROP for
call
it nc lcnfvYr does an explicit
w i.h an
associated
1.ition
ty[:c9 ri-
that
inversion that failed tc l.:ccr:eat,1.
7/17/75 R. Fssel
(in assembly ZGFTID)so that
Fixed ug in RAMroutine 7ZPHFELIrD
block is not c.lchbbere, wLhenthe last ID on a
control
in the cell ha-.,
d thh-third [page
relation page is free: ane
not. been
allocated.
Additionally,
lthe
;age
which had
its
last ID deleted was not eing markd as; empty and rlation
pages were not being reused.
7/23/75 R.Fessel
Modified
RAM
routinsr,~
changps to correct
VFLnW
been put in about 18 months ago
Jose version.
a nd
bugs fcr vrv large
% ?IN GF.
but had got lost
7/24/75 L. Gutentag
Modifiel
Reinstalled
relations which had
FIDCLto include new "magic numbers":
in the San
-24 (was- 15)
MAXDEGREE=32
(was H)
MAX NAMELENGTH=16
LENGTH =128 (was 6)
MAXSTRING
QSTRINGjE.NGTH=42, (was 2G0)
Added new magic numbers for us,.in QCATand UFI's:
SKIPNAME=MAXNAM" LFNGTH+1;
NAME_SPACE=MAX_NAME_LF4GIYH-2;
DOMAIN FOIREAT=MAX NAMlF IFNGTH+17;
TABLE LENGTH=MAX NAE
SPACE=MAX
DOMAN
NAME
LFNG'IH
+2;
I.FNGTH-4;
..ENG'IH+21;
NAM E
TABLEFORMAT=2*MAX
. cutontag
7/24/75
Modified TANDCI
"ic
n
to i]lud
numltrs":
COLUMN_SIZE=40
(wis t)
DOMAIN_SIZE=40 (was 3))
NUMBERSST2E=256 (wa 3)
STRINGS_SIZE=256 (was 3C)
7/24/75 . Gutentag
Modified all
appeare. as
SFQTIJT,routiln
whic
i
'Ie ; :ortr-rt
c6rinstants.
"magic numbers"
th
variable
r?procossor
was substituted for each consti n+. Th, greatfvst occurrences
of these constants were.in rout ines utilizing the shadow
catalogs and in QCAT.
7/24/75
L. Gutentag
Modified
TRANS
starting
n lin-
14601 to revise
the
technirqu
rowr; in Q3TRING(.Now, all
to format cutpit
used in GETROWS
output columns will be cnterc<d tinder thefir column titles.
This
new
code
wil 1
MAX NAME LENGTH a
not
was t
a fected
be
[revic'li
by
a
chanrge
in
codi.
7/24/75 L. Gutentag
Modified,
QUERY start
ing at.
i in
750
to
format
column
', !'pr:vious code was written
headings in a general way.
Now,
r--gariless of the value of
assuming MAXNAMELEN(;'rT=E.
_LFNGTH,
all column tit
MAXNAME
column
will be centered over the
,;
ata formatted by GFT{O.S in TA1S.
7/24/75 L Gutentag
-25Deleted the declarationl for EPAR.F[ NTRY in TRANS;
lTIInCI.
that declaration in
included
7/30/75 R. Fessel
Fixed RAM routine ZTRIAE in accordance with insructions from
Raymond Lorie. ScIved Frcblem with retrieval from relationt
C-rings on C
on an A paqe and several
with a single B-ring
when NEXT was invoked until end of
Symptom was that
paqes.
relation was returned, every entry was retrieved twice.
7/31/75 R. Fessel
Made 2 significant charges to SEQUEL routine XPARSF. All
declarations generated by the parser generator are now
brought in with a %INCIODE statement from a library member
he semantic routines in
called PARSDC1. Similarly, all
are now brought in
(part o XARSE)
subroultine SYNTHESIZE
The file
SEMANTIC.
parser generator
PARSDCI COPY was
member called
generated
from
the
the grammar deck received
using as inpt.
Mehl which is the
from Jim
library
a
front
INCLUDE statement
an
with
grammar for SEQUJEL, Release
COPYwas crett.el
The file SEMANTIC
old copy of XPARSE.
by editing
2.
it out of the
7/31/75 . Fessel
The SEQUELgrammar was modified to include unary + and This modified grammar
operators prefixing numeric liter-il;.
was then run through th, parse table generating procedure to
produce
a
new versicr
COPY. Also
cf PR~nCL
the
file
for
include semantic routines
SEMANTIC
COPYwas modified to
the new productions.
8/5/75 R. Fessel
GENC(AT was modified
class relation.
SEQUELT roulltines
type.
to put the string
DEC'
in the SYSCHAR
this ccnstant is necessary sc that various
data
decimal
will
t.e ;bhl.? to recognize
8/6/75 R. Fessel
catalog declarations
The variable CDECTIDwas ade, to te
in the fil
to
the
relation.
TI)
varinle
XRMDCT.COPY. This
of
the
string
'
FC'
in
will
be initialized
the
SYSC HiA?
class
- 26-
. Fessvl
8/6/75
domain
This
(GRAMMAR.
The new grammir is in the filie DECIMAL,
type.
file:
to make DEC a valid
was modified
The SEQUELgrammar
used
was
to
PARSDCI.COPY.
of
version
a new
gencrate
Also the file SEMANTICCCPY wvt modified to include a
semantic routine for the new P:roduction. These modified
were then used to qenora te a nw objectdeck for
files
XPARSE.
8/6/75 R. Fessel
INITCAT, QCAT, DFDOl, DL)ELDOM,and DFTAP
SEQUEL routines
were all modified to hardle dcmain- with a data type of DEC.
yp? was assigned as 3.
datt
The internal code for tis
. Fessel
8/7/75
NIJMDCL
Modified
fi l
COPY
for DECTMALTYEF
declaration
a
i ncl,]d
tc
preprocessor
which is set to 3.
8/7/75 R. Fessel
t
COPYfil
Modified TRANDCT.
DNUMBER
array
in
numbers
a SEQULFT
for a
include a declaration
of
decimal representation
hcleds the
which
stateunt.
8/7/75 R. Fessel
Modified SEMANTIC COPY file so tha+ all numeric literals in
NUMBER array as ell as
ut intc the
a SEQUEL statement ar,
the NUMBERS
array. The same index,
This modifiod
arrays.
of XPARSF TFXT.
NUMX, is used
to generate
file wa';-used
for both
a new copy
8/7/75 R. Fessel
Modified ASSERT routi ne so that no spcial
done
for
a predicate
such predicateswill
predicates
9/3/75,
a BETWF,'1J!...
with
handle]
by
processing
is
ND clause. Instead,
SELECT, as are all
other
crrently.
. Fessel
Modified XRAM routine XTTNV in accordance with directions
from Raymond Lorie, adding loop to lock buffers containing
tuple
id
lists at top of
for the inversions.
main loon creating
RAM relations
-27-
RP. Fessel
10/8/7
odified UFIDCL CCPY, TFANS an:
UJFIDCLa
Added to
static
that if
external
called
now, sinqle
iodiified
LCG.
in
bit var.iahl
TRANS and
XPARSF so
SEQUEL
statement is always sent to
LOGis on, t
Also st
ti mstamp.
the STATPRI file, along with a
STATPRI file is
LOif
Y¥nARSFto i)-lewflt t(
facility.
the trarsaction typ?
all columns and tables reference
to the
lis
(TRANTYP) and
i the statement.
of
P. Fesscl 1/20/75
Modified PAm routin,
ZPHAStI o that
it
X'7F
or rlation
R. Fessel
10/21/7 c
Modified
routine TSTNOFEin
from Mort
no
ages whose last 2
pawes which nd in X'FF'.
hash value of 0 for dta
Astrahan
longer
rt.irnls
a
hrx ligit;- arc--
accor-iarice with
itruc
ti)ns
+,]plnrelicates with inulti lo5!
so that
columns are handled properly.
P. Fssel
11/18/75
Corrrctod
XRAM routir.n
DO l)op for
lti
.-
so
7(FTF
finding ovrrflow
coll.!
t ,
u[ppr
'ith
nmpty
limit
o
t-
pag(-s is
nw
correct.
11/q19/75
. Fessel
QTJFL routin
Corrected
output
formatting
whenr
characte rs.
11/28/75
TNS
the
nam::
-r:rors
fnr
l,:uths
introduced in the(
woeL,
increased
o
1f
. Fessel
(GENCATso
Modified
that
LL,, ot
an i ECMNA1, in
FLNAME,CNAMECOLNAMI,
both
entries
SYSTAB and
for
DOMCAT
TNGTrH). This was done to
1( (MAX_NAME_,
t
are initialized
when domains,
of udqitinq
tfci ;elations
obviate ncessity
columns,assertions,
SFQUEL or the
12/1/75
R.
and tabl-is ar: created either
using
ulk loalder.
essel
Modified PAM routine Z
t'I
to correct error introduced while
fix note'
makin:
;-.i;t:ve. Upper limit
1/12/7({ B.
0 loop for scan of
o-f
was off ty 1.
overflew cis
Mau
Installed scurity
features for SEOEL
database. Modified
UFIDCL to include xterral bit (1) variable S. CURTY-indicates
to SEQUEL whether or not to perform access
rights checking.
Modified routine TABINIT--insert~d a check just before final
return to test SECUPTY and call the access checking routine
(SECCHK) if
indicated. Modified routine WTAPL to signal
condiation 'PLXXX' if
crrcr
linking
340 or error accessing
it;
signal should
to prevent
he picked up by the UFI
error on part
(SE(3); this is
of calling machine
the
FT.
Modified
rcutinp TRANS5ACT to
'0'B--default is no scurity
for -inqle-uspr
routine
SEQ2
renamed
SFQ3.
SECSIZE
condition
and
to
implement security
SEQ3 to
call
SFCCHK.
SEQIF:
1/15/76
th:b' ecurity
version
FILECHK,
Allowed for 2 new parameters
' NODI1SC' suppr cs;-s
'SECURE' invokes
new
ON-block into SEQ3 for
.sim)ply
.
ignore present
' PLXXX '--ca u.ies
request and return to XAPI.
to
design;
new routines:
hrce
Insert.dA
TIFU
from stopping
set SECURTY
to
mode.
Updated
th
disconnect
command;
iuec!-nism.
. Fessel
Modified
7CF1TP anm 7(;,FTB to
XRAMroutin.r~
change
algorithm
used to find whether ra[agcr b1ock which is requested is
already in a buffer.
Newalgri+hm
is that, it it is not
the most rec,nttlv requeted page or block, the page or block
number is hasled and tho corresponding hash table entry is
tested. If the ihigh
ordrT
it i
off,
the uffer pointed to by th
h s.
table
it is
found.
the right
Otherwisp the
scanned
to
them.
This
overflow
cne, te
find if
paow
reqilest-d pao
chain
f
or
the problem
which
was emptied
a
this occurs, the hig}, crder bit
or block
}uffLr
+the right pa-Je
solves
the page or block in
(,ntry is tested.
control
block
occurred
it. bhif-or
turnTed on.
If
a sbsefcuent
rquost
high order
bit
o
t l
1/20/76
Mau
is
was
itshsh
If
has beenii
blocks
is
in
of
one
when an
freed.
When
table entry is
was made for
a page or
block whos!eha:h value conflicts
with the released page, it
would apper tha+ that age was not in a huffter because the
its
hsh
that: page might rally
Modified
contain
of extra
B.
IJFIDCt
to
include
for each coluirn
blanks
QSTRING. 4odified
],:'
Pntry was on
e in a bl!ffor.
(cr
added
.+ te
TA 4
SEQDUJP
to use LPADto g
array
ret1rn
left
I, PAD
even though
(MAX DEGRPFE)
-- to
rom (FTrROWS)the number
)o: the' column's field in
to set+ TnAD in
(,ElTRCWS.Modified
the proper part
of QST}PItG
into
-2 9it,- ,vltplut
tile
2/10/7,
au
lontr
in
thcs¢
cas?s
wher" +the column name
thaln 8 chardcters or tho u . for the column.
B.
Modified
routine
XPARSF. Alphabet
Pxtended
several hretofore ivalid special characters
Also error messages revised.
is
to
include?
(eg ?,
g, *).
2/10/76 B. Mau Modified routine GETROWS; replacd with new
algorithm for stuffing CSTRING.
Also modified routine
SEQUEL to set TRANTYP t PARSNOTR7C if response from routine
PARSE indicates that
it lid not complete
the parse
(preciously, TRANTYP remained unchanged through a call
to
SEQUEL if the parser failed). Also modified macro NUMDCL to
include ew transaction tyre PR.SN3TREC (999).
2/10/76
B. Mau
Modified routine
QU F Y to
Previously, TRANS did this.
sq-t
LPAD
external
array.
2/12/76 P. Fessel
Modified
AM routine 7RIAT
so tt:
a binary relation
to mdake sur? tat
Previously, entries were
were zero or negative.
2/12/76
Modified
P.
it checks each
ntry in
it is loss than 2**21.
checked and rejected only
if they
essel
RAP routine
RAMLECMP o that it
prints the
code at the terminal whenever it is invoked.
AMB1OMB
2/18/76 P. Fessel
XAM
routine XINV so %% tt when it is scanning a
Modifiod
page for tuples in a articular relation,
if it finds an
entity that is not a tup1e in threlation,
it
unlock that entity if it is the master control
that relation.
does not
tuple for
3/11/76 P. Fessel
when the first bit map
Modified RAM routine ZFIBIK so t.it
is
filld,
i...
to?
first
20348 physical pages
for free pages
are all in
correctly.
use, swit ching
to t
second
it
map is handled
4/2/76
R . Fessel
Modififl
XRAM routine XFIuFrTso t Ji+
being updated,
no entry
i
when a control
ad,' in any inversions
tuple
is
which may
exist on the domains eing upla+d.
This is true
for all
control tuples except fcr the invrsicn cntrol tuple which
cannot be updated by XUFET.
4/6/76 R.
essc1
Modified XPAM file
XROPEN,XPCLOSF, etc.
NBCLEN which
with sever-l
modulo up to date with respect
to
contains entry points
modifications to bring
modifications
ade i
San
Jose.
4/9/76 R. Fssel
Modified XPAM file YPRAM which co:tiains
entry points ROPEN,
XPDEF, XPRMAKE, etc.
with -;everd,
modifications to bring
module
up to date wit
rs}Tect
+o modifications
made in San
Jose.
4/29/76
. Fessel
Modified XAM
decks
XRAM, NOPFN,
and
XINV
so
that when a
call
is made
to either
YXMAEF or XRUPDT and the new
or
modified tuple would
caus! an invalid value to be put into
any existing inversior,
than an
RCODE of 9 is returned and
the inversions(s)
only way
in qicsetien is auitomilatically dropped.
to find out which
examine the inversion cntrcl
or XRUPDT.
inve:sion(s)
tple
are dropped
The
is to
after the call to XMAKE
-31-
Appendix
s cf
Limitati
F
SQULT
Release
3
1. Maximum degree of relaticn = 32 (was 15 in SEQUEL Release
2)
2.
relation or column or domain =
Maximum length of name of
(was
16 characters
3. Maximumlength
64).
4. Data
types
el.
8 ir
of character
suFported
2).
string
data item
tfor database:
integers
= 128 (was
(NUM)
and
varying length character strinqs (CHAR)
~.
.
5. Constraints on Numeric rata:
A)
nly numbers in the following
range can
be entered
intc numeric columns:
-2,147,
B) Inversions
483, 4 P8
to
3,6 4 7
on numc-ric columns can
when all data in t.he
restrictive
2,147, 4
range:
columrns is in
only be
the
created
following
more
1 ! n ! 2,397,151
6.
Additional constraints on table,
column
and
domain
names:
A) The followinq
domain names:
AND
are
AET
13BETWEEN CHAF
DELETE
DFSCRIBE
DPOP
EMPTY
INTT ANVESSI(NS
LI ST
AX
invalid
S !L C
TOT
UN
CU
column
. S ET T
A35SERTION
AVG
CO'- PHTE
;3[ST1.AY
PR(CM
COUNT
DOMAINq
IN
CRPEATF
DOMAINS
INSERT
KEYS
rSFY
NrlM
ON
ET
T B
TABLES
7PP IT
WHERE
MIN
OR
as table,
and
-32 included
may not b
n) The follcwing characters
table, column or dcmain nDme:
in a
(period)
(comma)
; (seaicolon)
:
(colon)
<
>
(less-than)
(greater-tban)
=
(equals)
((left-parer)
) (right-parr)
+ (plus)
-
(minus)
(asterisk)
(logical nct)
J (logical or)
! (exclamation)
/ (left slash)
7.
8.
An input
SEtQUELquery
cannot
Maximum
(outer
amount
of
resting
than
he longer
a SEQUFL query:
in
4200
(was 2000 bytes
characters unless it is input via a file
in Rel. 2).
3 levels
block plus 2 lvels of nlestiuig).
9. The maximum number of
query is 100.
10. The following featutrs
not impl¢mented:
odes in thc parse
tree
of th- T3NPsyntax
<SET-COMP> (production
*
/
may nDot b
(production 3 )
+
<UNICIJE-PPFPD> (rciuctirn
of a SEQUEL
of SEQUELare
f(9)
IIlsf+]
71)
in
a
<SFT-CLAIS E>
- 33-
A r-:e
,-ndi
i x
Transacti on Inter arce escription
ITT-SEQUEL
Rl~.se
The UPI (User Friendly Interface)
of the
SEQ(JELT
system by callinq
3
interfaces
with the rest
the procedure
TRANS. The
UFI shares the following external variables with TRANS:
CHAR(420C)
QSTRIN(;
VAR,
DTYPF.(32),CCILEN(32), LPAD(.2), DWIDTH(32)
BIN FIXED,
(TRANTYP,CODF,,DrEGRFF,CARDIN, NUJMROWS,DISPPROW) BIN FIXED,
BIT (1)
(FtLESW,REPPO'T,STATIST)
TRANS
has
five
entry
cints:
TRANSIN,
S F QUEL,
GETROW S,
The valid
SEQSTOP, and WINDUP, which are descrihed below.
return codes for each entry point are listed. If CODE.
contains any other nutrher
after return fron TRANS, the
number is a cod. for some us.r r system error, and a
message describinq the rrcr ay h found in QSTRING.
TRANSIN: Must b
called
at
initialize the
SEQUEL:
If
beginning of
system.
IIESW='0'F,
user session
.4ormal return cod
a SEQUET statement
to
= 0.
to be processed
is in QSTPING. If FLFSW='1'B, one or more SEQUEL
statements are in the CS file SEQSTAT SEQUEL. (In
this
'latter
process
case, succ.ssive
t'hestatements
return codes:
COD=0:
T e
SFQUEt stitement
executed.
The
ird icated
by
~
-
'9
CODE1:
one at
to SEQUEL
a time.)
was
type-:
of.the
Normal
successfully
statemelnt
is
'Ar NTYP:
102
Insert
103
Update
.~:
104 Delete
106
Create Domain
107
Drop Domain
1R
Create- Table
10)
Drop Table
110
C r a t- Invo rsion
111
112
113
114
Drop
nYversion
Assert
Drop A.qsertion
Display .ssertion
The $QU ET
A$SFETION
;tatem ent
cI)mMarlnd.
statement i; "ound i.-n
oril.inally
calls
-n
red.
was a DISPLAY
The
assertion
STRING as it was
,C
-
q'}. " $
('r p'?, 2:
t-
'171'
T.
- rI t"in
Vai 1 -f
r,1,
i n fcr
+-()
r +! c
'?PANTY
PT,
FF
i
-.
>-
I of
-
N?!'i,
aI!d
;n
wit
ch
(i
- ',,' width (in cd ractcrs)
)
Crrtr '.";
]
'
QS
i. n1
1 n -namef;:s o f
lT
k It
c entered
'i) 1- t hO
(o o
C
r.p
COT1;, t ie
ie lds ot
-l)T,
l1 (T) chiaract<rs.
(T
o
r
i-
rFT U
rw:;
o
i, eh
t. wo
query
a
h
t
:
()' 1
cai111
in
width
y
PAT )
arrays;
he
he
a n:
hl,- afterthe call to
the'y are not useful
are
S3F () 1FPI,
!)l f i
f
the
b, <.l l iiv :!';~TR.OWS.
addliir
In
C()a :
u I
aIct
i1E (]
f
P,NG th at
ion( to column
i :l(ds
I ,"c
'N
j II(ery
.lq,
i-' yr: ¥.t^llt,where
1
I
of the
, ' ,t ,1 type of co lumn
'TYF (T) =
r
( uer ,'
th
of
r('9 I:l+ .
CC I T F N (
wii L(.'tI
to()11 owinr'
<tue ry.
11r ( r .iniiality
=
..
IUry
'1I
Th
*!b -de:Irqe
'
UI"
Wi z
-ivailahlp:
lr"1 ;!,'lnote's
=
=
CA ' r 1 N
T)
f-Ilt
I
h
to
(s;)
G.E;RpoWS.
,;') FI, wa, called
with FI.SW' 1' B to
'
uc.,~>t-t.;-tat.mnt in the file
th
&roce~-,;<
btitlasthe
SF,I FT AT-3'1
'FIT.
t1;a" ; rc 1~,
''i',,;?n
..
,~~~~~~~~~~~~~~~~~
c-. O(e1
pro
(ent
tatement
of fi l1
i.
1f..
rf'({,ac d) .
tie
COW=4:
S11CtIT
.
t't
oVl1utcf
Iu
wis
'nnt
.'-i ni 1
tc
a
u
ry
which
rTIIe
constant.
y1erl1-y
rc:-;elIf, in 'tchtracte.r string form,
i; in (~)S%
I !S,
PTYrE(1) cotairs
P..
t.h1
3.ata type f +i-? *- Lrv result.
.
'(.
!T =
,:
'
l= c
-+tem
- |l
'*hP3C(UFL
Trl,,
list
D'O M I N S .
QSrTING,
c,)n
+.i,.Tninq for
'.1s(jC counlt,
lnam., type,
longest
A (L)
of
erstr',
ill
( ),
X (?)
type
was of
"LIST
tdoains is
of
.
in
each domain its
and
format
lenqth
(16),
of
X(2) ,
X(2) , F () . Thle number
lo ai 11-;
i-
S Er r
S:temi'?t
in
NTJMR)WS.
TRANTYP
=
10 5.
CO=,
T) =7
The
TA UI F; * .
nfml f r'(r of:
t o
10-
L
(T "!A7YP
-a:l,
t ahle
1yt !
i '-ld
!
'', .)
WaS Of
=
15.
type
WIl'iPOWS
rQSTRING
contain-: all
tn" ?;, left- jus-tiie d
;1
.
"ITST
= the
in
-35-
CODE=8:
Tb
was
SFQTJTL statement
" FnSCRIS P
TAfLE."
of
type
=
IRANTYP
105.
NUMFCS= the number of columns of the
table describe<.
QSTRING
contains
the
name
(A(16)) followed
by a
cf the2 table
description
domain,
(yFs/NC),
A(16),
column:
X(2),
exists
A(16),
A(q),
name,
part
of
X(2) , A(4),
X(2),
key
(YES/NO):
Y(2),
A(3).
Other return code; in icate an error condition.
TRANTYP
c99,
+h<on the
parser
did
not
rpcognize the
indicate
GETROWS:
each
encoding,
i ,:version
X(2),
F(1),
Tf
of
type,
command;otherwise,
IRANTYP
should
what tyFe of commandwas attempted.
Called repeatedly to obtain the actual rows of a
query result af ter
call1ing S'QUEEL with CODE
= 2.
Caller must st
ISFROW = the number of the first
row he wishes returned. ETROWS will place as many
full ows as possible in QS'LING,
cncatenating
them. The format of each row is identical for
each
row that
is
pult into QSTBING, and is
determined
by the arrays
COLLEN, LPAD and DTWIDTH.
Within
each
row,
there
(DEGREF) fields
are
concatenated together--one for each column of the
row.
The total
width of each column field
givenby CLLPN--that is, column I has a field
is
of
width rCOLITN
(I). Within that field, there are
LPAD
() spaces on tlhe left, added for centering
purposes,
characters
+hen the
wide,
T!PAD
(I) -
DWIDf (t}) .
data item itself,
DWIDTH(I)
an]l thi
(possibly)
some
riqht-paddin g spaces (that is, the number of
right-padding spaces is given by COLLEN(T)TPAD(I) and
rows placed in
Normal return
SEOSTOP:
either
CSTRING
is
ccde = 0.
returned
or
The
in
both of
number of
NUMROWS.
SQTTEI has
FTIESW='1' B.
file.
previously
been
called
with
Sce statements may remain in the
SPQSTOP
cause; +the system to ignore the
r(eturn
code
r-malining
WINDUJP:
(Note:
rwIEfH(I) my hbe 0).
s+atefents
an
the file.
close
Normal
= 0.
Miust be called
to clean up the system
at the end
of a user session.
ormal return code = 0.
Whrenever a call is made tc any of
he entry
points
of
TPANS,
the following two bitsgovern the behavior of the system:
REPORT:
If
PEPCT=' 1 'E, the
system
types
out
on
the
-3 6 -
terminal
entered.
STATIST:
a
diagnostic
trace
of
all
routines
If STATTST='1'B, th, system keeps statistics on
time spent in variou
aspects of processing;
before
returning, it
prints the
statistics
together with the current SEQUF1 statement on the
STATPRI LISTING file.
-37-
Appendix
XRAM Extensions
F. Fessel
May 13, 1976
This document describes
XRAM
since
the
extensions which have been
publication
of
the
made to
original
XPAM
documentation.
The following XRAM routines have been functionally modified:
XRINV
A code of 9
is now returned
it a
least
one of the domains
upon which an inversion is being created contains data which
is not in the inclusive
1 to 2**21-1.
range of
The only way
to tell which domain
r domains contain such data is to
examine the inversion control tpie
upon return from XINV.
When
a
code of
9
is
corresponding to
the
automatically dropped.
returned,
the type
offending
domain
9
or
relation(s)
domains
is
XRMAKE
When a new tuple
is added to a
type
or 5 relation
and the
addition of that tuple wculd cause at least one domain of
the relation which has an inversion defined on it to contain
invalid
data
(not
in
the inclu~-ive
range
between
1
and
2**21-1) ,
then
the
inversion (s)
in
question
are
automatically dropped, the corresponding type 9 relation(s)
are dropped,
and a code of
9 is returned to the caller.
Again, the only way to determine tahe offending domains is to
examine the inversion ccntrcl tuFlI.
XRUPDT
When a domain in a regular relation
is updated and that
domain has an inversion defined on it, and the updated value
for the domain is invalid, then the corresponding inversion
is dropped, the associated type 9 relation is dropped, and a
code of 9 is returned
to the calling
program.
-38 -
A new entry point has been added to XRAM.Its purpose is to
in a domain of a regular
count the number of unique entries
The format
relation which has an inversion defined on it.
of this call is:
XRUCNT (rid,m,k)
rid is
id of
the relation
the relation
the domain number for which
desired. The count of unique
third argument.
in question.
m is
ccimnt of unique entries is
ntries is returned in k, the
Return codes:
0: Action performed3: Invalid
relation
nc error.
id.
4: Not a regular relaticn or invalid domain number.
6: Specified domain does ot have an inversion defined on
it.
100: System error.
-39 -
Appenlix
TRANSACT Commands
1.
-1
--I
r-
RU1Ifn I
RUN
r--1 II
Ifml II;
Ifn
Ift
I
I
I TRANSACT
I
L
I
I A 11 1 1
11H
_
L--j
-- J
I
2.
-I
OUTput [TO]
I
r-
-,
I TER~inal
ILINE TZ7F nnnI
I
I
80
I_
1
[CRT]
I
_J
I
I
i
I
I
r-
I DISK
1iINESIZE
nnni Ifn
I ft
I
I
80
IREPOMT
I
I
1
---I1 II
I
--
,L
I
-J
1
I
LI
L--
I
I
r-
I
I
f
-
A
L- -J
I
I
II
I
11
I
I
I
-J
I
II
I
i
I PRinter
-1
IIINES'TZE nnn
I
I
1
I
I
L--
Ioptions
ICP
301
I
--
r-
_J
SPOOL
I
command
L-
I I
froml
I
J
I
I
I
I
r
-I
1
ION
I
I
FI
L
]
I
I
RF PO PT
I
STATISTICS
r
I
IoCN
I
I
L
I
I
I
F I
J
SET
I
CASF
r
1
I UPPE RI
I LOW ~PlI
I
I
J
L
I
I
r
ROWNUM
JON
I
I
I
I
I
L
L
JI
I
I
-I
r
T IT L E
I
'I
I
CN
FF
I
I ' <tifle1'/' titl e2>'/ I
L
I
I
I
I
I
I
J
-J
4.
r-
I
I
I
I
Quer ?yI
OUTput
I
I
REPORT
I
I
STATistics
I
CASF
I
ROWNUM
I
I
I
1
I
I
I
I
I
TITL E
I
--J
5.
CP
I
<command>
;
;
-4
6.
at f
<
(o mm tf >;
7.
Any SEQUELtrinsacticn.
8.
QuIr;
1-
-4 2 Pppenii
commands
of 1TRANSACT
Explanaticn
1.
RUN (not
T
implemented)
Fexecutes the
transacticns
in
tho file
specified
fn ft
by
ages labelled
frm. Only the transactions described on the
SEQUEL SYNTAX should be included in a run file. Transactions
will
be processed seguentially and the system will respond
with the message TRANSACTION COMPLETED after the last
transaction has been processed. Errors may or may not cause
processing
to terminate,
dependiig
on
the
nature of
files must consist
particular error involved. Run
type RECFM V)
variable length records (in CMS EDIT.T
the
of
2. OUTPUT
Directs
all
specified.
output
except
for
messages to
the
device
OPT-O9_S
LINESIZE
The user may indicate a linesiJe for
terminal, disk,
or
of the
printer as long as it conforms to the limitations
output device. Unless therwise set the following L1NFSIZF
values will be in effect:
for terminal - LINESIZ 80
for disk - LINESIZE80
for printer - LINESIZE
130
TERMINAL
All output will be displayed a the terminal. If the CRT
outputtahles will be folded.
option is notspecified
CRT
This option will enable the resultant
command and the
catalog
tables from the SELECT
queries LTST DOMAINS, DESCRIBF TABI.E
to be displayed in "window"format.
Commands which may be used with the window are:
-43-
Up
n
1
r_
I
_~,
own
Next
In]
I
I
L_
Left [n
Eiqht (n]
Continue
UP n,
DOWN n,
LEFT n,
RIGHT n will
cause
a displacement
of
n
CONTINUE
rows or columns in the ccrresponding direction.
command.
will allow the system t accept the next TRANSACT
DISK
Output
will be directed
tc the file indicated
by fn ft f.
PRINTER
Output will be directed to the printer. Any arguments from
the CP SPOOL PRT command ay be used to modify the spooling
control options. Standard CP SPOOL defaults will be used.
3.
SET
R EPORT
If REPORT
is ON,
the system
types out
diagnostic trace of all rutines
on the
terminal
a
entered.
STATI STICS
If STATISTICS is ON, the system keeps statistics on time
spent in processing. The statistics are printed, together
with the current SEQUEL statement on the STATPRI LISTING
file.
CASE
If case is
set to LOWEF,
all quoted strings
will be passed
directly to SEQUEL withcut conversion to upper case. Thus,
SET CASE LOWER will enable all literal character strings
entered at the terminal tc remain as they are typed in. SET
CASE UPPER will cause character strings to be converted to
upper case.
'POWNUM
If ROWNUM is ON,
be numbered
format.
for
the rows generated
both folded
and
by a SELECT command
"window"
output
will
table
-l 4 T1I T L.E
This option provides an
optional titling faculty for
reports. When a title is specif id it will be centered at
the
top of
all output
tables
(Pxcept those
output
to
a
CPRT). SET TITLE OFF stops the printing of the current title
SET
but allows the title to be retained in the system.
TITLE ON causes the current title to be printed with the
output tables as described above. Lines of a title may be
a
specified by using SET 'IILP, '<titlel>'/'<title2>'/...
maximum
of 6
lines is allowed.
Fach line
must be enclosed
byv slashes.
A single quote
in single quotes and salatel
may be used in the text cf a title by entering it as two
single quotes.
4.
QUERY
Displays the options which are currently in
OUTPUT and SET commands.
5.
CP
Allows
CP
environment.
6.
effect for the
commands
to
be
Pcxecuted
in
the
TRANSACT
CMS
subset of CMc;commands to be executed
Allows the following
in the TRANSACT environment:
ACCESS
LISIFII.E
RENAME
CP
PRINT
RETI rN
DISK
ERASE
EXEC
PUNCH
SET
QU E Y
STATE
REArCARD
TYPE
tan
If CMS commands other
message will be typed ad
7. See SEQUEL
8.
thos;e listed
are issued, an error
the command will be rejected.
BNF for valid querins.
QUIT
Fnds the session.
NOTES:
1)
All commands
must
e
followc:l by
a semicolon
(nested
-459-
quories require more than one ;omicolon)
2) Transactions may require moT' than
one input
line.
A
transaction may be deleted by tvning (%). If you
wish to
use () as a percent sign, enter (%).
3) TRANSACT
senses
the
end of
a transaction
character entered on a line is a
avoid premature termination by
input,
make sure
that
a smicolci
COMPUTE
clause) is
line.
4)
When
TERMINAL
not the last
LINESIZE
TERMINALLINESIZE is alsc
5) To enter
is
chanqed.
the single-user
if the
last
semicolon. Therefore, to
TRANSACT of transaction
within
a command (e.g. a
character
changed
in
entered on a
TRANSACT,
TRANSACT
environment
CP
from CMS
type:
transact
and wait for the RFAY; m ss-.ge.
6)
If
you want
disconnected
to
for example, type:
transact
use
Transacticr
TRANSACT to communicate
Virtual Machine with
tyvm
and wait for the RfAY;
messa]e.
with
a
an id of TVM,
-4 6-
Appndix J
TPRANSACTPlN Comonand Macro
Processor Proposal
EFAFT CPY
This publication is i rtended for those GIS users who want
to use the TANSACTRN facilities.
It includes information
on
writing
facilities
procedures.
a
RUN procedure,
using
the
TRANSACT BRUN
and RUN contrcl
statements,
and building
The reader should have an understanding
RUN
of
elementary programming techniques such as branches,
loops
aad loop control as wll as
an understanding of TANSACT
operating procedures, ccmmands, anl the CMS editor.
-47-
INTRODUCT TON
are combinvfOiors
commands that
TRANSAC'T
commands.
S FQU.I
and
a sequence
invoked, it represents
i
new
TRANSACT
RUN
called
u:ing the CS Fditor.
procedures, are usuall y create
Whena RUNprocedur
of existing
commands,
nw
The
to define
user
T.
perm(t,
TRANSACT IIN f cilities
The
to the logic control
of commandsthat are executed according
user
The TRANSACT
statements defined in te PUN procedure.
several
execute
that
can create simple FUN i roced,]rs
can
or h
queries,
used
frequently
complex
devise
RUN
logical conditions before
procedures that etst sveral
The logical
deciding whether or nt to execute a query.
with
are controlled
PUN processor
in the
capailities
DO and
GOTO,
IF/THEN,
the
simil r to
statements
sers.
language
level
statements familiar to ,igh
LOOP
sequence
A run procrdure is created by lacing a selected
C S
valid
any
have
can
file
RUIN
file. A
ot commands in a UtlN
that
recommended
is
it
ut
and filemode,
filetype(
PUN
he TAANSACso as to avoid confusion.
filetypthe
130
to
up
records
h
1enjt
are flad up of aryin
files
TRANSACT/SEQUEI,
one
consists Qf
lonj F(Ich record
characters
filename,
UN control statement.
command or
using th CS
AlthoughTtNfiles are usually created by
a card file from
Editor,
the
can
they
PCCEDUP
A RN
b%~ user simply
UNprccedure,
a
To invok
or by a user program.
rader
sers virtual
INVOKING
be created by reading
also
by th, filename,
TRANSACT command 9'UN, followed
filemode
'Al'
These
respectively.
the PUNfile.
IN fil< is
Whena
the execution
variables
are
tho
for the execution
requlircd,
taken for
ccntr.ols
UN
7zllstittitingvalues for
pa sing
anl
T nPNSACT
of
default values
invokedi, thlr? UN interpreter
cf the prccedure,
wh¢ere
just by entering
and filemode are 'TRANSACT'and
filctye
the filename if t
be invoked
can
A UN procedure
arguments.
the
and
a list o
"TIN file wanted, and optionally,
the
of
enters
filetype
to T\NSAC"
ontrol
cmmInds.
manirulate paramneterlists, thus
PUN procedure
to the
[ass ar jument:
The RUN interpreter car
allowing
the
when it
is
executed,
corresponq
specified
user to
a command in the UN file is
replaced by the
e in it is ti-orarily
invoked.
9cfcre
argument
from
each variah
when the
the
RTM rocedurr,
9,arameter list
1as invoked.
tha-
Use of
was
hese
variable arguments thus permits
execution
within
reat flexibility
in cmmand
the FPUN Proce.lure.
The contents introduced in thp preceding paragraphs are
discussed in greater detail later in this document. At this
point, however, the user can see that the RUIN facilities
that he cant use to develop
provide him with a powerful tool
his own command languaqge or set of operating procedures.
-49USING THE TANSACT
RUN FACItITTES
This section describes the three ma jor parts of the TANSACT
FUN facility:
.1. The RUN command which initiates TRANSACT execution of a
RUN file.
2. The RUN files, which contain sequences of TRANSACT
commands
and RUN ccrtXcl
3. The RUN interpreter,
stateaments.
which analyses
each statement
in a
RUN file before T NSACT executes the procedure. Each
of these items is described in greater detail under a
separate heading.
-5
0-
RUN FLES
that can
A RUN file is a CMS data file
commandsand RUNcontrol statement;.
TIANSACT
contain
RUN files can be created with he CMSeditor, by punching
cards or by a user progran. 'rho file should be of varying
record length with a maximum record length not greater than
130.
and
two typos of statements:
RUN files consist of
nonexecutable. Fach tyre is discussed below.
executable
NONEXECUTABLE STATEMENTS
PUN file is one that begins
in
A nonexecutable statement
with an asterisk (*) and may or ay not contain text. These
statements are for use as comment statements
and are
ignored
during RUN interpretaticn and processing.
EXECUTABLE STATEMENTS
An executable
statement
UN
in a
file is any statement
that
does not begin with an asterisk. hese statements consist of
contiguous nonblank
which are strings of
data items
characters separated by blanks. Three classes o executable
statements
1.
2.
3.
by the
are recognized
UN interpreter:
Null statements.
TRANSACT commands.
Control statements.
Each of these statement classeis is discussed under a
separate heading. n addition, a section on labels and
comments is also given.
Null Statements
A null
statement is an
number
of data
items
execuatable statement in
is
zero.
blank
line
which the
is a
null
statement.
TRANSACT Commands
The RUN interpreter
considers
an executable
statement
as a
TRANSACT command if the first data item does not start with
item
an asterisk
or a
hyphen. Data
an ampersand,
replacements are made cn the statement and then TRANSACT
executes the command immediately.
Any valid
TANSPhCTccnzand may - incluled
PUNprocedure
Another
may be invoke
in a RN f i.
by simply
another RN commandand setting the rcursion
to be described later.
entering
nesting option
Control Statements
An executable statement i
data item is a RUN control
are:
a control
statement if the first
word.
Examples of control words
$GOTO
&EXIT
&IF
Control
usually
satements begin with a control word, which is
followed
by a list of data items and, in some cases,
by additional lines of data. Control statements provide the
of hi RN
means by which the user can con--ol thn oxortion
procedure. The IF control word, for exampie cn estubisi
a conditional
test
arnd a branch
(
&GOTO )
can be
taken if
the condition is met.
Labels and Comments
A label in a RUN procedure begins with a hyphen (dash), and
contains
up to fifteen additional alphanumeric characters. A
label can
be placed in front
of a TRANSACT
command or RUN
the
object of a
A label is often
control statement.
branching control statement,
uch as GOTO or &LOOP. When
searching for a label,
first word on a line.
A
comment
in a RUN
the RUN interpreter
procedure
begins with an
star ).
the remainder of the
combination of valid characters
included
in the count
examines
of the number
only the
asterisk
(
line may contain
any
desired. A comment is
of lines read in from a
file for execution ( for use in references
to line numbers
or references
to the sccpe of an FLOOP ), but the text is
ignored.
See the section
describing the &**
control
statement for alternate methods; of ntering comments.
-52-
THE
RUN
COMMAND
The RN
commanld gives one the ability
to
execute
one or
more TRANSACT commands c FUN control commands contained in
a specified file, by issuing a single command. The format of
the RUN command
]
is:
I
RUN
FN
PT
FM
[ NEST/NONEST]
(args...)
where:
FN
is the
filename
of
a file containing one
TRANSACT commands to be executed.
or more
FT
is the
filetype cf that file.
It can be
any valid
CMSfiletype
butif it is left out, it is assumedto
be "TRANSACT".
FM
is the
Again, it
filemode cf the file.
valid CMSfilewode but. if it
can
is left
assumed to be "Al".
be any
out, it
is
NE ST/NONEST
indicates
how
titles and other
features
handled for recursive commands. That is,
files which invcke cther RN files.
are
to be
those RUN
arqs
are the
in
arguments to reFlace the
the RUN file specified.
thirty
symbolic
indicated
variables
by an ampersand ()
numeric variables
Within a RUN file,
may be
up
used (each
to
one
followed by an integer
rangingfrcmone to thirty)
to indicate
The arguments are assignerd
to symbolic variables in
values which
are to be replaced when the RUNfile
the order
is executed.
in which they appear in the argument
For example, each time an Fl1 appears
list.
in a RIJNline,
the first argument specified with the RUN command
temporarily replaces the $.1, the second argument
specified within the RN command replaces 2, and so
on, to argument N of the RUN command.
If the percent
sign is ued
in place of an argument,
the corresponding variable (N)
is ignored
the commands which refer to that variable.
specified
RUNfile contiins
more variables
in all
f the
than
-53 -
arguments given in
numbered variables
the RIJNcommand, the
ark aslmed
higher
to be missing, and
are ignored when the commandsare executed.
-5 4 -
RUN CONTROL STATEMENTS
An executable statement
is a control statement
if the
first data
item is a RUN control word (the only exception
are
those
statements
control statements preceeded
begin
with
a control
by
word
labels). Control
which
is
usually
followed by a list of data items. Control statements provide
the means by which the user can control
RUN
procedure.
Fach
FUN control
the execution
statement
below.
(Note that all can be truncated
length
of 2 characters.
Truncations
rightmost character in the control verb.)
of his
is
described
down to
starts
a minimum
from
the
-595-
&ARGS CONTROL STATFMENT
r1
I
( [argl [arg2 ...
&ARGS
]]
)
_L-_-___-_-_-__-__-_-_-__-_-__-----J--J-J----J-J----J--J-J----J--J--J--J-J
Redefines
the
arguments
1,
&2, ...
with the
-J
value of
'argl', 'arg2' ...
NOTES:
List of arguments enclcsed in parentheses, separated by
blanks Strings with embedded blanks can be enclosed with
single quotes.
Quctes within
a quoted string are
represented by two adjacent single quotes. In a normal
string however, they are represeated by themselves. A
per cent sign ()
is used to inlicMe a null value for
given argument
SBETYPE
in a list.
CONTROL STATEMENT
r~~~~~~~~~~~~~~~~~~~~~j~~~~~~~~-
&BEGT YPE
linel1
line2
line3
I
I
*
.
I
.
linen
I
&END
L
Displays
IT)
.
'line1' 'line2',
..
at
the
terminal.
No
argument replacement is perormed.
NOTFS
&BEGTYPE must have a matchinj &,END control statement for
delimiting lines to te
rinted.
-C6
(-
&CCNTINUE CONTFOL STATEMEN'
r
-...
I
&CONTINUE
L -------
Provides a branch addrEss fcr the &GOTO control statement
and conditional braching statements.
&BETURN CONTROL SATEMENT
r£~~~
----__
__
-- ----~-------- r~~~~~
I
r
I
&RETURN
i
1
I returncode{
I
L
C
I
J
L--
Exits from RUN file with the given return code.
NOTES
Return code must bE between
and 9. If larger code is
given, only the first digit of that number is used. If an
invalid code is giver , or one is missing, 0 is assumed.
-57-
&ERROR CONTROL STATEM1FNT
I
r
I executable
FRR
I
&F RROR
I
I
blank
statenlment
I
I
I
I
line
j
L
I
1
I
J-_-_-_-_-_-J
--
L
a given action
Specifies
to b
taken when an error occurs
Entering PPEROR followed by a blank
during execution.
to the normal system response. The
the
action
resets
line
out the string being
is
tc
print
normal response
processed
the time
at
of the error
and then
request
a
replacement line from the console.
SGOTO CONTROJ STATEMENT
r…--
---
-"-
r
II
I
GOTO
& GOTO
I
I
I
1
I
I
TOP
I
line_
I
L
label
number
I
I
I
I
J
I
the RUN file, to the
tc the top of
Transfers control
given line number or t the line starting with '-label'.
NOTES
The label
1
specified shoult not
have a
leading hyphen,
need have
one to
in the text
only the statement label
label.
If a transfer
it is a statement
indicate that
point is not found, a message is displayed and execution
continues with the statement directly after the &GOTO
just processed.
I
-58-
&IF CONTROL STATEMENT
r~~ ~
~~~
I
I
I
r
I
EQ
I
I
I
I
NE
GT
I
LT
I
I
I
GE
LE
I
I
I
NG
I
I
I
t
I
I
I
I &IF
[ TOKEN 1 ]
I
I
L
6.…____ __ __ __ __ __
Executes the
satisfied.
'I
I
I
I
I
I
I
I
[ TOKEN2
]
executable
statement
I
J
__ __ --
__ _---_-----
'executable statement' if the
------------
I
I
condition is
NOTES
To compare for a null string,
enter %% (double per cent
sign) as the token tc be used for the comparison. Nesting
of
&IF statements is allowed
so
long as the entire
statement is contained on one 130 character line.
_LOOPCONTIOL STATENT
r…
I
I
r
LOOP
I
I
I
1
n
label
I
[
]
I
I
L~~~
Loops through the
fcllcwing n lines, or down to but not
including the line indicated by '-label', for
times.
NOTES
The 'label' specified hould not start with a hyphen as
only the actual statement label needs one. Nested loop
statements are not allowed. The statements passed over
by the execution of an
SKIP control statement are not
included in the ccunt for the number of statements
executed in the loop.
*WARNING* Be careful tat the scope of the statements
inside a loop does not extend beyond the limits
of the loo itself. (i.e. an 8BEGTYPE control
statement inside a loop with its associated END
-59control
staterment ')ut!side the end of the loop.)
ERFAD CONTROL STAIEMENT
I
&R1~D
I.…~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Read the nxt
line fromn the
it had been contained
_2UIT
terminal
and treats it as if
in the RUN file.
CONTROL STATEMENT
r1
I &QtIT
Exits
from
the RUN file with
Same as the statement J
a return code of
0. (i.e.
)
&RTTIRN
&SRIP CONTROL STAfEENT
r~~~
I
I
I
I
&SKIP
~~~~~
r
I
L
~~~~~ra-'ra----m-m-----
--
-
-
--
- -
-- m
--
--m
--
--
________
I
'
n
I
I
I
j
Skips over the next r lines in
is given, 1 is assumed for n.
I
1
I
the RUNJ file. If no value
-60-
&SPACE CONTFOL STATEMFNT
I
I
SPACF
$,SP AC F
I
I
ln
TyeL
r
I
I
In
I
I
I
I
L
11
J
ie
tte
emnl
eal
au
o
I
Types n blank lines at the'terminal. Default value for n
is
1.
&TYPE CONTBOL STAIEMENT
I
r
TYP
&TYPE
I
1I1
L
I
I
L-J
Prints
I
I n
the
terminal.
I
I1
1
J
next
Default
n
lines
fromn
the
RUN
file
at
the
value for n is 1.
NOTES
Unlike the BFGTYPE cntrol statement, the TYPE control
argument substitution before
statement does perform
printing out a giver line. It can therefore be used to
check for correct
redefinition
control statement is executed.
of arguments when an ARGS
-61&**
CONTPOL
r
STATEMENT
-
[ text.]1
j 5**
L-
Indicates that the text
a comment.
n this
line is to be ignored as
NOTES
Comments are also
indicated
by a '*'
in column
1.
SPECIAL
STATHEMENT SYNTAX
'*'
(in
column
1)
Indicates that the present line is a
'-'
(in column 1)
Indicates that this line conatins a
statement label and the first token
comment and is to be ignored.
is therefore
rest of
the
processing.
to be truncatedfrom
the
line
before
-62WRITING
A RUN PROCEDURE
Once a RUN procedure
is
designed,
it can be entered
into
the VM/370 system in two primary ways.
1. By punching cards, which are then read via the real
system card reader and the sers virtual reader.
2. By using the CMS Editor to enter input lines into a CS
file. The Editor ormally truncates all input lines at
8e characters. This truncation can be avoided by
specifying the RFCL option of the EDIT command with a
record length of up to 130 characters. The Editor
also normally assumes a file to have fixed length
records. This can also be changed by specifying the
RECFM option of the EDIT command to be varying.
For example:
EDIT filename RANSACT (LRECL 130, RECFM v)
BUN files can also be created by a user program. Regradless
of which method is used,
the
format of the entered
statements is basically the same.
nly one TRANSACT command
or RUN control statement may be entered per card or card
image. TRANSACT commands must be in the same format as they
would be if entered from a terminal.
To use the CMS Editor
to
create
a RUN file, simply
enter
the command:
EDIT filename TRANSACT (LTRECL130, RECFM V)
where the filename is any valid CMS filename, and the
filetype of TANSACT
can be different. If the RUN file
specified
in the FDIT cmmand is a new file, the message:
NEW FILE:
EDIT:
types out
The user
at the terminal.
can then type
INPUT subcommand and start entering input lines
the Editor replies as follows:
in the
as soon as
input
INPUT:
( Beginentering irFut lines. )
Each input line is ended by pressing the return key. When
input is complete, return to the EDITmode by pressing the
Returnkey again. If the file
needs
no corrections,
simply
type in the FIIE subcommand. The data is stored and control
is returned to the CMS nvironment. A RUN file created this
way
can
be executed
by
typing
in "RUN
filename."
Its
contents can be examined either by typing it at the terminal
using the CMS TYPE command, or by printing it on the system
printer using the CMSPINT command.
-63-
The prcedinq descril'tion
only a
creating
few of the
and
discussion
qu ide.
maintainirg
of the
of the CMS Editor identifies
Editcr functions
UN fills.
CMSEditor,
that may be
For
refer to
useful in
a more complete
the VM/370: EDIT
-64Appendix
K
Proposal for IPANSACT Transaction Editor
permit a user of TRANSACT to edit
This facility will
any transaction that is typed in before actually executing
allow that transaction to be executed and
it, and ill
edited any number of times without.need for reentry.
Conventions
Each command entered in TRANSACT will be saved just as
it was entered, in multiple line format. The TRANSACT EDIT
command will allow that command to be modified in a manner
that parallels the CMS Editor (e.g. use of current line
Until the TRANSACT editor subcommand QUIT is
pointer).
entered, TRANSACT will remain in EDIT mode, and the EDIT
subcosmmand GO must
be used to execute
a transaction.
When
the TRANSACT user is not in EDIT mode, each transaction
entered is executed in the normal manner, and if the first
line entered after a FArY; message is not EDIT;, then the
buffer for the current transaction is cleared to accept a
new transaction.
New TRANSACT Command
EDIT;
TRANSACTuser
Puts the
(TRANSACT) EDIT subcommand
input the
into
TRANSACTEDIT mode. Any
to modify or
may now he used
current transaction.
If the
current
transaction
is empty, then the editor automatically enters INPUTmode.
TRANSACT EDIT Subcommands
Input
Puts the editor into INPUT mole. Successive lines are
added or inserted into the current transaction in a manner
a nullline returns the
similar to the CMS ditcr.Entering
editor to EDIT mode.
GO
Executes
the
current
transaction.
After
the
-65-
transaction has
een
xEcuted, TrANSACT returns to EDIT mode
with the current
line
the transaction.
The trarsaction is not erased.
[n
Type
ointer
(CLP) pointing
to
the top of
1]
Types n lines of the
the line indicated
cur-nt transaction, starting with
If * is used, all lines from
by the CLP.
the CLP to the end of the transaction are typed.
Next [nl!]
Moves the CLP down
n lines.
lip [nil]
Moves the
CLP up n lines.
DELete (n[*l1]
..
Deletes n
lines of
the current
transaction, starting
with the line indicated by theCLP. If * is used, then all
lines
from
the CLP
tc
the
end
of the
transaction
are
deleted.
DROP
The entire current transaction is
equivalent
to
a
TOP subcommand
deleted.
followed
by
a
This is
DELETE
subcommand.
Top
Sets the
transaction.
CLP
tc
the
top
line
to
the
last
line
of
the current
Bottom
Sets
the
transaction.
CIP
of
the current
-66-
Chanqe
tha
/strinq1/string2/
first occuremlc
Chanqes the
line indicated by the CLP.
of
string1
to
string2
on
Quit
Leaves TREANSACT EIl
processing continues.
NOTE: The EDIT; command
macro processor.
i
mode.
Normal TRANSACT
not recognized
command
by the RUN command
-67-
Appenlix
Using the
The DBDESCRcommand is
DBD:;SC?Command
used
to get
a general
description
The user selects one of two
of each table in a database.
options for the amount cf information s/he wants printed:
(a) a
as well
column description ("TESCRIBE TABLE...")
as a row count for each table,
or
(b) only a row count
for each table.
USE
DBDESCP fcllowed
The user types
three things:
of the
by one
following
TERM
PRI NTER
(nothing)
This
directs
terminal,
printed
the
the program
DBDESCR
terminal.
output
jrinter; if
the
or to
assumes that
For example,
either
nothing
to
user's
the
is typed
the output
after
goes to
the
to
the
the user might type
DBDESCR PRINTER
which invokes
printer.
the program
and
sends
the output
The program will respond with
DO YOU WANT THE CLUN
DESCRIPTION FOR EACH TABLE? REPLY
Y/N
wishes the column
enters ' Y' if s/he
The user now
(along with the row
descriptions printed for each table
count),
or 'N' if s/he wishes only to have the row count for
each table.
description.
The
program
now
prints
out
the
database
AFpendix
Bulkloading of a Da+abase (LTDB)
The program LTDBB loads a database from a CMS file, using
free-format loader commands and user-specified format for
the data records. The CMS file may have an arbitrary
filename, filetype, and filemodo.
The program is in the
form of a stand-alone
module;
that
is, it cannot
be invoked
while using TRANSACT.
The loader can be used to:
(a) Add data to an existing table
(b) Create a new table
(C) Create a new domain.
CS
file
may contain
One
a
mix
of
all
three
loader
commands.
When loading a SEQUIF table, the loader checks the data
being entered against any assertions that were in effect at
the time the loader was invoked (assertions cannot be set
using
the loader,
but
ay
be set
using TRANSACT).
When
loading a table, the loader only adds data to the table, and
does not affect data already present in the table.
The loader knows the input file as COMFILE in the
program. Hence, the person using the loader to load from
his or her input file called, for example, "INPUTDATA
INPUTTYPE",
on
the
A-disk,
must
link
"COMFILE"
to
"INPUTDATA" by means of a FILEDEY:
FILEDEF COMFILE DISK INPUTDATA INPUTTYPE A
(It is not necessary
(PERK)
that the input file be on the A-disk.)
An easy way to invoke the loader without entering the
FILEDEF is to use the EEC command LOADDBB as follows:
LOADDBB fn ft fm
This EXEC will issue the FILEDEF for the arbitrary file "fn
ft f", and will then invoke LTDPB automatically.
There is
a default assumption that
data that is
to be added to
a table
all character string
should
be
trimmed
of
any leading blanks; this is usually desireable. If the user
does not want the leading blanks removed, eg. to be able to
line up columns in the utput of a SELECT command, he or she
must use the NOLTRIM' option when invoking the loader; the
user enters, instead of tel above command, a command of the
form:
LOADDBB
NOLTRIM
fn ft
fi
-69-
The INPTITDATA file
records
is
The
F).
(RECFM
a
reqular
CMS fike of 80-character
consist
commands
lcader
of
one or
ach command control
more records in the INFUTDATA file.
card is read in a free format - each argument must be
separated
by one or more
of the data
specified
in
Note that this is not true
lanks.
records themselves - these mustbe in a format
major
There are five
card.
$T.OADTAB
the
commands:
1.
Domain Command
Define
Format:
<domain name> <domain type>
$DEFDOM
<domain type)
character).
Each command creates
2.
numeric) or
can be NUM (for
CHAR(for
one domain.
Define Table Command
This
each cclumn in the
name, and for
both
a table;
command creates
it
defines
table,
the
table
it identifies
the column name and domain name.
Format:
$DEFTAB <table name> <column name>
The order of
domain name> ...
the columns (left to right)
in the table
is the same as the order of he <column name>fields in
the format description.
immediately
be
fcllcwed
The Define Table commandmust
by
a
Define
Key
Primary
command.
3.
Define Pkimary ey Cgomand
This
commandmust immediately follow
a Define
Table
command. The format is:
SPRIKEY <column
name>
...
$ENDKEY
Note that though it is not necessary for a table
to have a primary key, it is necessary to include
a Define
Primary Key command immediately
after
a
Define Table commandin INPUTDATA.If there is no
1 space
primary key, there must be at least
between
4.
$PRIKEY and
ENDKEY.
Load Table Command
the system what table is being
This commandtells
loaded, and in what format the data to be loaded is
-70-
data--in that
foind; the
Note that the table
been previously created
command or a SEQUE CATF
twc
The cmmand has
format--follow the
indicate?
arts:
the data cards (records)
in the command
command.
must have
loader
(either by a $DEFTAB
ABLE command).
and
description
the format
FORMAT DESCPIPTION
name> <column name> <1st
$I.OADTAB table
Each
column
tokens
be
t
associated
description:
loaded
card
<last position>
<last cards>
<1st position>
$ENDCOL
a
has
in
with it
group of
the
>
..
five
format
column name
1st card # -- the index (relative to the next data
card the loader will process) of the first
card with data to be loaded into this column
(this is normally 1--that is, the loader
starts reading data off the first data card
it finds--ie
the next one).
1st position -- the leftmost card column
(in the <1st card >th card) where
to be inserted
found.
last card
--
into this
column
the data
is to
be
the index, relative to the next
data card (that is, the same data card to
which <1st card #> is relative) of the last
cardwhere data for this column is located
-- the rightmost card column
lastposition
on this last card where data for this column
is located.
The effect of each set of 5 tokens is that the
loader inserts into the column <column name> all
the data between <1st position> on <1st card> and
<last position> on <last card>.
the order
of the columns need
not be the
same as
the left-to-right order that the table maintains;
any order is acceptable, as long as the data are
in the same crder.
If some columns
in the table being
appear in the format description
assumes a default value of zero for
loaded do not
the system
that column.
This is a potential problem since some columns
have underlying domains of type CHAR. So, it is
advised that all columns in the table have an
-7 1 -
entry in the format
escription.
The records are processed one by one in the order
as
they appear in TNT'JTDATA. If a column name
appears more than once in the format description,
an error conditicn will result and the program
will terminate.
DATA
FCCRDS
are PC0 byte
Data records
format
a data record is
of
completely
Since one row
record
of the
loader allows each input row
over
n
data records
more than a
of a table may require
80-byte
data
records.
The
determined
table (one tuple).
for one row of a
has the data
which
description.
description. A set of
by the format
single
card image records
respective format
follow their
input
file,
the
of a table to extend
These
data
records
are
The
2, ...,n.
assigned relative numbers 1,
relative numbers are used in the <1st card#> and
<last card
> fields of
the format
description
to
indicate the starting and ending points of a given
column. It is therefore possible to have the data
for a single column extend over more than one
record.
If the
data
data for a
column,
card(s), contains
after being
nothing
read from
but blanks,
the
0 for columns of data
loader assumes a default of
type
for columns
of data
type NUM, and UNKNOWN
CHAR.
End-Load
arker:
The last data card must be followed
by
$FNDLOAD
5.
End-Of-Input Command
The last
record of INPUTnAT.A
card whose frmat
$ FNDINP
is:
must be
an end-of-input
-72-
EXAMPlE:
$DEFDOM MODELDOM CAR
$DEFDOM VOLDUM NUM
$DEFDOM MPGDOM NUM
$DEFDOM DATEDOM
N UM
$DEFTAB CARSALES
MODEL MODELDOM
DATE DATEDOM
VCLUME VCLDOM
MPG MPGDOM
$PRIKEY MODEL DATE $FNrEKFY
$LOADTAB CARSALES
MODEL
1
1
1
15
DATE
1
20
1
23
VOLUME
1
28
1
34
1
MPG
$ENMDCOL
17
1
19
CHEVROLET
12474C1
33108
CORVETTE
CHEVELLE
1547401
17974C1
2078
21175
CHEVY
1877401
21464
NOVA
SPORTVAN
1 274C1
1370
MONTE CARLO
CAMARO
VEGA
PONTIAC
GRAND PRIX
FIREBIRD
VENTURA
OLDSMOBILE
1497401
17974C1
3027401
1387401
1 037401
17974C1
1217401
1107401
15668
8787
38455
10170
4042
3666
4890
10 533
$ENDLO
AD
$ENDINP
-7 3-
Appenfdix
N
Creating Backur Dumps of SEQUEL Databases
A need exists for creating backup dumps of SEQUEL data
bases. A UFI has been written which fills this requirement.
It is invoked
SEQDUMP
y entering
filename
This will create at least cne, anl sometimes two files. The
file which will always be created has the file name filename
and filetype SEQDUMP. This file will be in bulk loader
format,and may be used to reload a reinitialized database.
Using the distributed EXEC file for execution of the dump
function, this file must be unpacked before it can be used
by the bulk loader. This is accomplished by issuing the
following command:
COPY filename SEQDUMP (UNPACK
Because each character domain is output into this file with
a width equal to the maximum width for the domain, tuples
which originally
were contained
in 80 characters will
no
longer be so contained. Hence to reload the database, the
mnalitplecard version cf
reload the database.
the bulk loader
must be
used to
The second file which. may be created, depending on the
contents of the database, will have a file name of filename
type of SEQUEl. It is in a format
and a file
use as a SEQUEL query file
using a UFI which
suitable for
allows query
input from files. It will contain SEQUEL queries which will
were present in the
reestablish any inversicns which
original
database.
This
file
is necessary
because
inversions cannot be entered through the bulk loader. If
there are no inversions in the database, this file will not
be created.
If the disk space occupied by the file with filetype SEQDUMP
becomes oppressive, by editing the file SEQDUMP EXEC, this
file
ay be put on taFe. This is done by modifying the
FILEDEF for ddname DUME to tape. If this is done, the COPY
command which packs the SEQDUMP file should be removed from
SEQDU9P EXEC and the FIIEDEF for ddname COMFILE in the bulk
loader EXEC file should be modified for tape input to it.
-74-
Appen'lix
Saving and Restcrin.ja SQUEL
Database
The SEQBACK and SQFESI functions are used to save and
They are very
restore a SEQUEL datalase, resnectively.
fast,
taking
only about
DDP command to copy each
1 sec
they
per cylinder;
use the
cylinder of the database (including
the non-335 disks) ontc tape (bit-by-bit),
them from the tape in like manner.
or to restore
USE:
SEQBACr nn
--
saves
SEQREST nn
--
reloads
a core
image of the datdbase
the core image
where nn is the number cf cylinders
on the 335 disk
(eg 20,
10).
ENVIRONMENT:
It is assumed
that for either operation
virtual address 181
and attached;
a tape is mounted at
for SEQBACK
the tape is
it can be properly written
assumed to be positioned so that
is
tape
that the
assumed
it
is
for
SEQREST
and
onto,
image.
positioned at the beginning of the dump of the core
-75 P
Appendix
a Database
Saving and Restorin
Database
can be managed with a
using SQBAC,
"saves",
single tape, using the twc (EXVC')
roitines:
DBSAVF
and
DBSCAN
the help
with
181
address
of
a private
the tape
assume that
(though not necessarily
save
is
been mounted at virtual
rewound).
of the? tape is as
basic organizaticu
The
database
Log. The routines
Database
has alradyv
witi
stored
a
follows:
"stamp-file"
id.ntifies
directly in front of it, which
the "save",
the number
of
cylinders
of
involved, and the tables that were saved.
each
inserted
te time and date
in the 335
area
The files on the
stamp-file,save .
tape alternate: stamp-file,save ---etc.
A new stamp-file/save pair is
stamp-file,save ---always put on the tape immediately after the most recent one
(because it is assumed
Saviq
that they nver
get erased).
a Database
If the
tape
is a clean
tape (ie
does not have any
previous database saves on it), the user should
rewind the tape, and invoke DSAYF (see below)
are already
If there
savers on the
strategy is to find the last
in conjuntion
with
save
the Database
on
the
tape, the
tape,
Tog, then to
using
simply
overall
DSCAN
use DBSAVF
to
store the database.
To start, the user invokes DPSCAN
will respond with
(no arguments), which
COMMAND?
The user should ncw type
FIrST
and DBSAVE
will find the stamp-file
for the first
save on
the tape, and print its name, eg.
This
DB 11/8 NEMTSA
A1
indicates to
the
user that
the
database
save
that
-76-
as
follows
from NEEMISA account,
and was saved on Nov*mh'r
-
8.
(The routine
will
for input.)
If the
now F:rint ollt "COMMAND?"
again, anit wait
user wishes
follows, he enters
to know more about
the save
that
CONTENTS
The contents of
A-disk,
the stamp-file
T fn ft
where 'fn
be loaded onto the
ft f'
user can
further
down
by entering
fm
designates the stamp-file.
If this is not the last
the
will
and the user may ncw examine them
verify by
database
save on the tape, which
consulting
the list tfy entering
two commands (in reponse to
his log,
either
of
he may
skip
the following
COMMAND?'):
NEXT
SKIP
n
NEXT moves on to the next save on the tape, and prints out
the name of its stamp-file (as above); SKIP moves over n
saves (default is 1), and prints the file name of each
corresponding stamp-file (so that the last stamp-file listed
is the
last one read, and
the save corresponding
to
it is
ready to be read i).
When the user has determined that he has
found the last
save on the tape, he should skip over the save itself by
entering the command
LAST
which returns to CMS, and invoking the DESAVE exec.
The DBSAVE exec
(preceded by
the
will now sav a copy of the database
proper
stamp-file).
It
takes
two
arquments: the first is
the name of the account
that the
user is on, and the second is the number of cylinders in the
335-area that is to be saved (the same argument
as
SEQBACK exec). For example, the user might enter:
to
the
DBSAVF NEEMIS3 10
When the database has teen saved, the user should note in
his log the name of the stamp-file (to preserve the fact
that
it is now the last one
on the tape) and may rewind it.
-77a Database
Restorin
strategy
The overall
the
it by enterinq
is to
the
using
rstore,
to
you wish
SFQICAt'
M
(no arguments),
DBSCAN
D?
user
Now the
in
types
name of the first
DB_ 12/22
"FIPST"
stamp-file
NEEMIS3
and T)}SCAN will print out the
on the tape,
user that
database save that
the
on December 22.
was from NEEMIS3, and was saved
user wishes more detailed
If the
such as
A1
to the
This indicates
follows
loading
and thenre
command.
the user shculd invoke
To start,
which will rspond with
CO
save that
find the particular
DPSCAN exac,
particular save, he should
enter
the
information about this
command
CONTENTS
(in response to another 'COMMAND?').
into the A-disk; the
the stamp-file
The routine will load
user may now examine
it
by entering
T fn ft
fm
where 'fn ft fim' designates the stamp-file.
stamp-file would look like this:
A
typical
20 CYLINDER DATABASe SAVED:
TIME: 22:13.05
DATE: 12/22/75
5 TABLES:
INT
EGik T Y
DOMCAT
CATALOG
DOOBY DOO
BLOOPBIOOP
this particular save,
If the user does not wish tc rload
by using
find the right save
he may scan down the tape to
the two commands:
NEXT
SKIP
n
NEXT moves on to
the name
of its
the next save on the tape,
stamp-file (s above);
and prints out
SKIP moves
over n
-78(default
is 1)
saves,
and
corresponding .tam--fil
is the last one read,
ready to be read in).
t he f ile
prints
name of
each
(so that the last stamp-file listed
and
the save corresponding
to
it is
Note: to simply list all the saves on a particular tape, the
user may enter the 'FIRST' command
followed by a 'SKIP 300'
command (which will run off the end of the tape and flag an
error, but a CMS BEW command will fix that up)
When the user has found the save to be restored (ie. has
just had the name of its stamp-file printed, or just looked
at the contents of its stamp-file using the 'CONTENTS'
command), he should enter the command
SEQLOAD nn
where na
is the number of
cylinders
on the 335-area
to be
restored (this is the same as the number of cylinders listed
in the stamp-file itself). The database will be restored,
and the user may rewind the tape.
Summar
of DBSCAN
In response to the questicn 'COMMAND?', the
any of the following seven commands:
FIRST --
rewinds tape, finds
user may enter
first stamp-file on tape,
and prints out its name
NEXT --. skips over one save", and prints name
stamp-file ccrrespcnding to next save (if any)
of
SKIP n -- skips over the next n "saves" and prints the
name of the stamp-file corresponding to the n-th save
(if any)
CONTENTS--loads most recently found stamp-file onto
A-disk, and responds by printing 'ENTER TYPE COMMAND
(OR NULL LINE)'
SEQLOAD n --restcres database pointed to by most
recently found stamr-file; argument
is number of
cylinders on 335-disk
LAST --
skips over the next
"save" (presumed to be the
last one on the tape) and returns
QUIT--returns
In response
to CMS
to C S
to 'ENTER TYPE COMMAND
(OR NULL LINE)', the user
should:
--enter
a type
command
(to type out
a stamp-file
that
-7 q has
hbenri loaded
-- enter
h
y thr.
C
TF PIS comnmand),
or
i carriaqe return, to indicate no typeout.
Appe ndiY )
Usirg SELn TMP
3/1 0/7 E
SELDUtP
is a selective dumpfacility,
that oerates
throuqh the MultiUser Interface.
It allow. a user to dump
selected
table(s) from the DB Machine into an arbitrary
file, in
includes
bulk loadable
PDEFDCM and/or
fcrm
(eq.
LOADD
).
It optionally
$CEFFTA records for the table (s).
USE:
SELDIJMP
d-accnt
fn
ft
fn
db-accnt---the name of the atabase
machine
table(s) to be dubfed are located
fn ft f---specify
in which the
the file tn receive the dump
Example:
SELDUMP NEEMIS ADIEAI
LOAPFILE A1
Routine will respon4 with: 'WHAT TAPL?'.
Enter the name
of the first table ycu wish to have (lumped. Routine will
then ask 'DO YOU WANT
rEFTABS, $DEFDOMS, BOTH OR NEITHER
(T/D)/B/N)?'. Enter cne of the four letters 't', d', 'b'
or 'n'
remain
to indicate
in effect
your choice--this
option will
only
for this table.
The routine will now
ump te tble
as directed.
It will
then ask you for the rame of the next table, and for your
$DEFTAB-etc.
option, as abov . You may dump as
many
tables as you want; when you ae through, simply enter a
carriage
return (y
itself) in response
to the
'WHAT
TABILE?' query.
Note: recall that
ycu ay not b able
to dump extremely
larqe tables with
this routine, due to the limited size
of the 340 area.
If you need to, contact John
aglio or
Bryan
M an.
- 31 -
Appeadix
Procedure for Analyzinq rDatabasce
1.
VMA
2.
)LOAD
Utilization
FI,
201
SEQUTII
(note,: this
is a
LOAD,
not
a
COPY)
3.
PAGFSUSEE
(this
calculates
is
the
API
function
that
utilization totals)
The terminal will print
the form:
CON FILE
nnnn
several
TO xxxxxxxx
CONFILE"messages, of
COPY 01
NOHCLn
Then the program will output 5 numbers:
(a) total number of relation ages used
(b) total number of overflow pages used
(c) total number o data pages sed
(d) total
number of pages in use--the
(c)
(e) the highest cylinder
sum of (a),
(b) and
number in use
ROUGH ESTIMATE OF USAGF:
Type:
EXTENT(0;0)--using brackets. instead of parantheses
Response will
list total rumber of pages that are available
Compare this number with the total given
to the database.
in (d) above--(d) will e some fraction of this number,
representing percentage f total pages presently used up.
MORE DETAILED ANALYSIS:
The total number of cells allocated to each of the three
types of pages (that is, relational, data and overflow) was
determined
when
FORMSGT(eg SEQINIT)
was last
done
on the
database.
Each cell can accoumodate
allocating 20 cells for data
up to 48 pages, so that
pages, for example, means that
there
cannot
be more
than 2C X
Comparing this
figure (that is, 48
given
in (c) above
will tell
48
=960
data
pages.
X *_of_cells)
to that
you how
running out of storage for data pages
out
of
storage
for
control
blocks
close
(actually,
for
you are
to
to running
data
pages).
-82-
the rigurns used with FOPMSGT for the nulmber of
in
used,
canrl be
and overflow cells
relation cells
conjunction with (a) and (b) above, to see how close you are
Likewise,
to running out of those types of pages.
Download