summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/examples
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/examples')
-rw-r--r--src/third_party/wiredtiger/examples/c/Makefile.am1
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_all.c6
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_async.c2
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_config_parse.c5
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_event_handler.c136
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_extractor.c13
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_schema.c45
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_stat.c37
-rw-r--r--src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_all.java16
-rw-r--r--src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_schema.java11
-rw-r--r--src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_stat.java32
11 files changed, 274 insertions, 30 deletions
diff --git a/src/third_party/wiredtiger/examples/c/Makefile.am b/src/third_party/wiredtiger/examples/c/Makefile.am
index 587204efff1..72fd98aff7b 100644
--- a/src/third_party/wiredtiger/examples/c/Makefile.am
+++ b/src/third_party/wiredtiger/examples/c/Makefile.am
@@ -12,6 +12,7 @@ noinst_PROGRAMS = \
ex_cursor \
ex_data_source \
ex_encrypt \
+ ex_event_handler \
ex_extending \
ex_extractor \
ex_hello \
diff --git a/src/third_party/wiredtiger/examples/c/ex_all.c b/src/third_party/wiredtiger/examples/c/ex_all.c
index 418c99ad6a3..1c036b75461 100644
--- a/src/third_party/wiredtiger/examples/c/ex_all.c
+++ b/src/third_party/wiredtiger/examples/c/ex_all.c
@@ -346,8 +346,7 @@ cursor_ops(WT_SESSION *session)
cursor->set_key(cursor, key);
if ((ret = cursor->remove(cursor)) != 0) {
fprintf(stderr,
- "cursor.remove: %s\n",
- cursor->session->strerror(cursor->session, ret));
+ "cursor.remove: %s\n", wiredtiger_strerror(ret));
return (ret);
}
/*! [Display an error] */
@@ -359,7 +358,8 @@ cursor_ops(WT_SESSION *session)
cursor->set_key(cursor, key);
if ((ret = cursor->remove(cursor)) != 0) {
fprintf(stderr,
- "cursor.remove: %s\n", session->strerror(session, ret));
+ "cursor.remove: %s\n",
+ cursor->session->strerror(cursor->session, ret));
return (ret);
}
/*! [Display an error thread safe] */
diff --git a/src/third_party/wiredtiger/examples/c/ex_async.c b/src/third_party/wiredtiger/examples/c/ex_async.c
index 584c3e54b87..ecdbd2f4fea 100644
--- a/src/third_party/wiredtiger/examples/c/ex_async.c
+++ b/src/third_party/wiredtiger/examples/c/ex_async.c
@@ -218,7 +218,7 @@ main(void)
*/
ret = conn->close(conn, NULL);
- printf("Searched for %d keys\n", ex_asynckeys.num_keys);
+ printf("Searched for %" PRIu32 " keys\n", ex_asynckeys.num_keys);
return (ret);
}
diff --git a/src/third_party/wiredtiger/examples/c/ex_config_parse.c b/src/third_party/wiredtiger/examples/c/ex_config_parse.c
index 124eff21130..be3c78bedd4 100644
--- a/src/third_party/wiredtiger/examples/c/ex_config_parse.c
+++ b/src/third_party/wiredtiger/examples/c/ex_config_parse.c
@@ -30,6 +30,7 @@
* configuration strings.
*/
+#include <inttypes.h>
#include <stdio.h>
#include <string.h>
@@ -99,7 +100,7 @@ main(void)
while ((ret = parser->next(parser, &k, &v)) == 0) {
printf("%.*s:", (int)k.len, k.str);
if (v.type == WT_CONFIG_ITEM_NUM)
- printf("%d\n", (int)v.val);
+ printf("%" PRId64 "\n", v.val);
else
printf("%.*s\n", (int)v.len, v.str);
}
@@ -126,7 +127,7 @@ main(void)
"log.file_max configuration: %s", wiredtiger_strerror(ret));
return (ret);
}
- printf("log file max: %d\n", (int)v.val);
+ printf("log file max: %" PRId64 "\n", v.val);
/*! [nested get] */
ret = parser->close(parser);
diff --git a/src/third_party/wiredtiger/examples/c/ex_event_handler.c b/src/third_party/wiredtiger/examples/c/ex_event_handler.c
new file mode 100644
index 00000000000..ba6807cd56d
--- /dev/null
+++ b/src/third_party/wiredtiger/examples/c/ex_event_handler.c
@@ -0,0 +1,136 @@
+/*-
+ * Public Domain 2014-2016 MongoDB, Inc.
+ * Public Domain 2008-2014 WiredTiger, Inc.
+ *
+ * This is free and unencumbered software released into the public domain.
+ *
+ * Anyone is free to copy, modify, publish, use, compile, sell, or
+ * distribute this software, either in source code form or as a compiled
+ * binary, for any purpose, commercial or non-commercial, and by any
+ * means.
+ *
+ * In jurisdictions that recognize copyright laws, the author or authors
+ * of this software dedicate any and all copyright interest in the
+ * software to the public domain. We make this dedication for the benefit
+ * of the public at large and to the detriment of our heirs and
+ * successors. We intend this dedication to be an overt act of
+ * relinquishment in perpetuity of all present and future rights to this
+ * software under copyright law.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * ex_event_handler.c
+ * Demonstrate how to use the WiredTiger event handler mechanism.
+ *
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <wiredtiger.h>
+
+static const char *home;
+
+int handle_wiredtiger_error(
+ WT_EVENT_HANDLER *, WT_SESSION *, int, const char *);
+int handle_wiredtiger_message(WT_EVENT_HANDLER *, WT_SESSION *, const char *);
+
+/*! [Function event_handler] */
+/*
+ * Create our own event handler structure to allow us to pass context through
+ * to event handler callbacks. For this to work the WiredTiger event handler
+ * must appear first in our custom event handler structure.
+ */
+typedef struct {
+ WT_EVENT_HANDLER h;
+ const char *app_id;
+} CUSTOM_EVENT_HANDLER;
+
+/*
+ * handle_wiredtiger_error --
+ * Function to handle error callbacks from WiredTiger.
+ */
+int
+handle_wiredtiger_error(WT_EVENT_HANDLER *handler,
+ WT_SESSION *session, int error, const char *message)
+{
+ CUSTOM_EVENT_HANDLER *custom_handler;
+
+ /* Cast the handler back to our custom handler. */
+ custom_handler = (CUSTOM_EVENT_HANDLER *)handler;
+
+ /* Report the error on the console. */
+ fprintf(stderr,
+ "app_id %s, thread context %p, error %d, message %s\n",
+ custom_handler->app_id, session, error, message);
+
+ return (0);
+}
+
+/*
+ * handle_wiredtiger_message --
+ * Function to handle message callbacks from WiredTiger.
+ */
+int
+handle_wiredtiger_message(
+ WT_EVENT_HANDLER *handler, WT_SESSION *session, const char *message)
+{
+ /* Cast the handler back to our custom handler. */
+ printf("app id %s, thread context %p, message %s\n",
+ ((CUSTOM_EVENT_HANDLER *)handler)->app_id, session, message);
+
+ return (0);
+}
+/*! [Function event_handler] */
+
+static int
+config_event_handler()
+{
+ WT_CONNECTION *conn;
+ WT_SESSION *session;
+ int ret;
+
+ /*! [Configure event_handler] */
+ CUSTOM_EVENT_HANDLER event_handler;
+
+ event_handler.h.handle_error = handle_wiredtiger_error;
+ event_handler.h.handle_message = handle_wiredtiger_message;
+ /* Set handlers to NULL to use the default handler. */
+ event_handler.h.handle_progress = NULL;
+ event_handler.h.handle_close = NULL;
+ event_handler.app_id = "example_event_handler";
+
+ ret = wiredtiger_open(home,
+ (WT_EVENT_HANDLER *)&event_handler, "create", &conn);
+ /*! [Configure event_handler] */
+
+ /* Make an invalid API call, to ensure the event handler works. */
+ (void)conn->open_session(conn, NULL, "isolation=invalid", &session);
+
+ if (ret == 0)
+ ret = conn->close(conn, NULL);
+
+ return (ret);
+}
+
+int
+main(void)
+{
+ /*
+ * Create a clean test directory for this run of the test program if the
+ * environment variable isn't already set (as is done by make check).
+ */
+ if (getenv("WIREDTIGER_HOME") == NULL) {
+ home = "WT_HOME";
+ (void)system("rm -rf WT_HOME && mkdir WT_HOME");
+ } else
+ home = NULL;
+
+ return (config_event_handler());
+}
diff --git a/src/third_party/wiredtiger/examples/c/ex_extractor.c b/src/third_party/wiredtiger/examples/c/ex_extractor.c
index fff9c79f8e0..8623f4759fc 100644
--- a/src/third_party/wiredtiger/examples/c/ex_extractor.c
+++ b/src/third_party/wiredtiger/examples/c/ex_extractor.c
@@ -99,11 +99,13 @@ my_extract(WT_EXTRACTOR *extractor, WT_SESSION *session,
* key(s). WiredTiger will perform the required operation
* (such as a remove()).
*/
- fprintf(stderr, "EXTRACTOR: index op for year %d: %s %s\n",
+ fprintf(stderr,
+ "EXTRACTOR: index op for year %" PRIu16 ": %s %s\n",
year, first_name, last_name);
result_cursor->set_key(result_cursor, year);
if ((ret = result_cursor->insert(result_cursor)) != 0) {
- fprintf(stderr, "EXTRACTOR: op year %d: error %d\n",
+ fprintf(stderr,
+ "EXTRACTOR: op year %" PRIu16 ": error %d\n",
year, ret);
return (ret);
}
@@ -157,7 +159,7 @@ read_index(WT_SESSION *session)
*/
for (i = 0; i < 10 && RET_OK(ret); i++) {
year = (uint16_t)((rand() % YEAR_SPAN) + YEAR_BASE);
- printf("Year %d:\n", year);
+ printf("Year %" PRIu16 ":\n", year);
cursor->set_key(cursor, year);
if ((ret = cursor->search(cursor)) != 0)
break;
@@ -181,7 +183,7 @@ read_index(WT_SESSION *session)
}
}
if (!RET_OK(ret))
- fprintf(stderr, "Error %d for year %d\n", ret, year);
+ fprintf(stderr, "Error %d for year %" PRIu16 "\n", ret, year);
ret = cursor->close(cursor);
return (ret);
@@ -245,7 +247,8 @@ setup_table(WT_SESSION *session)
cursor->set_key(cursor, p.id);
cursor->set_value(cursor,
p.last_name, p.first_name, p.term_start, p.term_end);
- fprintf(stderr, "SETUP: table insert %d-%d: %s %s\n",
+ fprintf(stderr,
+ "SETUP: table insert %" PRIu16 "-%" PRIu16 ": %s %s\n",
p.term_start, p.term_end,
p.first_name, p.last_name);
ret = cursor->insert(cursor);
diff --git a/src/third_party/wiredtiger/examples/c/ex_schema.c b/src/third_party/wiredtiger/examples/c/ex_schema.c
index fdf02d12302..70fc7eb2e62 100644
--- a/src/third_party/wiredtiger/examples/c/ex_schema.c
+++ b/src/third_party/wiredtiger/examples/c/ex_schema.c
@@ -69,7 +69,7 @@ main(void)
{
POP_RECORD *p;
WT_CONNECTION *conn;
- WT_CURSOR *cursor, *cursor2, *join_cursor;
+ WT_CURSOR *cursor, *cursor2, *join_cursor, *stat_cursor;
WT_SESSION *session;
const char *country;
uint64_t recno, population;
@@ -86,7 +86,8 @@ main(void)
} else
home = NULL;
- if ((ret = wiredtiger_open(home, NULL, "create", &conn)) != 0) {
+ if ((ret = wiredtiger_open(
+ home, NULL, "create,statistics=(fast)", &conn)) != 0) {
fprintf(stderr, "Error connecting to %s: %s\n",
home, wiredtiger_strerror(ret));
return (ret);
@@ -164,7 +165,8 @@ main(void)
ret = cursor->get_key(cursor, &recno);
ret = cursor->get_value(cursor, &country, &year, &population);
printf("ID %" PRIu64, recno);
- printf(": country %s, year %u, population %" PRIu64 "\n",
+ printf(
+ ": country %s, year %" PRIu16 ", population %" PRIu64 "\n",
country, year, population);
}
ret = cursor->close(cursor);
@@ -185,7 +187,8 @@ main(void)
ret = wiredtiger_struct_unpack(session,
value.data, value.size,
"5sHQ", &country, &year, &population);
- printf(": country %s, year %u, population %" PRIu64 "\n",
+ printf(
+ ": country %s, year %" PRIu16 ", population %" PRIu64 "\n",
country, year, population);
}
/*! [List the records in the table using raw mode.] */
@@ -201,7 +204,9 @@ main(void)
cursor->set_key(cursor, 2);
if ((ret = cursor->search(cursor)) == 0) {
ret = cursor->get_value(cursor, &country, &year, &population);
- printf("ID 2: country %s, year %u, population %" PRIu64 "\n",
+ printf(
+ "ID 2: "
+ "country %s, year %" PRIu16 ", population %" PRIu64 "\n",
country, year, population);
}
/*! [Read population from the primary column group] */
@@ -229,8 +234,8 @@ main(void)
cursor->set_key(cursor, "AU\0\0\0");
ret = cursor->search(cursor);
ret = cursor->get_value(cursor, &country, &year, &population);
- printf("AU: country %s, year %u, population %" PRIu64 "\n",
- country, (unsigned int)year, population);
+ printf("AU: country %s, year %" PRIu16 ", population %" PRIu64 "\n",
+ country, year, population);
/*! [Search in a simple index] */
ret = cursor->close(cursor);
@@ -241,8 +246,9 @@ main(void)
cursor->set_key(cursor, "USA\0\0", (uint16_t)1900);
ret = cursor->search(cursor);
ret = cursor->get_value(cursor, &country, &year, &population);
- printf("US 1900: country %s, year %u, population %" PRIu64 "\n",
- country, (unsigned int)year, population);
+ printf(
+ "US 1900: country %s, year %" PRIu16 ", population %" PRIu64 "\n",
+ country, year, population);
/*! [Search in a composite index] */
ret = cursor->close(cursor);
@@ -255,7 +261,7 @@ main(void)
"table:poptable(country,year)", NULL, NULL, &cursor);
while ((ret = cursor->next(cursor)) == 0) {
ret = cursor->get_value(cursor, &country, &year);
- printf("country %s, year %u\n", country, year);
+ printf("country %s, year %" PRIu16 "\n", country, year);
}
/*! [Return a subset of values from the table] */
ret = cursor->close(cursor);
@@ -273,7 +279,7 @@ main(void)
ret = cursor->get_value(cursor, &value);
ret = wiredtiger_struct_unpack(
session, value.data, value.size, "5sH", &country, &year);
- printf("country %s, year %u\n", country, year);
+ printf("country %s, year %" PRIu16 "\n", country, year);
}
/*! [Return a subset of values from the table using raw mode] */
ret = cursor->close(cursor);
@@ -288,7 +294,7 @@ main(void)
while ((ret = cursor->next(cursor)) == 0) {
ret = cursor->get_key(cursor, &country, &year);
ret = cursor->get_value(cursor, &recno);
- printf("row ID %" PRIu64 ": country %s, year %u\n",
+ printf("row ID %" PRIu64 ": country %s, year %" PRIu16 "\n",
recno, country, year);
}
/*! [Return the table's record number key using an index] */
@@ -305,7 +311,7 @@ main(void)
while ((ret = cursor->next(cursor)) == 0) {
ret = cursor->get_key(cursor, &country, &year);
ret = cursor->get_value(cursor, &population);
- printf("population %" PRIu64 ": country %s, year %u\n",
+ printf("population %" PRIu64 ": country %s, year %" PRIu16 "\n",
population, country, year);
}
/*! [Return a subset of the value columns from an index] */
@@ -320,7 +326,7 @@ main(void)
"index:poptable:country_plus_year()", NULL, NULL, &cursor);
while ((ret = cursor->next(cursor)) == 0) {
ret = cursor->get_key(cursor, &country, &year);
- printf("country %s, year %u\n", country, year);
+ printf("country %s, year %" PRIu16 "\n", country, year);
}
/*! [Access only the index] */
ret = cursor->close(cursor);
@@ -350,10 +356,19 @@ main(void)
ret = join_cursor->get_value(join_cursor, &country, &year,
&population);
printf("ID %" PRIu64, recno);
- printf(": country %s, year %u, population %" PRIu64 "\n",
+ printf(
+ ": country %s, year %" PRIu16 ", population %" PRIu64 "\n",
country, year, population);
}
/*! [Join cursors] */
+
+ /*! [Statistics cursor join cursor] */
+ ret = session->open_cursor(session,
+ "statistics:join",
+ join_cursor, NULL, &stat_cursor);
+ /*! [Statistics cursor join cursor] */
+
+ ret = stat_cursor->close(stat_cursor);
ret = join_cursor->close(join_cursor);
ret = cursor2->close(cursor2);
ret = cursor->close(cursor);
diff --git a/src/third_party/wiredtiger/examples/c/ex_stat.c b/src/third_party/wiredtiger/examples/c/ex_stat.c
index 65402230eb8..6c5c15aacc6 100644
--- a/src/third_party/wiredtiger/examples/c/ex_stat.c
+++ b/src/third_party/wiredtiger/examples/c/ex_stat.c
@@ -39,6 +39,7 @@
int print_cursor(WT_CURSOR *);
int print_database_stats(WT_SESSION *);
int print_file_stats(WT_SESSION *);
+int print_join_cursor_stats(WT_SESSION *);
int print_overflow_pages(WT_SESSION *);
int get_stat(WT_CURSOR *cursor, int stat_field, uint64_t *valuep);
int print_derived_stats(WT_SESSION *);
@@ -99,6 +100,37 @@ print_file_stats(WT_SESSION *session)
}
int
+print_join_cursor_stats(WT_SESSION *session)
+{
+ WT_CURSOR *idx_cursor, *join_cursor, *stat_cursor;
+ int ret;
+
+ ret = session->create(
+ session, "index:access:idx", "columns=(v)");
+ ret = session->open_cursor(
+ session, "index:access:idx", NULL, NULL, &idx_cursor);
+ ret = idx_cursor->next(idx_cursor);
+ ret = session->open_cursor(
+ session, "join:table:access", NULL, NULL, &join_cursor);
+ ret = session->join(session, join_cursor, idx_cursor, "compare=gt");
+ ret = join_cursor->next(join_cursor);
+
+ /*! [statistics join cursor function] */
+ if ((ret = session->open_cursor(session,
+ "statistics:join", join_cursor, NULL, &stat_cursor)) != 0)
+ return (ret);
+
+ ret = print_cursor(stat_cursor);
+ ret = stat_cursor->close(stat_cursor);
+ /*! [statistics join cursor function] */
+
+ ret = join_cursor->close(join_cursor);
+ ret = idx_cursor->close(idx_cursor);
+
+ return (ret);
+}
+
+int
print_overflow_pages(WT_SESSION *session)
{
/*! [statistics retrieve by key] */
@@ -204,7 +236,8 @@ main(void)
ret = wiredtiger_open(home, NULL, "create,statistics=(all)", &conn);
ret = conn->open_session(conn, NULL, NULL, &session);
ret = session->create(
- session, "table:access", "key_format=S,value_format=S");
+ session, "table:access",
+ "key_format=S,value_format=S,columns=(k,v)");
ret = session->open_cursor(
session, "table:access", NULL, NULL, &cursor);
@@ -219,6 +252,8 @@ main(void)
ret = print_file_stats(session);
+ ret = print_join_cursor_stats(session);
+
ret = print_overflow_pages(session);
ret = print_derived_stats(session);
diff --git a/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_all.java b/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_all.java
index 09db8e0fd56..5fe767d49bf 100644
--- a/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_all.java
+++ b/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_all.java
@@ -326,6 +326,22 @@ public static int cursor_ops(Session session)
/*! [Display an error] */
}
+ {
+ /*! [Display an error thread safe] */
+ try {
+ String key = "non-existent key";
+ cursor.putKeyString(key);
+ if ((ret = cursor.remove()) != 0) {
+ System.err.println(
+ "cursor.remove: " + wiredtiger.wiredtiger_strerror(ret));
+ return (ret);
+ }
+ } catch (WiredTigerException wte) { /* Catch severe errors. */
+ System.err.println("cursor.remove exception: " + wte);
+ }
+ /*! [Display an error thread safe] */
+ }
+
/*! [Close the cursor] */
ret = cursor.close();
/*! [Close the cursor] */
diff --git a/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_schema.java b/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_schema.java
index be1077ee2df..7cc26acb479 100644
--- a/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_schema.java
+++ b/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_schema.java
@@ -76,7 +76,7 @@ public class ex_schema {
throws WiredTigerException
{
Connection conn;
- Cursor cursor, cursor2, join_cursor;
+ Cursor cursor, cursor2, join_cursor, stat_cursor;
Session session;
String country;
long recno, population;
@@ -106,7 +106,7 @@ public class ex_schema {
home = null;
try {
- conn = wiredtiger.open(home, "create");
+ conn = wiredtiger.open(home, "create,statistics=(fast)");
session = conn.open_session(null);
} catch (WiredTigerException wte) {
System.err.println("WiredTigerException: " + wte);
@@ -368,6 +368,13 @@ public class ex_schema {
", population " + population);
}
/*! [Join cursors] */
+
+ /*! [Statistics cursor join cursor] */
+ stat_cursor = session.open_cursor(
+ "statistics:join", join_cursor, null);
+ /*! [Statistics cursor join cursor] */
+
+ ret = stat_cursor.close();
ret = join_cursor.close();
ret = cursor2.close();
ret = cursor.close();
diff --git a/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_stat.java b/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_stat.java
index b0b83a2d3b2..f8877a4620e 100644
--- a/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_stat.java
+++ b/src/third_party/wiredtiger/examples/java/com/wiredtiger/examples/ex_stat.java
@@ -92,6 +92,33 @@ public class ex_stat {
}
int
+ print_join_cursor_stats(Session session)
+ throws WiredTigerException
+ {
+ Cursor idx_cursor, join_cursor, stat_cursor;
+ int ret;
+
+ ret = session.create("index:access:idx", "columns=(v)");
+ idx_cursor = session.open_cursor("index:access:idx", null, null);
+ ret = idx_cursor.next();
+ join_cursor = session.open_cursor("join:table:access", null, null);
+ ret = session.join(join_cursor, idx_cursor, "compare=gt");
+ ret = join_cursor.next();
+
+ /*! [statistics join cursor function] */
+ stat_cursor = session.open_cursor("statistics:join", join_cursor, null);
+
+ ret = print_cursor(stat_cursor);
+ ret = stat_cursor.close();
+ /*! [statistics join cursor function] */
+
+ ret = join_cursor.close();
+ ret = idx_cursor.close();
+
+ return (ret);
+ }
+
+ int
print_overflow_pages(Session session)
throws WiredTigerException
{
@@ -220,7 +247,8 @@ public class ex_stat {
conn = wiredtiger.open(home, "create,statistics=(all)");
session = conn.open_session(null);
- ret = session.create("table:access", "key_format=S,value_format=S");
+ ret = session.create("table:access",
+ "key_format=S,value_format=S,columns=(k,v)");
cursor = session.open_cursor("table:access", null, null);
cursor.putKeyString("key");
@@ -234,6 +262,8 @@ public class ex_stat {
ret = print_file_stats(session);
+ ret = print_join_cursor_stats(session);
+
ret = print_overflow_pages(session);
ret = print_derived_stats(session);