#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.