Version:

/create/tableΒΆ

URL: http://GPUDB_IP_ADDRESS:GPUDB_PORT/create/table

Creates a new table or collection in GPUdb. If a new table is being created then type of the table is given by input parameter type_id which must the be the type id of a currently registered type (i.e. one created via /create/type). The table will be created inside a collection if the option collection_name is specified. If that collection does not already exist then it will be created. To create a new, empty collection specify the collection name in input parameter table_name, leave input parameter type_id blank, and set the is_collection option to 'true'.

Input Parameter Description

Name Type Description
table_name string Name of the table to be created. Must not be the name of a currently existing GPUdb table of a different type. Error for requests with existing table of the same name and type id may be suppressed by using the no_error_if_exists option. Cannot be an empty string. Valid characters are 'A-Za-z0-9_-(){}[] .:' (excluding the single quote), with the first character being one of 'A-Za-z0-9_'. The maximum length is 256 characters.
type_id string ID of a currently registered type in GPUdb. All objects added to the newly created table will be of this type. Must be an empty string if the is_collection is 'true'.
options map of strings

Optional parameters. Default value is an empty map ( {} ).

Supported Parameters (keys) Parameter Description
no_error_if_exists

If true, prevents an error from occurring if the table already exists and is of the given type. If a table with the same ID but a different type exists, it is still an error. Default value is 'false'. The allowed values are:

  • true
  • false
collection_name Name of a collection in GPUdb to which the newly created table is to be assigned as a child table. If empty, then the newly created table will be a top level table. If the collection does not allow duplicate children, then this table creation request will fail if there is an existing child table with the same type id specified in this request. Default value is ''.
is_collection

Indicates whether the new table to be created will be a collection. If false, the created table will be a top level table. Default value is 'false'. The allowed values are:

  • true
  • false
disallow_homogeneous_tables

For a collection, indicates whether multiple children of exactly the same data type will be allowed. Default value is 'false'. The allowed values are:

  • true
  • false
is_replicated

For a Table, this is an indication to GPUdb to replicate the table to all the ranks. This is only required when the table will be used to join with other tables in a query. Default value is 'false'. The allowed values are:

  • true
  • false
foreign_keys Semicolon-separated list of foreign key constraints, of the format 'my_field references primary_table(primary_key_field)'. Default value is ''.

Output Parameter Description

The GPUdb server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query. Here is a description of the various fields of the wrapper:

Name Type Description
status String 'OK' or 'ERROR'
message String Empty if success or an error message
data_type String 'create_table_request' or 'none' in case of an error
data String Empty string
data_str JSON or String

This embedded JSON represents the result of the /create/table endpoint:

Name Type Description
table_name string Value of input parameter table_name.
type_id string Value of input parameter type_id.
is_collection boolean Indicates if the created entity is a collection.

Empty string in case of an error.