![]() |
The aerospike_key_operate()
function provides the ability to execute multiple operations on a record in the database as a single atomic command.
The as_operations
object is used to define the operations to be performed on the record.
Before using as_operations, you must first initialize it via either:
as_operations_inita() is a macro that initializes a stack allocated as_operations and allocates an internal array of operations. The macro accepts a pointer to the stack allocated as_operations and the number of operations to be added.
as_operations_init() is a function that initializes a stack allocated as_operations. It differes from as_operations_inita() in that it allocates the internal array of operations on the heap. It accepts a pointer to the stack allocated as_operations and the number of operations to be added.
as_operations_new() is a function that will allocate a new as_operations on the heap. It will also allocate the internal array of operation on the heap.
When you no longer need the as_operations, you can release the resources allocated to it via as_operations_destroy().
When you no longer require an as_operations, you should call as_operations_destroy()
to release it and associated resources.
as_operations is a sequence of operations to be applied to a record.
Each of the following operations is added to the end of the sequence of operations.
When you have compiled the sequence of operations you want to execute, then you will send it to aerospike_key_operate().
Aerospike allows you to append a string to a bin containing a string.
The following appends a "abc" to bin "bin1".
There is also a prepend operation, which will add the string to the beginning of the bin's current value.
Aerospike allows you to append a byte array to a bin containing a byte array.
The following appends a 4 byte sequence to bin "bin1".
There is also a prepend operation, which will add the bytes to the beginning of the bin's current value.
Aerospike allows you to increment the value of a bin
The following increments the value in bin "bin1" by 4.
Write a value into a bin. Overwriting previous value.
The following writes a string "xyz" to "bin1".
Read a value from a bin. This is ideal, if you performed an operation on a bin, and want to read the new value.
The following reads the value of "bin1"
Touching a record will refresh its ttl and increment the generation of the record.
The following touches a record.
Definition at line 261 of file as_operations.h.
#include "as_operations.h"
Data Fields | |
as_binops | binops |
uint16_t | gen |
uint32_t | ttl |
Related Symbols | |
(Note that these are not member symbols.) | |
static void | as_cdt_ctx_add_list_index (as_cdt_ctx *ctx, int index) |
static void | as_cdt_ctx_add_list_index_create (as_cdt_ctx *ctx, int index, as_list_order order, bool pad) |
static void | as_cdt_ctx_add_list_rank (as_cdt_ctx *ctx, int rank) |
static void | as_cdt_ctx_add_list_value (as_cdt_ctx *ctx, as_val *val) |
static void | as_cdt_ctx_add_map_index (as_cdt_ctx *ctx, int index) |
static void | as_cdt_ctx_add_map_key (as_cdt_ctx *ctx, as_val *key) |
static void | as_cdt_ctx_add_map_key_create (as_cdt_ctx *ctx, as_val *key, as_map_order order) |
static void | as_cdt_ctx_add_map_rank (as_cdt_ctx *ctx, int rank) |
static void | as_cdt_ctx_add_map_value (as_cdt_ctx *ctx, as_val *val) |
static as_cdt_ctx * | as_cdt_ctx_create (uint32_t capacity) |
AS_EXTERN void | as_cdt_ctx_destroy (as_cdt_ctx *ctx) |
static void | as_cdt_ctx_init (as_cdt_ctx *ctx, uint32_t capacity) |
#define | as_cdt_ctx_inita(__ctx, __cap) as_vector_inita(&(__ctx)->list, sizeof(as_cdt_ctx_item), __cap) |
enum | as_cdt_ctx_type |
static bool | as_operations_add_append_raw (as_operations *ops, const char *name, const uint8_t *value, uint32_t size) |
AS_EXTERN bool | as_operations_add_append_rawp (as_operations *ops, const char *name, const uint8_t *value, uint32_t size, bool free) |
static bool | as_operations_add_append_str (as_operations *ops, const char *name, const char *value) |
AS_EXTERN bool | as_operations_add_append_strp (as_operations *ops, const char *name, const char *value, bool free) |
AS_EXTERN bool | as_operations_add_delete (as_operations *ops) |
AS_EXTERN bool | as_operations_add_incr (as_operations *ops, const char *name, int64_t value) |
AS_EXTERN bool | as_operations_add_incr_double (as_operations *ops, const char *name, double value) |
static bool | as_operations_add_prepend_raw (as_operations *ops, const char *name, const uint8_t *value, uint32_t size) |
AS_EXTERN bool | as_operations_add_prepend_rawp (as_operations *ops, const char *name, const uint8_t *value, uint32_t size, bool free) |
static bool | as_operations_add_prepend_str (as_operations *ops, const char *name, const char *value) |
AS_EXTERN bool | as_operations_add_prepend_strp (as_operations *ops, const char *name, const char *value, bool free) |
AS_EXTERN bool | as_operations_add_read (as_operations *ops, const char *name) |
AS_EXTERN bool | as_operations_add_read_all (as_operations *ops) |
AS_EXTERN bool | as_operations_add_touch (as_operations *ops) |
AS_EXTERN bool | as_operations_add_write (as_operations *ops, const char *name, as_bin_value *value) |
AS_EXTERN bool | as_operations_add_write_bool (as_operations *ops, const char *name, bool value) |
AS_EXTERN bool | as_operations_add_write_double (as_operations *ops, const char *name, double value) |
static bool | as_operations_add_write_geojson_str (as_operations *ops, const char *name, const char *value) |
AS_EXTERN bool | as_operations_add_write_geojson_strp (as_operations *ops, const char *name, const char *value, bool free) |
AS_EXTERN bool | as_operations_add_write_int64 (as_operations *ops, const char *name, int64_t value) |
static bool | as_operations_add_write_raw (as_operations *ops, const char *name, const uint8_t *value, uint32_t size) |
AS_EXTERN bool | as_operations_add_write_rawp (as_operations *ops, const char *name, const uint8_t *value, uint32_t size, bool free) |
static bool | as_operations_add_write_str (as_operations *ops, const char *name, const char *value) |
AS_EXTERN bool | as_operations_add_write_strp (as_operations *ops, const char *name, const char *value, bool free) |
AS_EXTERN void | as_operations_destroy (as_operations *ops) |
AS_EXTERN as_operations * | as_operations_init (as_operations *ops, uint16_t nops) |
#define | as_operations_inita(__ops, __nops) |
AS_EXTERN as_operations * | as_operations_new (uint16_t nops) |
|
related |
Initialize a stack allocated nested CDT context list.
Call as_cdt_ctx_destroy() when done with the context list if any context levels contain a heap allocated as_val instance. If in doubt, call as_cdt_ctx_destroy().
__ctx | The nested context to initialize. |
__cap | The max number of context levels allowed. |
Definition at line 97 of file as_cdt_ctx.h.
|
related |
Initializes a stack allocated as_operations
(as_operations) and allocates __nops
number of entries on the stack.
__ops | The as_operations * to initialize. |
__nops | The number of as_binops.entries to allocate on the stack. |
Definition at line 315 of file as_operations.h.
as_binops as_operations::binops |
Operations to be performed on the bins of a record.
Definition at line 266 of file as_operations.h.
uint16_t as_operations::gen |
The generation of the record.
Definition at line 284 of file as_operations.h.
uint32_t as_operations::ttl |
The time-to-live (expiration) of the record in seconds.
There are also special values that can be set in the record ttl:
Definition at line 279 of file as_operations.h.