kudu::KuduPartialRow Class Reference

A row which may only contain values for a subset of the columns. More...

#include <partial_row.h>

List of all members.

Public Member Functions

 KuduPartialRow (const Schema *schema)
 KuduPartialRow (const KuduPartialRow &other)
KuduPartialRowoperator= (KuduPartialRow other)
Status SetNull (const Slice &col_name) WARN_UNUSED_RESULT
Status SetNull (int col_idx) WARN_UNUSED_RESULT
Status Unset (const Slice &col_name) WARN_UNUSED_RESULT
Status Unset (int col_idx) WARN_UNUSED_RESULT
bool IsColumnSet (const Slice &col_name) const
bool IsColumnSet (int col_idx) const
bool IsNull (const Slice &col_name) const
bool IsNull (int col_idx) const
Status EncodeRowKey (std::string *encoded_key) const
std::string ToEncodedRowKeyOrDie () const
bool IsKeySet () const
bool AllColumnsSet () const
std::string ToString () const
const Schema * schema () const
Setters for integral type columns by name.

Set value for a column by name.

Parameters:
[in] col_name Name of the target column.
[in] val The value to set.
Returns:
Operation result status.


Status SetBool (const Slice &col_name, bool val) WARN_UNUSED_RESULT
Status SetInt8 (const Slice &col_name, int8_t val) WARN_UNUSED_RESULT
Status SetInt16 (const Slice &col_name, int16_t val) WARN_UNUSED_RESULT
Status SetInt32 (const Slice &col_name, int32_t val) WARN_UNUSED_RESULT
Status SetInt64 (const Slice &col_name, int64_t val) WARN_UNUSED_RESULT
Status SetUnixTimeMicros (const Slice &col_name, int64_t micros_since_utc_epoch) WARN_UNUSED_RESULT
Status SetFloat (const Slice &col_name, float val) WARN_UNUSED_RESULT
Status SetDouble (const Slice &col_name, double val) WARN_UNUSED_RESULT
Setters for integral type columns by index.

Set value for a column by index.

These setters are the same as corresponding column-name-based setters, but with numeric column indexes. These are faster since they avoid hashmap lookups, so should be preferred in performance-sensitive code (e.g. bulk loaders).

Parameters:
[in] col_idx The index of the target column.
[in] val The value to set.
Returns:
Operation result status.


Status SetBool (int col_idx, bool val) WARN_UNUSED_RESULT
Status SetInt8 (int col_idx, int8_t val) WARN_UNUSED_RESULT
Status SetInt16 (int col_idx, int16_t val) WARN_UNUSED_RESULT
Status SetInt32 (int col_idx, int32_t val) WARN_UNUSED_RESULT
Status SetInt64 (int col_idx, int64_t val) WARN_UNUSED_RESULT
Status SetUnixTimeMicros (int col_idx, int64_t micros_since_utc_epoch) WARN_UNUSED_RESULT
Status SetFloat (int col_idx, float val) WARN_UNUSED_RESULT
Status SetDouble (int col_idx, double val) WARN_UNUSED_RESULT
Setters for binary/string columns by name (copying).

Set the binary/string value for a column by name, copying the specified data immediately.

Parameters:
[in] col_name Name of the target column.
[in] val The value to set.
Returns:
Operation result status.


Status SetBinary (const Slice &col_name, const Slice &val) WARN_UNUSED_RESULT
Status SetString (const Slice &col_name, const Slice &val) WARN_UNUSED_RESULT
Status SetBinaryCopy (const Slice &col_name, const Slice &val) WARN_UNUSED_RESULT
Status SetStringCopy (const Slice &col_name, const Slice &val) WARN_UNUSED_RESULT
Setters for binary/string columns by index (copying).

Set the binary/string value for a column by index, copying the specified data immediately.

These setters are the same as the corresponding column-name-based setters, but with numeric column indexes. These are faster since they avoid hashmap lookups, so should be preferred in performance-sensitive code (e.g. bulk loaders).

Parameters:
[in] col_idx The index of the target column.
[in] val The value to set.
Returns:
Operation result status.


Status SetBinary (int col_idx, const Slice &val) WARN_UNUSED_RESULT
Status SetString (int col_idx, const Slice &val) WARN_UNUSED_RESULT
Status SetStringCopy (int col_idx, const Slice &val) WARN_UNUSED_RESULT
Status SetBinaryCopy (int col_idx, const Slice &val) WARN_UNUSED_RESULT
Setters for binary/string columns by name (non-copying).

Set the binary/string value for a column by name, not copying the specified data.

Note:
The specified data must remain valid until the corresponding RPC calls are completed to be able to access error buffers, if any errors happened (the errors can be fetched using the KuduSession::GetPendingErrors() method).
Parameters:
[in] col_name Name of the target column.
[in] val The value to set.
Returns:
Operation result status.


Status SetBinaryNoCopy (const Slice &col_name, const Slice &val) WARN_UNUSED_RESULT
Status SetStringNoCopy (const Slice &col_name, const Slice &val) WARN_UNUSED_RESULT
Setters for binary/string columns by index (non-copying).

Set the binary/string value for a column by index, not copying the specified data.

These setters are the same as the corresponding column-name-based setters, but with numeric column indexes. These are faster since they avoid hashmap lookups, so should be preferred in performance-sensitive code (e.g. bulk loaders).

Note:
The specified data must remain valid until the corresponding RPC calls are completed to be able to access error buffers, if any errors happened (the errors can be fetched using the KuduSession::GetPendingErrors() method).
Parameters:
[in] col_idx The index of the target column.
[in] val The value to set.
Returns:
Operation result status.


Status SetBinaryNoCopy (int col_idx, const Slice &val) WARN_UNUSED_RESULT
Status SetStringNoCopy (int col_idx, const Slice &val) WARN_UNUSED_RESULT
Getters for integral type columns by column name.

Get value of the column specified by name.

Returns:
Operation result status. Return a bad Status if at least one of the following is true:
  • The type does not match.
  • The value is unset.
  • The value is NULL.


Status GetBool (const Slice &col_name, bool *val) const WARN_UNUSED_RESULT
Status GetInt8 (const Slice &col_name, int8_t *val) const WARN_UNUSED_RESULT
Status GetInt16 (const Slice &col_name, int16_t *val) const WARN_UNUSED_RESULT
Status GetInt32 (const Slice &col_name, int32_t *val) const WARN_UNUSED_RESULT
Status GetInt64 (const Slice &col_name, int64_t *val) const WARN_UNUSED_RESULT
Status GetUnixTimeMicros (const Slice &col_name, int64_t *micros_since_utc_epoch) const WARN_UNUSED_RESULT
Status GetFloat (const Slice &col_name, float *val) const WARN_UNUSED_RESULT
Status GetDouble (const Slice &col_name, double *val) const WARN_UNUSED_RESULT
Getters for column of integral type by column index.

Get value of a column of integral type by column index.

These getters are the same as the corresponding column-name-based getters, but with numeric column indexes. These are faster since they avoid hashmap lookups, so should be preferred in performance-sensitive code (e.g. bulk loaders).

Parameters:
[in] col_idx The index of the target column.
Returns:
Operation result status. Return a bad Status if at least one of the following is true:
  • The type does not match.
  • The value is unset.
  • The value is NULL.


Status GetBool (int col_idx, bool *val) const WARN_UNUSED_RESULT
Status GetInt8 (int col_idx, int8_t *val) const WARN_UNUSED_RESULT
Status GetInt16 (int col_idx, int16_t *val) const WARN_UNUSED_RESULT
Status GetInt32 (int col_idx, int32_t *val) const WARN_UNUSED_RESULT
Status GetInt64 (int col_idx, int64_t *val) const WARN_UNUSED_RESULT
Status GetUnixTimeMicros (int col_idx, int64_t *micros_since_utc_epoch) const WARN_UNUSED_RESULT
Status GetFloat (int col_idx, float *val) const WARN_UNUSED_RESULT
Status GetDouble (int col_idx, double *val) const WARN_UNUSED_RESULT
Getters for string/binary column by column name.

Get the string/binary value for a column by its name.

Parameters:
[in] col_name Name of the column.
[out] val Pointer to the placeholder to put the resulting value. Note that the method does not copy the value. Callers should copy the resulting Slice if necessary.
Returns:
Operation result status. Return a bad Status if at least one of the following is true:
  • The type does not match.
  • The value is unset.
  • The value is NULL.


Status GetString (const Slice &col_name, Slice *val) const WARN_UNUSED_RESULT
Status GetBinary (const Slice &col_name, Slice *val) const WARN_UNUSED_RESULT
Getters for string/binary column by column index.

Get the string/binary value for a column by its index.

These methods are faster than their name-based counterparts since they use indices to avoid hashmap lookups, so index-based getters should be preferred in performance-sensitive code.

Parameters:
[in] col_index The index of the column.
[out] val Pointer to the placeholder to put the resulting value. Note that the method does not copy the value. Callers should copy the resulting Slice if necessary.
Returns:
Operation result status. Return a bad Status if at least one of the following is true:
  • The type does not match.
  • The value is unset.
  • The value is NULL.


Status GetString (int col_idx, Slice *val) const WARN_UNUSED_RESULT
Status GetBinary (int col_idx, Slice *val) const WARN_UNUSED_RESULT

Friends

class client::KuduWriteOperation
class KeyUtilTest
class PartitionSchema
class RowOperationsPBDecoder
class RowOperationsPBEncoder
class TestScanSpec
struct client::SliceKeysTestSetup
struct client::IntKeysTestSetup

Detailed Description

A row which may only contain values for a subset of the columns.

This object contains a normal contiguous row, plus a bitfield indicating which columns have been set. Additionally, this type may optionally own copies of indirect data for variable length columns.


Constructor & Destructor Documentation

kudu::KuduPartialRow::KuduPartialRow ( const Schema *  schema  )  [explicit]
Parameters:
[in] schema Schema to use for the row. The given Schema object must remain valid for the lifetime of this row.
kudu::KuduPartialRow::KuduPartialRow ( const KuduPartialRow other  ) 

Create a copy of KuduPartialRow instance.

Parameters:
[in] other KuduPartialRow instance to copy from.

Member Function Documentation

bool kudu::KuduPartialRow::AllColumnsSet (  )  const
Returns:
true if all column values have been set.
Status kudu::KuduPartialRow::EncodeRowKey ( std::string *  encoded_key  )  const

Encode a row key.

The result is suitable for use as a tablet split key, an encoded key range, etc.

Precondition:
All of the key columns must be set.
Parameters:
[out] encoded_key The encoded key (i.e. the result of the encoding).
Returns:
Operation result status. In particular, this method returns InvalidArgument if not all the key columns are set.
bool kudu::KuduPartialRow::IsColumnSet ( int  col_idx  )  const

Check whether the specified column is set for the row.

Parameters:
[in] col_idx The index of the column.
Returns:
true iff the given column has been specified.
bool kudu::KuduPartialRow::IsColumnSet ( const Slice col_name  )  const

Check whether the specified column is set for the row.

Parameters:
[in] col_name Name of the column.
Returns:
true iff the given column has been specified.
bool kudu::KuduPartialRow::IsKeySet (  )  const
Returns:
true if all key column values have been set for this mutation.
bool kudu::KuduPartialRow::IsNull ( int  col_idx  )  const

Check whether the specified column is NULL for the row.

Parameters:
[in] col_idx The index of the column.
Returns:
true iff the given column's value is NULL.
bool kudu::KuduPartialRow::IsNull ( const Slice col_name  )  const

Check whether the specified column is NULL for the row.

Parameters:
[in] col_name Name of the target column.
Returns:
true iff the given column's value is NULL.
KuduPartialRow& kudu::KuduPartialRow::operator= ( KuduPartialRow  other  ) 

Overwrite this KuduPartialRow instance with data from other instance.

Parameters:
[in] other KuduPartialRow instance to assign from.
Returns:
Reference to the updated object.
const Schema* kudu::KuduPartialRow::schema (  )  const [inline]
Returns:
The schema object for the partial row.
Status kudu::KuduPartialRow::SetNull ( int  col_idx  ) 

Set column value to NULL; the column is identified by its index.

This will only succeed on nullable columns. Use Unset() to restore column value to its default.

Parameters:
[in] col_idx The index of the target column.
Returns:
Operation result status.
Status kudu::KuduPartialRow::SetNull ( const Slice col_name  ) 

Set column value to NULL; the column is identified by its name.

This will only succeed on nullable columns. Use Unset() to restore column value to its default.

Parameters:
[in] col_name Name of the target column.
Returns:
Operation result status.
std::string kudu::KuduPartialRow::ToEncodedRowKeyOrDie (  )  const

Convenience method which is similar to EncodeRowKey.

This is equivalent to the EncodeRowKey, but triggers a FATAL error on failure.

Returns:
The encoded key.
std::string kudu::KuduPartialRow::ToString (  )  const
Returns:
String representation for the partial row.
Status kudu::KuduPartialRow::Unset ( int  col_idx  ) 

Unset the given column by index, restoring its default value.

Note:
This is different from setting it to NULL.
Parameters:
[in] col_idx The index of the target column.
Returns:
Operation result status.
Status kudu::KuduPartialRow::Unset ( const Slice col_name  ) 

Unset the given column by name, restoring its default value.

Note:
This is different from setting it to NULL.
Parameters:
[in] col_name Name of the target column.
Returns:
Operation result status.

The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines