![]() |
The aerospike_key_operate()
function provides the ability to execute multiple operations on a record in the database as a single atomic transaction.
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 needthe 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 281 of file as_operations.h.
#include "as_operations.h"
Data Fields | |
as_binops | binops |
uint16_t | gen |
uint32_t | ttl |
Private Attributes | |
bool | _free |
|
related |
Map storage order.
Definition at line 35 of file as_map_operations.h.
|
related |
Initialize map attributes to default unordered map with standard overwrite semantics.
|
related |
Set map attributes to specified map order and write mode semantics.
|
related |
Map return type. Type of data to return when selecting or removing items from the map.
Definition at line 96 of file as_map_operations.h.
|
related |
Map write mode.
Definition at line 58 of file as_map_operations.h.
|
related |
Add a AS_OPERATOR_APPEND
bin operation with a raw bytes value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. Must last for the lifetime of the operations. |
size | The size of the value. |
Definition at line 707 of file as_operations.h.
References as_operations_add_append_rawp().
|
related |
Add a AS_OPERATOR_APPEND
bin operation with a raw bytes value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
size | The size of the value. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a AS_OPERATOR_APPEND
bin operation with a NULL-terminated string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. Must last for the lifetime of the operations. |
Definition at line 673 of file as_operations.h.
References as_operations_add_append_strp().
|
related |
Add a AS_OPERATOR_APPEND
bin operation with a NULL-terminated string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a AS_OPERATOR_INCR
bin operation with (required) int64_t value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
|
related |
Add a AS_OPERATOR_INCR
bin operation with double value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
|
related |
Add an as_val element to end of list.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
val | Value to append. Consumes a reference of this as_val. |
|
related |
Add a double to end of list. Convenience function of as_operations_add_list_append()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | A double value. |
|
related |
Add an integer to end of list. Convenience function of as_operations_add_list_append()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | An integer value. |
|
related |
Add multiple values to end of list.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
list | List of values to append. Consumes a reference of this as_list. |
|
related |
Add a blob to end of list. Convenience function of as_operations_add_list_append()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | A blob. |
size | Size of the blob. |
Definition at line 139 of file as_list_operations.h.
References as_operations_add_list_append_rawp().
|
related |
Add a blob to end of list. Convenience function of as_operations_add_list_append()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | A blob. |
size | Size of the blob. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a string to end of list. Convenience function of as_operations_add_list_append()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | A c-string. |
Definition at line 103 of file as_list_operations.h.
References as_operations_add_list_append_strp().
|
related |
Add a string to end of list. Convenience function of as_operations_add_list_append()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | A c-string. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Remove all values. Will leave empty list in bin.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
|
related |
Get value of list at index.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to get. Negative index counts from end of list. |
|
related |
Get multiple values of list starting at index.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start. Negative index counts from end of list. |
count | Number of values to get. If not enough in list, will return all remaining. |
|
related |
Get multiple values of list starting at index until end of list.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start. Negative index counts from end of list. |
|
related |
Create list increment operation. Server increments value at index by incr and returns final result. Valid only for numbers.
|
related |
Insert an as_val element to list at index position.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the as_val will be inserted at. Negative index counts from end of list. |
val | Value to insert. Consumes a reference of this as_list. |
|
related |
Insert double to list at index position. Convenience function of as_operations_add_list_insert()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the double will be inserted at. Negative index counts from end of list. |
value | A double value. |
|
related |
Insert integer to list at index position. Convenience function of as_operations_add_list_insert()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the integer will be inserted at. Negative index counts from end of list. |
value | An integer value. |
|
related |
Insert multiple values to list at index position.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the blob will be inserted at. Negative index counts from end of list. |
list | List of values to insert. Consumes reference of list. |
|
related |
Insert blob to list at index position. Convenience function of as_operations_add_list_insert()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the blob will be inserted at. Negative index counts from end of list. |
value | A blob. |
size | Size of the blob. |
Definition at line 276 of file as_list_operations.h.
References as_operations_add_list_insert_rawp().
|
related |
Insert blob to list at index position. Convenience function of as_operations_add_list_insert()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the blob will be inserted at. Negative index counts from end of list. |
value | A blob. |
size | Size of the blob. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Insert string to list at index position. Convenience function of as_operations_add_list_insert()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the string will be inserted at. Negative index counts from end of list. |
value | A c-string. |
Definition at line 238 of file as_list_operations.h.
References as_operations_add_list_insert_strp().
|
related |
Insert string to list at index position. Convenience function of as_operations_add_list_insert()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position which the string will be inserted at. Negative index counts from end of list. |
value | A c-string. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Remove and return a value at index.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which the value will be removed and returned. Negative index counts from end of list. |
|
related |
Remove and return N values from index.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start the removal. Negative index counts from end of list. |
count | Number of values to remove. If not enough values in list, will remove to list end. |
|
related |
Remove and return all values from index to the end of list.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start the removal. Negative index counts from end of list. |
|
related |
Remove value at index.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start the removal. Negative index counts from end of list. |
|
related |
Remove N values from index.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start the removal. Negative index counts from end of list. |
count | Number of values to remove. If not enough values in list, will remove to list end. |
|
related |
Remove all values from index until end of list.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position at which to start the removal. Negative index counts from end of list. |
|
related |
Set an as_val element of the list at the index position.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
val | Consumes a reference of this as_val. |
|
related |
Set value at index as double. Convenience function of as_operations_add_list_set()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
value | A double value. |
|
related |
Set value at index as integer. Convenience function of as_operations_add_list_set()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
value | An integer value. |
|
related |
Set value at index as blob. Convenience function of as_operations_add_list_set()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
value | A blob. |
size | Size of the blob. |
Definition at line 523 of file as_list_operations.h.
References as_operations_add_list_set_rawp().
|
related |
Set value at index as blob. Convenience function of as_operations_add_list_set()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
value | A blob. |
size | Size of the blob. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Set value at index as string. Convenience function of as_operations_add_list_set()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
value | A c-string. |
Definition at line 485 of file as_list_operations.h.
References as_operations_add_list_set_strp().
|
related |
Set value at index as string. Convenience function of as_operations_add_list_set()
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Index position to set. Negative index counts from end of list. |
value | A c-string. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Get number of values in list.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
|
related |
Remove values NOT within range(index, count).
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
index | Values from 0-index position are removed. Negative index counts from end of list. |
count | Number of values to keep. All other values beyond count are removed. |
|
related |
Create map clear operation. Server removes all items in map. Server returns null.
|
related |
Create map decrement operation. Server decrement values by decr for all items identified by key and returns final result. Valid only for numbers.
The required map policy dictates the type of map to create when it does not exist. The map policy also specifies the mode used when writing items to the map. See as_map_policy
and as_map_write_mode
.
|
related |
Create map get by index operation. Server selects map item identified by index and returns selected data specified by return_type.
|
related |
Create map get by index range operation. Server selects count
map items starting at specified index and returns selected data specified by return_type.
|
related |
Create map get by index range operation. Server selects map items starting at specified index to the end of map and returns selected data specified by return_type.
|
related |
Create map get by key operation. Server selects map item identified by key and returns selected data specified by return_type.
|
related |
Create map get by key range operation. Server selects map items identified by key range (begin inclusive, end exclusive). If begin is null, the range is less than end. If end is null, the range is greater than equal to begin.
Server returns selected data specified by return_type.
|
related |
Create map get by rank operation. Server selects map item identified by rank and returns selected data specified by return_type.
|
related |
Create map get by rank range operation. Server selects count
map items starting at specified rank and returns selected data specified by return_type.
|
related |
Create map get by rank range operation. Server selects map items starting at specified rank to the last ranked item and returns selected data specified by return_type.
|
related |
Create map get by value operation. Server selects map items identified by value and returns selected data specified by return_type.
|
related |
Create map get by value range operation. Server selects map items identified by value range (begin inclusive, end exclusive). If begin is null, the range is less than end. If end is null, the range is greater than equal to begin.
Server returns selected data specified by return_type.
|
related |
Create map increment operation. Server increments values by incr for all items identified by key and returns final result. Valid only for numbers.
The required map policy dictates the type of map to create when it does not exist. The map policy also specifies the mode used when writing items to the map. See as_map_policy
and as_map_write_mode
.
|
related |
Create map put operation. Server writes key/value item to map bin and returns map size.
The required map policy dictates the type of map to create when it does not exist. The map policy also specifies the mode used when writing items to the map. See as_map_policy
and as_map_write_mode
.
|
related |
Create map put items operation. Server writes each map item to map bin and returns map size.
The required map policy dictates the type of map to create when it does not exist. The map policy also specifies the mode used when writing items to the map. See as_map_policy
and as_map_write_mode
.
|
related |
Create map remove operation. Server removes map item identified by index and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes count
map items starting at specified index and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items starting at specified index to the end of map and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map item identified by key and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items identified by keys and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items identified by key range (begin inclusive, end exclusive). If begin is null, the range is less than end. If end is null, the range is greater than equal to begin.
Server returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map item identified by rank and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes count
map items starting at specified rank and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items starting at specified rank to the last ranked item and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items identified by value and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items identified by values and returns removed data specified by return_type.
|
related |
Create map remove operation. Server removes map items identified by value range (begin inclusive, end exclusive). If begin is null, the range is less than end. If end is null, the range is greater than equal to begin.
Server returns removed data specified by return_type.
|
related |
Create set map policy operation. Server sets map policy attributes. Server does not return a value.
|
related |
Create map size operation. Server returns size of map.
|
related |
Add a AS_OPERATOR_PREPEND
bin operation with a raw bytes value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. Must last for the lifetime of the operations. |
size | The size of the value. |
Definition at line 641 of file as_operations.h.
References as_operations_add_prepend_rawp().
|
related |
Add a AS_OPERATOR_PREPEND
bin operation with a raw bytes value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
size | The size of the value. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a AS_OPERATOR_PREPEND
bin operation with a NULL-terminated string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. Must last for the lifetime of the operations. |
Definition at line 607 of file as_operations.h.
References as_operations_add_prepend_strp().
|
related |
Add a AS_OPERATOR_PREPEND
bin operation with a NULL-terminated string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a AS_OPERATOR_READ
bin operation.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
|
related |
Add a AS_OPERATOR_TOUCH
record operation.
ops | The as_operations to append the operation to. |
|
related |
Add a AS_OPERATOR_WRITE
bin operation.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a double value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a NULL-terminated GeoJSON string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. Must last for the lifetime of the operations. |
Definition at line 500 of file as_operations.h.
References as_operations_add_write_geojson_strp().
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a NULL-terminated GeoJSON string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a AS_OPERATOR_WRITE
bin operation with an int64_t value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a raw bytes value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
size | The size of the value. Must last for the lifetime of the operations. |
Definition at line 534 of file as_operations.h.
References as_operations_add_write_rawp().
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a raw bytes value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
size | The size of the value. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a NULL-terminated string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. Must last for the lifetime of the operations. |
Definition at line 468 of file as_operations.h.
References as_operations_add_write_strp().
|
related |
Add a AS_OPERATOR_WRITE
bin operation with a NULL-terminated string value.
ops | The as_operations to append the operation to. |
name | The name of the bin to perform the operation on. |
value | The value to be used in the operation. |
free | If true, then the value will be freed when the operations is destroyed. |
|
related |
Destroy an as_operations
and release associated resources.
ops | The as_operations to destroy. |
|
related |
Intializes a stack allocated as_operations
.
Use as_operations_destroy()
to free the resources allocated to the as_operations
.
ops | The as_operations to initialize. |
nops | The number of as_operations.binops.entries to allocate on the heap. |
as_operations
on success. Otherwise NULL.
|
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 328 of file as_operations.h.
|
related |
Create and initialize a heap allocated as_operations
.
Use as_operations_destroy()
to free the resources allocated to the as_operations
.
nops | The number of as_operations.binops.entries to allocate on the heap. |
as_operations
on success. Otherwise NULL.
|
private |
If true, then as_operations_destroy() will free this instance.
Definition at line 287 of file as_operations.h.
as_binops as_operations::binops |
Operations to be performed on the bins of a record.
Definition at line 302 of file as_operations.h.
uint16_t as_operations::gen |
The generation of the record.
Definition at line 292 of file as_operations.h.
uint32_t as_operations::ttl |
The time-to-live (expiration) of the record in seconds.
Definition at line 297 of file as_operations.h.