pub struct Index { /* private fields */ }
Expand description
An index is a group of key values and pointers.
Implementations§
Source§impl Index
impl Index
Sourcepub fn get<K>(&self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
pub fn get<K>(&self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
Get a tuple from index by the key.
Please note that this function works much more faster than select
key
- encoded key in MsgPack Array format ([part1, part2, ...]
).
Returns a tuple or None
if index is empty
Sourcepub fn select<K>(
&self,
iterator_type: IteratorType,
key: &K,
) -> Result<IndexIterator, Error>where
K: AsTuple,
pub fn select<K>(
&self,
iterator_type: IteratorType,
key: &K,
) -> Result<IndexIterator, Error>where
K: AsTuple,
Allocate and initialize iterator for index.
This is an alternative to space.select() which goes via a particular index and can make use of additional parameter that specify the iterator type.
type
- iterator typekey
- encoded key in MsgPack Array format ([part1, part2, ...]
).
Sourcepub fn delete<K>(&mut self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
pub fn delete<K>(&mut self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
Delete a tuple identified by a key.
Same as space.delete(), but key is searched in this index instead of in the primary-key index. This index ought to be unique.
key
- encoded key in MsgPack Array format ([part1, part2, ...]
).
Returns the deleted tuple
Sourcepub fn update<K, Op>(
&mut self,
key: &K,
ops: &Vec<Op>,
) -> Result<Option<Tuple>, Error>
pub fn update<K, Op>( &mut self, key: &K, ops: &Vec<Op>, ) -> Result<Option<Tuple>, Error>
Update a tuple.
Same as space.update(), but key is searched in this index instead of primary key. This index ought to be unique.
key
- encoded key in MsgPack Array format ([part1, part2, ...]
).ops
- encoded operations in MsgPack array format, e.g.[['=', field_id, value], ['!', 2, 'xxx']]
Returns a new tuple.
See also: index.upsert()
Sourcepub fn upsert<T, Op>(
&mut self,
value: &T,
ops: &Vec<Op>,
) -> Result<Option<Tuple>, Error>
pub fn upsert<T, Op>( &mut self, value: &T, ops: &Vec<Op>, ) -> Result<Option<Tuple>, Error>
Execute an UPSERT request.
Will try to insert tuple. Update if already exists.
value
- encoded tuple in MsgPack Array format ([field1, field2, ...]
)ops
- encoded operations in MsgPack array format, e.g.[['=', field_id, value], ['!', 2, 'xxx']]
Returns a new tuple.
See also: index.update()
Sourcepub fn bsize(&self) -> Result<usize, Error>
pub fn bsize(&self) -> Result<usize, Error>
Return the number of bytes used in memory by the index.
Sourcepub fn random(&self, seed: u32) -> Result<Option<Tuple>, Error>
pub fn random(&self, seed: u32) -> Result<Option<Tuple>, Error>
Return a random tuple from the index (useful for statistical analysis).
rnd
- random seed
Sourcepub fn min<K>(&self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
pub fn min<K>(&self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
Return a first (minimal) tuple matched the provided key.
key
- encoded key in MsgPack Array format ([part1, part2, ...]
).
Returns a tuple or None
if index is empty
Sourcepub fn max<K>(&self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
pub fn max<K>(&self, key: &K) -> Result<Option<Tuple>, Error>where
K: AsTuple,
Return a last (maximal) tuple matched the provided key.
key
- encoded key in MsgPack Array format ([part1, part2, ...]
).
Returns a tuple or None
if index is empty
Sourcepub fn count<K>(
&self,
iterator_type: IteratorType,
key: &K,
) -> Result<usize, Error>where
K: AsTuple,
pub fn count<K>(
&self,
iterator_type: IteratorType,
key: &K,
) -> Result<usize, Error>where
K: AsTuple,
Count the number of tuple matched the provided key.
type
- iterator typekey
- encoded key in MsgPack Array format ([part1, part2, ...]
).
Sourcepub fn extract_key(&self, tuple: Tuple) -> Tuple
pub fn extract_key(&self, tuple: Tuple) -> Tuple
Extract key from tuple according to key definition of given
index. Returned buffer is allocated on box_txn_alloc()
with
this key.
tuple
- tuple from which need to extract key.