/create/table
URL: http://GPUDB_IP_ADDRESS:GPUDB_PORT/create/table
Creates a new table or collection. If a new table is being created, the type of the table is given by input parameter type_id, which must the be the 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, it will be created.
To create a new collection, specify the name of the collection in input parameter table_name and set the is_collection option to true; input parameter type_id will be ignored.
Name |
Type |
Description |
table_name |
string |
Name of the table to be created. Error for requests with existing table of the same name and type id may be suppressed by using the no_error_if_exists option. See Tables for naming restrictions. |
type_id |
string |
ID of a currently registered type. All objects added to the newly created table will be of this type. Ignored if 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:
|
collection_name |
Name of a collection which is to contain the newly created table. If empty, then the newly created table will be a top-level table. If the collection does not allow duplicate types and it contains a table of the same type as the given one, then this table creation request will fail. |
is_collection |
Indicates whether the new table to be created will be a collection. Default value is 'false'. The allowed values are:
|
disallow_homogeneous_tables |
For a collection, indicates whether the collection prohibits containment of multiple tables of exactly the same data type. Default value is 'false'. The allowed values are:
|
is_replicated |
For a table, indicates whether the table is to be replicated to all the database ranks. This may be necessary when the table is to be joined with other tables in a query. Default value is 'false'. The allowed values are:
|
foreign_keys |
Semicolon-separated list of foreign keys, of the format 'source_column references target_table(primary_key_column)'. Default value is ''. |
foreign_shard_key |
Foreign shard key of the format 'source_column references shard_by_column from target_table(primary_key_column)' Default value is ''. |
ttl |
Sets the TTL of the table or collection specified in input parameter table_name. The value must be the desired TTL in minutes. |
is_result_table |
For a table, indicates whether the table is a non-persistent, memory-only table that will store the output of a proc executed with /execute/proc. A result table cannot contain store_only, text_search, or string columns (char columns are acceptable), records cannot be inserted into it directly, and it will not be retained if the server is restarted. Default value is 'false'. The allowed values are:
|
|
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.
|