GPUdb C++ API
Version 6.2.0.3
|
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 |
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.
<T> | The type of object being processed. |
Definition at line 369 of file update_records.h.
|
inline |
Constructs an UpdateRecordsRequest object with default parameter values.
Definition at line 376 of file update_records.h.
|
inline |
Constructs an UpdateRecordsRequest object with the specified 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.
std::vector<T> gpudb::UpdateRecordsRequest< T >::data |
Definition at line 477 of file update_records.h.
std::vector<std::string> gpudb::UpdateRecordsRequest< T >::expressions |
Definition at line 475 of file update_records.h.
std::vector<std::map<std::string, boost::optional<std::string> > > gpudb::UpdateRecordsRequest< T >::newValuesMaps |
Definition at line 476 of file update_records.h.
std::map<std::string, std::string> gpudb::UpdateRecordsRequest< T >::options |
Definition at line 478 of file update_records.h.
std::string gpudb::UpdateRecordsRequest< T >::tableName |
Definition at line 474 of file update_records.h.