Shows some common cursor types and operations.
#include <test_util.h>
static const char *home;
int
{
const char *key, *value;
int ret;
while ((ret = cursor->
next(cursor)) == 0) {
error_check(cursor->
get_key(cursor, &key));
error_check(cursor->
get_value(cursor, &value));
}
return (0);
}
int
{
const char *key, *value;
int ret;
while ((ret = cursor->
prev(cursor)) == 0) {
error_check(cursor->
get_key(cursor, &key));
error_check(cursor->
get_value(cursor, &value));
}
return (0);
}
int
{
return (cursor->
reset(cursor));
}
int
{
error_check(cursor->
bound(cursor,
"action=set,bound=lower"));
return (0);
}
int
{
const char *value;
error_check(cursor->
search(cursor));
error_check(cursor->
get_value(cursor, &value));
return (0);
}
int
{
const char *key, *value;
int exact;
switch (exact) {
case -1:
error_check(cursor->
get_key(cursor, &key));
break;
case 0:
break;
case 1:
error_check(cursor->
get_key(cursor, &key));
break;
}
error_check(cursor->
get_value(cursor, &value));
return (0);
}
int
{
return (cursor->
insert(cursor));
}
int
{
return (cursor->
update(cursor));
}
int
{
return (cursor->
remove(cursor));
}
int
{
wt_timestamp_t start_ts, start_durable_ts, stop_ts, stop_durable_ts;
uint64_t start_txnid, stop_txnid;
uint8_t flags, location, prepare, type;
const char *value;
error_check(cursor->
search(cursor));
error_check(cursor->
get_value(cursor, &start_txnid, &start_ts, &start_durable_ts, &stop_txnid,
&stop_ts, &stop_durable_ts, &type, &prepare, &flags, &location, &value));
return (0);
}
int
main(int argc, char *argv[])
{
home = example_setup(argc, argv);
error_check(
wiredtiger_open(home, NULL,
"create,statistics=(fast)", &conn));
error_check(conn->
open_session(conn, NULL, NULL, &session));
error_check(session->
create(session,
"table:world",
"key_format=r,value_format=5sii,columns=(id,country,population,area)"));
error_check(session->
open_cursor(session,
"table:world", NULL, NULL, &cursor));
error_check(
session->
open_cursor(session,
"table:world(country,population)", NULL, NULL, &cursor));
error_check(session->
open_cursor(session,
"statistics:", NULL, NULL, &cursor));
error_check(session->
create(session,
"table:map",
"key_format=S,value_format=S"));
error_check(session->
open_cursor(session,
"table:map", NULL, NULL, &cursor));
error_check(cursor_insert(cursor));
error_check(cursor_reset(cursor));
error_check(cursor_forward_scan(cursor));
error_check(cursor_reset(cursor));
error_check(cursor_reverse_scan(cursor));
error_check(cursor_search_near(cursor));
error_check(cursor_update(cursor));
error_check(cursor_remove(cursor));
error_check(cursor_insert(cursor));
error_check(cursor->
close(cursor));
error_check(
session->
open_cursor(session,
"file:map.wt", NULL,
"debug=(dump_version=true)", &cursor));
error_check(version_cursor_dump(cursor));
error_check(cursor->
close(cursor));
error_check(conn->
close(conn, NULL));
return (EXIT_SUCCESS);
}
#define WT_NOTFOUND
Item not found.
Definition wiredtiger.in:4140
int wiredtiger_open(const char *home, WT_EVENT_HANDLER *event_handler, const char *config, WT_CONNECTION **connectionp)
Open a connection to a database.
A connection to a WiredTiger database.
Definition wiredtiger.in:2106
int open_session(WT_CONNECTION *connection, WT_EVENT_HANDLER *event_handler, const char *config, WT_SESSION **sessionp)
int close(WT_CONNECTION *connection, const char *config)
A WT_CURSOR handle is the interface to a cursor.
Definition wiredtiger.in:199
int next(WT_CURSOR *cursor)
Return the next record.
int bound(WT_CURSOR *cursor, const char *config)
void set_value(WT_CURSOR *cursor,...)
Set the value for the next operation.
int prev(WT_CURSOR *cursor)
Return the previous record.
int update(WT_CURSOR *cursor)
Update an existing record and optionally insert a record.
int search(WT_CURSOR *cursor)
Return the record matching the key.
int search_near(WT_CURSOR *cursor, int *exactp)
Return the record matching the key if it exists, or an adjacent record.
int insert(WT_CURSOR *cursor)
Insert a record and optionally update an existing record.
int remove(WT_CURSOR *cursor)
Remove a record.
void set_key(WT_CURSOR *cursor,...)
Set the key for the next operation.
int close(WT_CURSOR *cursor)
Close the cursor.
int get_key(WT_CURSOR *cursor,...)
Get the key for the current record.
int get_value(WT_CURSOR *cursor,...)
Get the value for the current record.
int reset(WT_CURSOR *cursor)
Reset the cursor.
All data operations are performed in the context of a WT_SESSION.
Definition wiredtiger.in:822
int create(WT_SESSION *session, const char *name, const char *config)
int open_cursor(WT_SESSION *session, const char *uri, WT_CURSOR *to_dup, const char *config, WT_CURSOR **cursorp)