Khepri advanced API for transactional queries and updates.
This module exposes variants of the functions inkhepri_tx which
return more detailed return values for advanced use cases. See khepri_adv for examples of use cases where this module could be useful.
legacy_ret() = khepri:ok(khepri:node_props() | #{}) | khepri:error()
Return value when a single tree node could be returned. This is no longer the case with the transaction API version 1 (all functions return a tree node props map). But it can happen when the same transaction is executed on another Khepri cluster member that runs an older version of Khepri.
| get/1 | Returns the payload of the tree node pointed to by the given path pattern. |
| get/2 | Returns the payload of the tree node pointed to by the given path pattern. |
| get_many/1 | Returns payloads of all the tree nodes matching the given path pattern. |
| get_many/2 | Returns payloads of all the tree nodes matching the given path pattern. |
| do_get_many/4 | |
| put/2 | Sets the payload of the tree node pointed to by the given path pattern. |
| put/3 | Sets the payload of the tree node pointed to by the given path pattern. |
| put_many/2 | Sets the payload of all the tree nodes matching the given path pattern. |
| put_many/3 | Sets the payload of all the tree nodes matching the given path pattern. |
| create/2 | Creates a tree node with the given payload. |
| create/3 | Creates a tree node with the given payload. |
| update/2 | Updates an existing tree node with the given payload. |
| update/3 | Updates an existing tree node with the given payload. |
| compare_and_swap/3 | Updates an existing tree node with the given payload only if its data matches the given pattern. |
| compare_and_swap/4 | Updates an existing tree node with the given payload only if its data matches the given pattern. |
| delete/1 | Deletes the tree node pointed to by the given path pattern. |
| delete/2 | Deletes the tree node pointed to by the given path pattern. |
| delete_many/1 | Deletes all tree nodes matching the given path pattern. |
| delete_many/2 | Deletes all tree nodes matching the given path pattern. |
| clear_payload/1 | Deletes the payload of the tree node pointed to by the given path pattern. |
| clear_payload/2 | Deletes the payload of the tree node pointed to by the given path pattern. |
| clear_many_payloads/1 | Deletes the payload of all tree nodes matching the given path pattern. |
| clear_many_payloads/2 | Deletes the payload of all tree nodes matching the given path pattern. |
| ensure_instruction_is_permitted/1 | |
| should_process_function/4 | |
| is_standalone_fun_still_needed/2 |
get(PathPattern) -> Ret
PathPattern = khepri_path:pattern()Ret = khepri_machine:write_ret() | legacy_ret()Returns the payload of the tree node pointed to by the given path pattern.
This is the same askhepri_adv:get/2 but inside the context of a
transaction function.
See also: khepri_adv:get/2.
get(PathPattern, Options) -> Ret
PathPattern = khepri_path:pattern()Options = khepri:tree_options()Ret = khepri_machine:write_ret() | legacy_ret()Returns the payload of the tree node pointed to by the given path pattern.
This is the same askhepri_adv:get/3 but inside the context of a
transaction function.
See also: khepri_adv:get/3.
get_many(PathPattern) -> Ret
PathPattern = khepri_path:pattern()Ret = khepri_machine:write_ret()Returns payloads of all the tree nodes matching the given path pattern.
This is the same askhepri_adv:get_many/2 but inside the context of
a transaction function.
See also: khepri_adv:get_many/2.
get_many(PathPattern, Options) -> Ret
PathPattern = khepri_path:pattern()Options = khepri:tree_options()Ret = khepri_machine:write_ret()Returns payloads of all the tree nodes matching the given path pattern.
This is the same askhepri_adv:get_many/3 but inside the context of
a transaction function.
See also: khepri_adv:get_many/3.
do_get_many(PathPattern, Fun, Acc, Options) -> any()
put(PathPattern, Data) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Ret = khepri_machine:write_ret() | legacy_ret()Sets the payload of the tree node pointed to by the given path pattern.
This is the same askhepri_adv:put/3 but inside the context of a
transaction function.
See also: khepri_adv:put/3.
put(PathPattern, Data, Options) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret() | legacy_ret()Sets the payload of the tree node pointed to by the given path pattern.
This is the same askhepri_adv:put/4 but inside the context of a
transaction function.
See also: khepri_adv:put/4.
put_many(PathPattern, Data) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Ret = khepri_machine:write_ret()Sets the payload of all the tree nodes matching the given path pattern.
This is the same askhepri_adv:put_many/3 but inside the context of
a transaction function.
See also: khepri_adv:put_many/3.
put_many(PathPattern, Data, Options) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret()Sets the payload of all the tree nodes matching the given path pattern.
This is the same askhepri_adv:put_many/4 but inside the context of
a transaction function.
See also: khepri_adv:put_many/4.
create(PathPattern, Data) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Ret = khepri_machine:write_ret() | legacy_ret()Creates a tree node with the given payload.
This is the same askhepri_adv:create/3 but inside the context of a
transaction function.
See also: khepri_adv:create/3.
create(PathPattern, Data, Options) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret() | legacy_ret()Creates a tree node with the given payload.
This is the same askhepri_adv:create/4 but inside the context of a
transaction function.
See also: khepri_adv:create/4.
update(PathPattern, Data) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Ret = khepri_machine:write_ret() | legacy_ret()Updates an existing tree node with the given payload.
This is the same askhepri_adv:update/3 but inside the context of a
transaction function.
See also: khepri_adv:update/3.
update(PathPattern, Data, Options) -> Ret
PathPattern = khepri_path:pattern()Data = khepri_payload:payload() | khepri:data() | function()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret() | legacy_ret()Updates an existing tree node with the given payload.
This is the same askhepri_adv:update/4 but inside the context of a
transaction function.
See also: khepri_adv:update/4.
compare_and_swap(PathPattern, DataPattern, Data) -> Ret
PathPattern = khepri_path:pattern()DataPattern = ets:match_pattern()Data = khepri_payload:payload() | khepri:data() | function()Ret = khepri_machine:write_ret() | legacy_ret()Updates an existing tree node with the given payload only if its data matches the given pattern.
This is the same askhepri_adv:compare_and_swap/4 but inside the
context of a transaction function.
See also: khepri_adv:compare_and_swap/4.
compare_and_swap(PathPattern, DataPattern, Data, Options) -> Ret
PathPattern = khepri_path:pattern()DataPattern = ets:match_pattern()Data = khepri_payload:payload() | khepri:data() | function()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret() | legacy_ret()Updates an existing tree node with the given payload only if its data matches the given pattern.
This is the same askhepri_adv:compare_and_swap/5 but inside the
context of a transaction function.
See also: khepri_adv:compare_and_swap/5.
delete(PathPattern) -> Ret
PathPattern = khepri_path:pattern()Ret = khepri_machine:write_ret() | legacy_ret()Deletes the tree node pointed to by the given path pattern.
This is the same askhepri_adv:delete/2 but inside the context of a
transaction function.
See also: khepri_adv:delete/2.
delete(PathPattern, Options) -> Ret
PathPattern = khepri_path:pattern()Options = khepri:tree_options()Ret = khepri_machine:write_ret() | legacy_ret()Deletes the tree node pointed to by the given path pattern.
This is the same askhepri_adv:delete/3 but inside the context of a
transaction function.
See also: khepri_adv:delete/3.
delete_many(PathPattern) -> Ret
PathPattern = khepri_path:pattern()Ret = khepri_machine:write_ret() | legacy_ret()Deletes all tree nodes matching the given path pattern.
This is the same askhepri_adv:delete_many/2 but inside the context
of a transaction function.
See also: khepri_adv:delete_many/2.
delete_many(PathPattern, Options) -> Ret
PathPattern = khepri_path:pattern()Options = khepri:tree_options()Ret = khepri_machine:write_ret() | legacy_ret()Deletes all tree nodes matching the given path pattern.
This is the same askhepri_adv:delete_many/3 but inside the context
of a transaction function.
See also: khepri_adv:delete_many/3.
clear_payload(PathPattern) -> Ret
PathPattern = khepri_path:pattern()Ret = khepri_machine:write_ret() | legacy_ret()Deletes the payload of the tree node pointed to by the given path pattern.
This is the same askhepri_adv:clear_payload/2 but inside the
context of a transaction function.
See also: khepri_adv:clear_payload/2.
clear_payload(PathPattern, Options) -> Ret
PathPattern = khepri_path:pattern()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret() | legacy_ret()Deletes the payload of the tree node pointed to by the given path pattern.
This is the same askhepri_adv:clear_payload/3 but inside the
context of a transaction function.
See also: khepri_adv:clear_payload/3.
clear_many_payloads(PathPattern) -> Ret
PathPattern = khepri_path:pattern()Ret = khepri_machine:write_ret()Deletes the payload of all tree nodes matching the given path pattern.
This is the same askhepri_adv:clear_many_payloads/2 but inside the
context of a transaction function.
See also: khepri_adv:clear_many_payloads/2.
clear_many_payloads(PathPattern, Options) -> Ret
PathPattern = khepri_path:pattern()Options = khepri:tree_options() | khepri:put_options()Ret = khepri_machine:write_ret()Deletes the payload of all tree nodes matching the given path pattern.
This is the same askhepri_adv:clear_many_payloads/3 but inside the
context of a transaction function.
See also: khepri_adv:clear_many_payloads/3.
ensure_instruction_is_permitted(Unknown) -> any()
should_process_function(Module, Name, Arity, FromModule) -> any()
is_standalone_fun_still_needed(X1, X2) -> any()
Generated by EDoc