diff options
Diffstat (limited to 'doc/man/create_table.l')
-rw-r--r-- | doc/man/create_table.l | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/doc/man/create_table.l b/doc/man/create_table.l new file mode 100644 index 00000000000..ecb03a2de6c --- /dev/null +++ b/doc/man/create_table.l @@ -0,0 +1,145 @@ +.\" This is -*-nroff-*- +.\" XXX standard disclaimer belongs here.... +.\" $Header: /cvsroot/pgsql/doc/man/Attic/create_table.l,v 1.1.1.1 1996/08/18 22:14:22 scrappy Exp $ +.TH "CREATE TABLE" SQL 11/05/95 Postgres95 Postgres95 +.SH NAME +create table \(em create a new class +.SH SYNOPSIS +.nf +\fBcreate table \fR classname \fB(\fPattname-1 type-1 {\fB,\fP attname-i type-i}\fB)\fP + [\fBinherits\fR \fB(\fR classname-1 {\fB,\fR classname-i} \fB)\fR] + [\fBarchive\fR \fB=\fR archive_mode] + [\fBstore\fR \fB=\fR \*(lqsmgr_name\*(rq] + [\fBarch_store\fR \fB=\fR \*(lqsmgr_name\*(rq] +.fi +.SH DESCRIPTION +.BR "Create table" +will enter a new class into the current data base. The class will be +\*(lqowned\*(rq by the user issuing the command. The name of the +class is +.IR classname +and the attributes are as specified in the list of +.IR attname s. +The +.IR i th +attribute is created with the type specified by +.IR type "-i." +Each type may be a simple type, a complex type (set) or an array type. +.PP +Each array attribute stores arrays that must have the same number of +dimensions but may have different sizes and array index bounds. An +array of dimension +.IR n +is specified by appending +.IR n +pairs of square brackets: +.nf +att_name = type[][]..[] +.fi +.PP +The optional +.BR inherits +clause specifies a collection of class names from which this class +automatically inherits all fields. If any inherited field name +appears more than once, Postgres reports an error. Postgres automatically +allows the created class to inherit functions on classes above it in +the inheritance hierarchy. Inheritance of functions is done according +to the conventions of the Common Lisp Object System (CLOS). +.PP +Each new class +.IR classname +is automatically created as a type. Therefore, one or more instances +from the class are automatically a type and can be used in +.IR alter table(l) +or other +.BR "create table" +statements. See +.IR introduction (l) +for a further discussion of this point. +.PP +The optional +.BR store +and +.BR arch_store +keywords may be used to specify a storage manager to use for the new +class. The released version of Postgres supports only \*(lqmagnetic +disk\*(rq as a storage manager name; the research system at UC Berkeley +provides additional storage managers. +.BR Store +controls the location of current data, +and +.BR arch_store +controls the location of historical data. +.BR Arch_store +may only be specified if +.BR archive +is also specified. If either +.BR store +or +.BR arch_store +is not declared, it defaults to \*(lqmagnetic disk\*(rq. +.PP +The new class is created as a heap with no initial data. A class can +have no more than 1600 attributes (realistically, this is limited by the +fact that tuple sizes must be less than 8192 bytes), but this limit +may be configured lower at some sites. A class cannot have the same +name as a system catalog class. +.PP +The +.BR archive +keyword specifies whether historical data is to be saved or discarded. +.IR Arch_mode +may be one of: +.TP 10n +.IR none +No historical access is supported. +.TP 10n +.IR light +Historical access is allowed and optimized for light update activity. +.TP 10n +.IR heavy +Historical access is allowed and optimized for heavy update activity. +.PP +.IR Arch_mode +defaults to \*(lqnone\*(rq. Once the archive status is set, there is +no way to change it. For details of the optimization, see [STON87]. +.SH EXAMPLES +.nf +-- +-- Create class emp with attributes name, sal and bdate +-- +create table emp (name char16, salary float4, bdate abstime) +.fi +.nf +-- +--Create class permemp with pension information that +--inherits all fields of emp +-- +create table permemp (plan char16) inherits (emp) +.fi +.nf +-- +--Create class foo on magnetic disk and archive historical data +-- +create table foo (bar int4) archive = heavy + store = "magnetic disk" +.fi +.nf +-- +--Create class tictactoe to store noughts-and-crosses +--boards as a 2-dimensional array +-- +create table tictactoe (game int4, board = char[][]) +.fi +.nf +-- +--Create a class newemp with a set attribute "manager". A +--set (complex) attribute may be of the same type as the +--relation being defined (as here) or of a different complex +--type. The type must exist in the "pg_type" catalog or be +--the one currently being defined. +-- +create table newemp (name text, manager = newemp) +.fi +.SH "SEE ALSO" +drop table(l). |