PostgreSQL
70.4. 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 bootstrap catalogs, 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
`tablename`-
Close the open table. The name of the table must be given as a cross-check.
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 that do not look like identifiers or digit strings 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 |
---|---|---|
70.3. BKI File Format |
70.5. Structure of the Bootstrap BKI File |
Copyright © 1996-2023 The PostgreSQL Global Development Group