GPUdb C++ API  Version 6.2.0.3
gpudb::RawUpdateRecordsRequest Struct Reference

A set of input parameters for updateRecordsRaw(const RawUpdateRecordsRequest&) const. More...

#include <gpudb/protocol/update_records.h>

Public Member Functions

 RawUpdateRecordsRequest ()
 Constructs a RawUpdateRecordsRequest object with default parameter values. More...
 
 RawUpdateRecordsRequest (const std::string &tableName_, const std::vector< std::string > &expressions_, const std::vector< std::map< std::string, boost::optional< std::string > > > &newValuesMaps_, const std::vector< std::vector< uint8_t > > &recordsToInsert_, const std::map< std::string, std::string > &options_)
 Constructs a RawUpdateRecordsRequest object with the specified parameters. More...
 
 RawUpdateRecordsRequest (const std::string &tableName_, const std::vector< std::string > &expressions_, const std::vector< std::map< std::string, boost::optional< std::string > > > &newValuesMaps_, const std::vector< std::vector< uint8_t > > &recordsToInsert_, const std::vector< std::string > &recordsToInsertStr_, const std::string &recordEncoding_, const std::map< std::string, std::string > &options_)
 Constructs a RawUpdateRecordsRequest object with the specified parameters. More...
 

Public Attributes

std::string tableName
 
std::vector< std::string > expressions
 
std::vector< std::map< std::string, boost::optional< std::string > > > newValuesMaps
 
std::vector< std::vector< uint8_t > > recordsToInsert
 
std::vector< std::string > recordsToInsertStr
 
std::string recordEncoding
 
std::map< std::string, std::string > options
 

Detailed Description

A set of input parameters for updateRecordsRaw(const RawUpdateRecordsRequest&) const.

Runs multiple predicate-based updates in a single call. With the list of given expressions, any matching record's column values will be updated as provided in newValuesMaps. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.

Note that this operation can only be run on an original table and not on a collection or a result view.

This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through options.

Definition at line 37 of file update_records.h.

Constructor & Destructor Documentation

◆ RawUpdateRecordsRequest() [1/3]

gpudb::RawUpdateRecordsRequest::RawUpdateRecordsRequest ( )
inline

Constructs a RawUpdateRecordsRequest object with default parameter values.

Definition at line 44 of file update_records.h.

◆ RawUpdateRecordsRequest() [2/3]

gpudb::RawUpdateRecordsRequest::RawUpdateRecordsRequest ( const std::string &  tableName_,
const std::vector< std::string > &  expressions_,
const std::vector< std::map< std::string, boost::optional< std::string > > > &  newValuesMaps_,
const std::vector< std::vector< uint8_t > > &  recordsToInsert_,
const std::map< std::string, std::string > &  options_ 
)
inline

Constructs a RawUpdateRecordsRequest object with the specified parameters.

Parameters
[in]tableName_Table to be updated. Must be a currently existing table and not a collection or view.
[in]expressions_A list of the actual predicates, one for each update; format should follow the guidelines /filter.
[in]newValuesMaps_List of new values for the matching records. Each element is a map with (key, value) pairs where the keys are the names of the columns whose values are to be updated; the values are the new values. The number of elements in the list should match the length of expressions.
[in]recordsToInsert_An optional list of new binary-avro encoded records to insert, one for each update. If one of expressions does not yield a matching record to be updated, then the corresponding element from this list will be added to the table.
[in]options_Optional parameters.

Definition at line 137 of file update_records.h.

◆ RawUpdateRecordsRequest() [3/3]

gpudb::RawUpdateRecordsRequest::RawUpdateRecordsRequest ( const std::string &  tableName_,
const std::vector< std::string > &  expressions_,
const std::vector< std::map< std::string, boost::optional< std::string > > > &  newValuesMaps_,
const std::vector< std::vector< uint8_t > > &  recordsToInsert_,
const std::vector< std::string > &  recordsToInsertStr_,
const std::string &  recordEncoding_,
const std::map< std::string, std::string > &  options_ 
)
inline

Constructs a RawUpdateRecordsRequest object with the specified parameters.

Parameters
[in]tableName_Table to be updated. Must be a currently existing table and not a collection or view.
[in]expressions_A list of the actual predicates, one for each update; format should follow the guidelines /filter.
[in]newValuesMaps_List of new values for the matching records. Each element is a map with (key, value) pairs where the keys are the names of the columns whose values are to be updated; the values are the new values. The number of elements in the list should match the length of expressions.
[in]recordsToInsert_An optional list of new binary-avro encoded records to insert, one for each update. If one of expressions does not yield a matching record to be updated, then the corresponding element from this list will be added to the table.
[in]recordsToInsertStr_An optional list of new json-avro encoded objects to insert, one for each update, to be added to the set if the particular update did not affect any objects.
[in]recordEncoding_Identifies which of recordsToInsert and recordsToInsertStr should be used. The default value is gpudb::update_records_binary.
[in]options_Optional parameters.

Definition at line 245 of file update_records.h.

Member Data Documentation

◆ expressions

std::vector<std::string> gpudb::RawUpdateRecordsRequest::expressions

Definition at line 257 of file update_records.h.

◆ newValuesMaps

std::vector<std::map<std::string, boost::optional<std::string> > > gpudb::RawUpdateRecordsRequest::newValuesMaps

Definition at line 258 of file update_records.h.

◆ options

std::map<std::string, std::string> gpudb::RawUpdateRecordsRequest::options

Definition at line 262 of file update_records.h.

◆ recordEncoding

std::string gpudb::RawUpdateRecordsRequest::recordEncoding

Definition at line 261 of file update_records.h.

◆ recordsToInsert

std::vector<std::vector<uint8_t> > gpudb::RawUpdateRecordsRequest::recordsToInsert

Definition at line 259 of file update_records.h.

◆ recordsToInsertStr

std::vector<std::string> gpudb::RawUpdateRecordsRequest::recordsToInsertStr

Definition at line 260 of file update_records.h.

◆ tableName

std::string gpudb::RawUpdateRecordsRequest::tableName

Definition at line 256 of file update_records.h.


The documentation for this struct was generated from the following file: