GPUdb C++ API  Version 6.2.0.3
gpudb::UpdateRecordsRequest< T > Struct Template Reference

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

#include <gpudb/protocol/update_records.h>

Public Member Functions

 UpdateRecordsRequest ()
 Constructs an UpdateRecordsRequest object with default parameter values. More...
 
 UpdateRecordsRequest (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< T > &data_, const std::map< std::string, std::string > &options_)
 Constructs an UpdateRecordsRequest 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< T > data
 
std::map< std::string, std::string > options
 

Detailed Description

template<typename T>
struct gpudb::UpdateRecordsRequest< T >

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.

Parameters
<T>The type of object being processed.

Definition at line 369 of file update_records.h.

Constructor & Destructor Documentation

◆ UpdateRecordsRequest() [1/2]

template<typename T >
gpudb::UpdateRecordsRequest< T >::UpdateRecordsRequest ( )
inline

Constructs an UpdateRecordsRequest object with default parameter values.

Definition at line 376 of file update_records.h.

◆ UpdateRecordsRequest() [2/2]

template<typename T >
gpudb::UpdateRecordsRequest< T >::UpdateRecordsRequest ( 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< T > &  data_,
const std::map< std::string, std::string > &  options_ 
)
inline

Constructs an UpdateRecordsRequest 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]data_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 465 of file update_records.h.

Member Data Documentation

◆ data

template<typename T >
std::vector<T> gpudb::UpdateRecordsRequest< T >::data

Definition at line 477 of file update_records.h.

◆ expressions

template<typename T >
std::vector<std::string> gpudb::UpdateRecordsRequest< T >::expressions

Definition at line 475 of file update_records.h.

◆ newValuesMaps

template<typename T >
std::vector<std::map<std::string, boost::optional<std::string> > > gpudb::UpdateRecordsRequest< T >::newValuesMaps

Definition at line 476 of file update_records.h.

◆ options

template<typename T >
std::map<std::string, std::string> gpudb::UpdateRecordsRequest< T >::options

Definition at line 478 of file update_records.h.

◆ tableName

template<typename T >
std::string gpudb::UpdateRecordsRequest< T >::tableName

Definition at line 474 of file update_records.h.


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