CREATE TABLESPACE

Defines a new tablespace.

Synopsis

CREATE TABLESPACE tablespace_name [OWNER username]
       FILESPACE filespace_name

Description

CREATE TABLESPACE registers a new tablespace for your HAWQ system. The tablespace name must be distinct from the name of any existing tablespace in the system.

A tablespace allows superusers to define an alternative location on the file system where the data files containing database objects (such as tables) may reside.

A user with appropriate privileges can pass a tablespace name to CREATE DATABASE or CREATE TABLE to have the data files for these objects stored within the specified tablespace.

In HAWQ, there must be a file system location defined for the master and each segment in order for the tablespace to have a location to store its objects across an entire HAWQ system. This collection of file system locations is defined in a filespace object. A filespace must be defined before you can create a tablespace. See hawq filespace for more information.

Parameters

tablespacename
The name of a tablespace to be created. The name cannot begin with pg_, as such names are reserved for system tablespaces.

OWNER username
The name of the user who will own the tablespace. If omitted, defaults to the user executing the command. Only superusers may create tablespaces, but they can assign ownership of tablespaces to non-superusers.

FILESPACE filespace_name
The name of a HAWQ filespace that was defined using the hawq filespace management utility.

Notes

You must first create a filespace to be used by the tablespace. See hawq filespace for more information.

Tablespaces are only supported on systems that support symbolic links.

CREATE TABLESPACE cannot be executed inside a transaction block.

Examples

Create a new tablespace by specifying the corresponding filespace to use:

CREATE TABLESPACE mytblspace FILESPACE myfilespace;

Compatibility

CREATE TABLESPACE is a HAWQ extension.

See Also

CREATE DATABASE, CREATE TABLE, DROP TABLESPACE