Amnesia.Table (nuamnesia v0.3.0)

Summary

Functions

Add a copy of the table to the given node with the given mode, see mnesia:add_table_copy.

Add an index to the given table for the given attribute, see mnesia:add_table_index.

Read a slot from the given table, see mnesia:dirty_slot.

Check if the given table is a bag.

Clear the given table, see mnesia:clear_table.

Change the copying mode of the given table on the given node, see mnesia:change_table_copy_type.

Get the number of records in the given table.

Create a table with the given name and definition, see mnesia:create_table.

Create a table with the given name and definition, see mnesia:create_table, raises in case of error.

Delete the given record in the given table, see mnesia:delete.

Delete the given record in the given table, see mnesia:dirty_delete.

Delete a copy of the table on the given node, see mnesia:del_table_copy.

Delete an index on the given table for the given attribute, see mnesia:del_table_index.

Destroy the given table, see mnesia:delete_table.

Destroy the given table, see mnesia:delete_table, raising in case of error.

Checks if a table exists or not.

Get the first key in the table, see mnesia:first.

Get the first key in the table, see mnesia:dirty_read.

Fold the whole given table from the left, see mnesia:foldl.

Fold the whole given table from the right, see mnesia:foldr.

Force the loading of the given table, see mnesia:force_load_table.

Get information about a given table, see mnesia:table_info.

Read all keys in the given table, see mnesia:all_keys.

Read all keys in the given table, see mnesia:dirty_all_keys.

Get the last key in the table, see mnesia:last.

Get the last key in the table, see mnesia:dirty_last.

Lock the given table for the given kind of lock, see mnesia:lock.

Change the given table majority, see mnesia:change_table_majority.

Set master nodes for the given table, see mnesia:set_master_nodes.

Select records in the given table using simple don't care values, see mnesia:match_object.

Select records in the given table using simple don't care values, see mnesia:dirty_match_object.

Check if the key is present in the given table.

Change the access mode of the given table, see mnesia:change_table_access_mode.

Move the copy of the given table from the given node to another given node, see mnesia:move_table_copy.

Get the next key in the table starting from the given key, see mnesia:next.

Get the next key in the table starting from the given key, see mnesia:dirty_next.

Check if the given table is an ordered set.

Get the previous key in the table starting from the given key, see mnesia:prev.

Get the previous key in the table starting from the given key, see mnesia:dirty_prev.

Change the given table loading priority.

Return properties of the given table.

Read records from the given table with the given key, locking in the given mode, see mnesia:read.

Read records from the given table with the given key, see mnesia:dirty_read.

Read records on the given table based on a secondary index given as position, see mnesia:index_read.

Read records on the given table based on a secondary index given as position, see mnesia:dirty_index_read.

Select records in the given table using a match_spec, see mnesia:select.

Select records in the given table using a match_spec passing a limit or a lock kind, see mnesia:select.

Select records in the given table using a match_spec passing a limit and a lock kind, see mnesia:select.

Select records in the given table using a match_spec, see mnesia:dirty_select.

Check if the given table is a set.

Transform a table, useful to change tables in a running instance, see mnesia:transform_table.

Transform a table, useful to change tables in a running instance, see mnesia:transform_table.

Transform a table, renaming it, useful to change tables in a running instance, see mnesia:transform_table.

Return the type of the given table.

Wait for the passed tables for the given timeout, see mnesia:wait_for_tables.

Write the given record in the given table, using the given lock, see mnesia:write.

Write the given record in the given table, see mnesia:dirty_write.

Types

c()

@type c() :: [{cv(), [node()]}]

cv()

@type cv() :: :disk | :disk! | :memory

o()

@type o() :: :ok | {:error, any()}

Functions

add_copy(name, node, type \\ :disk)

@spec add_copy(atom(), node(), cv()) :: o()

Add a copy of the table to the given node with the given mode, see mnesia:add_table_copy.

  • :disk sets :disc_copies mode
  • :disk! sets :disc_only_copies mode
  • :memory sets :ram_copies mode

add_index(name, attribute)

@spec add_index(atom(), atom()) :: o()

Add an index to the given table for the given attribute, see mnesia:add_table_index.

at!(name, position)

@spec at!(atom(), integer()) :: tuple() | nil | no_return()

Read a slot from the given table, see mnesia:dirty_slot.

bag?(name)

@spec bag?(atom()) :: boolean()

Check if the given table is a bag.

clear(name)

@spec clear(atom()) :: o()

Clear the given table, see mnesia:clear_table.

copying(name, node, to)

@spec copying(atom(), node(), cv()) :: o()

Change the copying mode of the given table on the given node, see mnesia:change_table_copy_type.

Modes

  • :disk sets :disc_copies mode
  • :disk! sets :disc_only_copies mode
  • :memory sets :ram_copies mode

count(name)

@spec count(atom()) :: non_neg_integer()

Get the number of records in the given table.

create(name, definition \\ [])

@spec create(atom(), c()) :: o()

Create a table with the given name and definition, see mnesia:create_table.

The definition is a keyword list of options which have a correspondence with mnesia options, to know what they do check the mnesia documentation.

  • :record => :record_name

  • :attributes

  • :mode => :access_mode

    • :both => :read_write
    • :read! => :read_only
  • :type

  • :index

  • :majority

  • :priority => :load_order

  • :user => :user_properties

  • :local => :local_content

  • :copying (a keyword list composed of)

    • :memory => :ram_copies
    • :disk => :disc_copies
    • :disk! => :disc_only_copies
    • :rock! => :rocksdb_copies -- [Will be moved to a formal plug-in, extension system - noizu]
  • :fragmentation => :frag_properties (a keyword list composed of)

    • :number => :n_fragments

    • :nodes => :node_pool

    • :foreign => :foreign_key

    • :hash (a keyword list composed of)

      • :module => :hash_module
      • :state => :hash_state
    • :copying (a keyword list composed of)

      • :memory => :n_ram_copies
      • :disk => :n_disc_copies
      • :disk! => :n_disc_only_copies
      • :rock! => :n_rocksdb_copies

    @see storage options @see ets options @see dets options

    • :ets_options => :compressed
    • :dets_options => {:auto_save, 5000}
    • :compressed => true

    @see rock options

    • :rock_options => plugin specific -- [Will be moved to a formal plug-in, extension system, each plugin should expose it's own option set even if folded into user_props internalls - noizu]

create!(name, definition \\ [])

@spec create!(atom(), c()) :: :ok | no_return()

Create a table with the given name and definition, see mnesia:create_table, raises in case of error.

delete(name, key, lock \\ :write)

@spec delete(atom(), any(), :write | :write!) :: :ok | no_return()

Delete the given record in the given table, see mnesia:delete.

Locks

  • :write sets a :write lock
  • :write! sets a :sticky_write lock

delete!(name, key)

@spec delete!(atom(), any()) :: :ok | no_return()

Delete the given record in the given table, see mnesia:dirty_delete.

delete_copy(name, node)

@spec delete_copy(atom(), node()) :: o()

Delete a copy of the table on the given node, see mnesia:del_table_copy.

delete_index(name, attribute)

@spec delete_index(atom(), atom()) :: o()

Delete an index on the given table for the given attribute, see mnesia:del_table_index.

destroy(name)

@spec destroy(atom()) :: o()

Destroy the given table, see mnesia:delete_table.

destroy!(name)

@spec destroy!(atom()) :: :ok | no_return()

Destroy the given table, see mnesia:delete_table, raising in case of error.

exists?(name)

@spec exists?(atom()) :: boolean()

Checks if a table exists or not.

first(name)

@spec first(atom()) :: any() | nil | no_return()

Get the first key in the table, see mnesia:first.

first!(name)

@spec first!(atom()) :: any() | nil | no_return()

Get the first key in the table, see mnesia:dirty_read.

foldl(name, acc, fun)

@spec foldl(atom(), any(), (tuple(), any() -> any())) :: any() | no_return()
@spec foldl(atom(), any(), (tuple(), any() -> any())) :: any() | no_return()

Fold the whole given table from the left, see mnesia:foldl.

foldr(name, acc, fun)

Fold the whole given table from the right, see mnesia:foldr.

force(name)

@spec force(atom()) :: :yes | {:error, any()}

Force the loading of the given table, see mnesia:force_load_table.

info(name, key)

@spec info(atom(), atom()) :: any()

Get information about a given table, see mnesia:table_info.

keys(name)

@spec keys(atom()) :: list() | no_return()

Read all keys in the given table, see mnesia:all_keys.

keys!(name)

@spec keys!(atom()) :: list() | no_return()

Read all keys in the given table, see mnesia:dirty_all_keys.

last(name)

@spec last(atom()) :: any() | nil | no_return()

Get the last key in the table, see mnesia:last.

last!(name)

@spec last!(atom()) :: any() | nil | no_return()

Get the last key in the table, see mnesia:dirty_last.

lock(name, mode)

@spec lock(atom(), :write | :write! | :read) :: [node()] | :ok | no_return()

Lock the given table for the given kind of lock, see mnesia:lock.

Locks

  • :write sets a :write lock
  • :write! sets a :sticky_write lock
  • :read sets a :read lock

majority(name, value)

@spec majority(atom(), boolean()) :: o()

Change the given table majority, see mnesia:change_table_majority.

master_nodes(name, nodes)

@spec master_nodes(atom(), [node()]) :: :ok | {:error, any()}

Set master nodes for the given table, see mnesia:set_master_nodes.

match(name, lock \\ :read, pattern)

@spec match(atom(), :read | :write, any()) :: [tuple()] | nil | no_return()

Select records in the given table using simple don't care values, see mnesia:match_object.

match!(name, pattern)

Select records in the given table using simple don't care values, see mnesia:dirty_match_object.

member?(name, key)

@spec member?(atom(), any()) :: boolean()

Check if the key is present in the given table.

mode(name, value)

@spec mode(atom(), :both | :read!) :: o()

Change the access mode of the given table, see mnesia:change_table_access_mode.

Modes

  • :both sets read and write mode, it's the default.
  • :read! sets read-only mode.

move_copy(name, from, to)

@spec move_copy(atom(), node(), node()) :: o()

Move the copy of the given table from the given node to another given node, see mnesia:move_table_copy.

next(name, key)

@spec next(atom(), any()) :: any() | nil | no_return()

Get the next key in the table starting from the given key, see mnesia:next.

next!(name, key)

@spec next!(atom(), any()) :: any() | nil | no_return()

Get the next key in the table starting from the given key, see mnesia:dirty_next.

ordered_set?(name)

@spec ordered_set?(atom()) :: boolean()

Check if the given table is an ordered set.

prev(name, key)

@spec prev(atom(), any()) :: any() | nil | no_return()

Get the previous key in the table starting from the given key, see mnesia:prev.

prev!(name, key)

@spec prev!(atom(), any()) :: any() | nil | no_return()

Get the previous key in the table starting from the given key, see mnesia:dirty_prev.

priority(name, value)

@spec priority(atom(), integer()) :: o()

Change the given table loading priority.

properties(name)

@spec properties(atom()) :: Keyword.t()

Return properties of the given table.

read(name, key, lock \\ :read)

@spec read(atom(), any(), :read | :write | :write!) :: [tuple()] | nil | no_return()

Read records from the given table with the given key, locking in the given mode, see mnesia:read.

  • :write sets a :write lock
  • :write! sets a :sticky_write lock
  • :read sets a :read lock

read!(name, key)

@spec read!(atom(), any()) :: [tuple()] | nil | no_return()

Read records from the given table with the given key, see mnesia:dirty_read.

read_at(name, key, position)

@spec read_at(atom(), any(), integer() | atom()) :: [tuple()] | nil | no_return()

Read records on the given table based on a secondary index given as position, see mnesia:index_read.

read_at!(name, key, position)

@spec read_at!(atom(), any(), integer() | atom()) :: [tuple()] | nil | no_return()

Read records on the given table based on a secondary index given as position, see mnesia:dirty_index_read.

select(name, spec)

@spec select(atom(), any()) :: Amnesia.Selection.t() | nil | no_return()

Select records in the given table using a match_spec, see mnesia:select.

select(name, limit, spec)

@spec select(atom(), integer() | :read | :write, any()) ::
  Amnesia.Selection.t() | nil | no_return()

Select records in the given table using a match_spec passing a limit or a lock kind, see mnesia:select.

select(name, lock, limit, spec)

@spec select(
  atom(),
  integer() | :read | :write,
  integer() | :read | :write,
  integer()
) ::
  Amnesia.Selection.t() | nil | no_return()

Select records in the given table using a match_spec passing a limit and a lock kind, see mnesia:select.

select!(name, spec)

@spec select!(atom(), any()) :: Amnesia.Selection.t() | nil | no_return()

Select records in the given table using a match_spec, see mnesia:dirty_select.

set?(name)

@spec set?(atom()) :: boolean()

Check if the given table is a set.

stream(name, lock \\ :read)

stream!(name)

transform(name, attributes)

@spec transform(atom(), [atom()]) :: o()

Transform a table, useful to change tables in a running instance, see mnesia:transform_table.

transform(name, attributes, fun)

@spec transform(atom(), [atom()] | atom(), (tuple() -> tuple()) | [atom()]) :: o()

Transform a table, useful to change tables in a running instance, see mnesia:transform_table.

transform(name, new_name, attributes, fun)

@spec transform(atom(), atom(), [atom()], (tuple() -> tuple())) :: o()

Transform a table, renaming it, useful to change tables in a running instance, see mnesia:transform_table.

type(name)

@spec type(atom()) :: :set | :ordered_set | :bag

Return the type of the given table.

wait(names, timeout \\ :infinity)

@spec wait([atom()], integer() | :infinity) ::
  :ok | {:timeout, [atom()]} | {:error, atom()}

Wait for the passed tables for the given timeout, see mnesia:wait_for_tables.

write(name, data, lock \\ :write)

@spec write(atom(), tuple(), :write | :write!) :: :ok | no_return()

Write the given record in the given table, using the given lock, see mnesia:write.

Locks

  • :write sets a :write lock
  • :write! sets a :sticky_write lock

write!(name, data)

@spec write!(atom(), tuple()) :: :ok | no_return()

Write the given record in the given table, see mnesia:dirty_write.