#include <sm_vas.h> // includes sm.h (where they are declared) static rc_t create_index( const lvid_t& lvid, ndx_t ntype, store_property_t property, const char* key_desc, concurrency_t cc, uint size_kb_hint, // hint on final size in KB serial_t& liid); // for backward-compatibility: static rc_t create_index( const lvid_t& lvid, ndx_t ntype, store_property_t property, const char* key_desc, uint size_kb_hint, // hint on final size in KB serial_t& liid); static rc_t destroy_index( const lvid_t& lvid, const serial_t& liid); static rc_t bulkld_index( const lvid_t& lvid, const serial_t& liid, const lvid_t& s_lvid, const serial_t& s_lfid, sm_du_stats_t& stats); static rc_t bulkld_index( const lvid_t& lvid, const serial_t& liid, sort_stream_i& sorted_stream, sm_du_stats_t& stats); static rc_t print_index( const lvid_t& lvid, const serial_t& liid); static rc_t create_assoc( const lvid_t& lvid, const serial_t& liid, const vec_t& key, const vec_t& el); static rc_t destroy_assoc( const lvid_t& lvid, const serial_t& liid, const vec_t& key, const vec_t& el); static rc_t destroy_all_assoc( const lvid_t& lvid, const serial_t& liid, const vec_t& key, int& num_removed); static rc_t find_assoc( const lvid_t& lvid, const serial_t& liid, const vec_t& key, void* el, smsize_t& elen, // if you don't want the result, // make this 0 on input bool& found);
There are a number of common parameters for these methods:
<key_type_str> ::= <key_type>* <v_key_type> <key_type> ::= <type> <len> <v_key_type> ::= <type> <var> <len> <type> ::= 'i' | 'u' | 'f' | 'b' <var> ::= '*' | NULL <len> ::= [1-9][0-9]*
For example the key_desc "i4f8b*1000" specifies a key that contains: 1. a 4 byte integer 2. an 8 byte float (double) 3. a variable length binary field that could be as long as as a 1000 bytes.
See errors(ssm) for more information on error handling.