.\" XXX standard disclaimer belongs here....
.\" $Header: /private/postgres/ref/postquel/RCS/createversion,v 1.8 1992/07/14 06:05:40 ptong Exp $
.SP "CREATE VERSION" COMMANDS 6/14/90
.XA 2 "Create Version"
.uh NAME
.lp
create version \*- construct a version class 
.uh SYNOPSIS
.lp
.(l
\fBcreate version\fR classname1 \fBfrom\fR classname2 [ \fB[\fR abstime \fB]\fR ]
.)l
.uh DESCRIPTION
.lp
This command creates a version class
.i classname1
which is related
to its parent class,
.i classname2 .
Initially,
.i classname1
has the same contents as
.i classname2.
As updates to 
.i classname1 
occur, however,
the contents of
.i classname1
diverges from
.i classname2.
On the other hand, any updates to
.i classname2
show transparently through
to
.i classname1 ,
unless the instance in question has already been updated
in
.i classname1 .  
.lp
If the optional
.i abstime
clause is specified, then the version is
constructed relative to a 
.b snapshot
of
.i classname2
as of the time specified.
.lp
\*(PP uses the query rewrite rule system to ensure that 
.i classname1
is differentially encoded relative
to 
.i classname2.  
Moreover, 
.i classname1
is automatically constructed
to have the same indexes as
.i classname2 .
It is legal to cascade versions
arbitrarily, so a tree of versions can ultimately result.
The algorithms that control versions are explained in [ONG90].
.uh EXAMPLE
.lp
.ft C
.nf
/* create a version foobar from a snapshot of */
/* barfoo as of January 17, 1990              */

create version foobar from barfoo [ "Jan 17 1990" ]
.ft
.uh "SEE ALSO"
.lp
merge(commands), define view(commands), postquel(commands).
.lp
.uh "BUGS"
.lp
Snapshots (i.e. the optional abstime specifications) have not yet been
implemented.
