Version:

/insert/recordsΒΆ

URL: http://GPUDB_IP_ADDRESS:GPUDB_PORT/insert/records

Adds multiple records to the specified table. The operation is synchronous meaning that GPUdb will not return a response until all the records are fully inserted and available. The response payload provides unique identifier for each added record along with counts of the number of records actually inserted and/or updated.

Input parameter options can be used to customize this function's behavior. The only parameter available is update_on_existing_pk. The value can be either 'true' or 'false'. If the table has a primary key and if update_on_existing_pk is 'true' then if any of the records being added have the same primary key as existing records, the existing records are replaced (i.e. updated) with the given records. If update_on_existing_pk is false and if the records being added have the same primary key as existing records, the given records with existing primary keys are ignored (the existing records are left unchanged). It is quite possible that in this case some of the given records will be inserted and some (those having existing primary keys) will be ignored (or updated). If the specified table does not have a primary key column then the update_on_existing_pk option is ignored.

Input Parameter Description

Name Type Description
table_name string Table to which the records are to be added. Must be an existing table.
list array of bytes An array of binary-encoded data for the records to be added. All records must be of the same type as that of the table. Empty array if input parameter list_encoding is json.
list_str array of strings An array of JSON encoded data for the records to be added. All records must be of the same type as that of the table. Empty array if input parameter list_encoding is binary.
list_encoding string

The encoding of the records to be inserted. Default value is 'binary'. The allowed values are:

  • binary
  • json
options map of strings

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

Supported Parameters (keys) Parameter Description
update_on_existing_pk

If the table has a primary key, then if the value is 'true' then if any of the records being added have the same primary key as existing records, the existing records are replaced (i.e. updated) with the given records. If 'false' and if the records being added have the same primary key as existing records, the given records with existing primary keys are ignored (the existing records are left unchanged). It is quite possible that in this case some of the given records will be inserted and some (those having existing primary keys) will be ignored (or updated). If the specified table does not have a primary key column then this optional parameter is ignored. Default value is 'false'. The allowed values are:

  • true
  • false
return_record_ids

If 'true' then return GPUdb's internal record id along for each inserted record. Default is 'false'. Default value is 'false'. The allowed values are:

  • true
  • false
route_to_address Route to a specific rank/tom. Option not suitable for tables using primary/shard keys

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 'insert_records_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 /insert/records endpoint:

Name Type Description
record_ids array of strings An array containing the IDs with which GPUdb internally identifies the added records.
count_inserted int The number of records inserted.
count_updated int The number of records updated.

Empty string in case of an error.