Save sets
Save sets provide a mechanism for a DataBlade API module to access several rows simultaneously.
When a DataBlade API module retrieves rows from a cursor in an mi_next_row() loop, only one row is current at a time. Each iteration of mi_next_row() overwrites the row from the previous iteration. If your DataBlade API module needs to perform comparisons or other types of processing on more than one row, you can save the rows in a save set. The DataBlade API maintains a save set as a first-in, first-out (FIFO) queue.
The DataBlade
API provides
the save-set structure, MI_SAVE_SET, to hold the rows of a save set.
The following table summarizes the memory operations for a save-set
structure.
Memory duration | Memory operation | Function name |
---|---|---|
PER_STMT_EXEC | Constructor | mi_save_set_create() |
PER_STMT_EXEC | Destructor | mi_save_set_destroy() |
The following table lists the functions that the DataBlade
API provides
for use with a save set.
Save-set operation | DataBlade API function |
---|---|
Determine the number of rows in a save set | mi_save_set_count() |
Create a new save set | mi_save_set_create() |
Delete a row from a save set | mi_save_set_delete() |
Free resources associated with a save set | mi_save_set_destroy() |
Get first row from a save set | mi_save_set_get_first() |
Get last row from a save set | mi_save_set_get_last() |
Get next row from a save set | mi_save_set_get_next() |
Get previous row from a save set | mi_save_set_get_previous() |
Insert a new row into the save set | mi_save_set_insert() |
Determine if a specified row is a member of a save set | mi_save_set_member() |