---
name: "create_version"
section: "7l"
platform: "linux"
package: "postgresql"
version: "6.5.3-27"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/create_version"
---

# create\_version(7l)

construct a version class

## NAME

create version - construct a version class

## SYNOPSIS

```
create version classname1 from classname2 [[abstime]]
```

## DESCRIPTION

*Currently, the versioning facility is not working.*

This command creates a version class *classname1* which is related to its parent class, *classname2*. Initially, *classname1* has the same contents as *classname2.* As updates to  *classname1* occur, however, the content of *classname1* diverges from *classname2.* On the other hand, any updates to *classname2* show transparently through to *classname1*, unless the instance in question has already been updated in *classname1*.

If the optional *abstime* clause is specified, then the version is constructed relative to a **snapshot** of *classname2* as of the time specified.

Postgres uses the query rewrite rule system to ensure that  *classname1* is differentially encoded relative to *classname2.* Moreover,  *classname1* is automatically constructed to have the same indexes as *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\].

## EXAMPLE

```
--
--create a version foobar from a snapshot of
--barfoo as of January 17, 1990
--
create version foobar from barfoo [ "Jan 17 1990" ]
```

## SEE ALSO

create\_view(l).

## BUGS

Snapshots (i.e., the optional  *abstime* clause) are not implemented in Postgres.
