PostgreSQL
68.2. BKI Commands
create
`tablenametableoid
[[.optional]bootstrap
] [[.optional]
shared_relation] [[.optional]
without_oids] [[.optional]
rowtype_oid` `oid] (name1
= type1
[[.optional]#FORCE NOT NULL | FORCE NULL ] , name2
= type2` [[.optional]#FORCE NOT NULL | FORCE NULL ], …])
-
Create a table named `tablename
, and having the OID tableoid
, with the columns given in parentheses. + The following column types are supported directly by `bootstrap.c:
bool
,bytea
,char
(1 byte),name
,int2
,int4
,regproc
,regclass
,regtype
,text
,oid
,tid
,xid
,cid
,int2vector
,oidvector
,_int4
(array),_text
(array),_oid
(array),_char
(array),_aclitem
(array). Although it is possible to create tables containing columns of other types, this cannot be done until afterpg_type
has been created and filled with appropriate entries. (That effectively means that only these column types can be used in bootstrapped tables, but non-bootstrap catalogs can contain any built-in type.) + Whenbootstrap
is specified, the table will only be created on disk; nothing is entered intopg_class
,pg_attribute
, etc, for it. Thus the table will not be accessible by ordinary SQL operations until such entries are made the hard way (withinsert
commands). This option is used for creatingpg_class
etc themselves. + The table is created as shared ifshared_relation
is specified. It will have OIDs unlesswithout_oids
is specified. The table’s row type OID (pg_type
OID) can optionally be specified via therowtype_oid
clause; if not specified, an OID is automatically generated for it. (Therowtype_oid
clause is useless ifbootstrap
is specified, but it can be provided anyway for documentation.) open
`tablename`-
Open the table named `tablename` for insertion of data. Any currently open table is closed.
close
[[.optional]`tablename`]-
Close the open table. The name of the table can be given as a cross-check, but this is not required.
insert
[[.optional]OID =
`oid_value] `( `value1
value2
… `)
-
Insert a new row into the open table using `value1
, value2
, etc., for its column values and oid_value
for its OID. If oid_value
is zero (0) or the clause is omitted, and the table has OIDs, then the next available OID is assigned. + NULL values can be specified using the special key word `_null_. Values containing spaces must be double quoted.
declare
[[.optional]unique
]index
`indexnameindexoid
`on `tablename
`using `amname
`( `opclass1
name1
[[.optional], …] `)
-
Create an index named `indexname
, having OID indexoid
, on the table named tablename
, using the amname
access method. The fields to index are called name1
, name2
etc., and the operator classes to use are opclass1
, opclass2` etc., respectively. The index file is created and appropriate catalog entries are made for it, but the index contents are not initialized by this command.
declare toast
`toasttableoidtoastindexoid
`on `tablename`
-
Create a TOAST table for the table named `tablename
. The TOAST table is assigned OID toasttableoid
and its index is assigned OID toastindexoid
. As with `declare index, filling of the index is postponed.
build indices
-
Fill in the indices that have previously been declared.
Prev | Up | Next |
---|---|---|
68.1. BKI File Format |
68.3. Structure of the Bootstrap BKI File |
Copyright © 1996-2023 The PostgreSQL Global Development Group