summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Korteland <will.korteland@mongodb.com>2022-09-15 06:07:48 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-15 06:44:15 +0000
commit32cabedc3d83446279ef0e78ed7de81cc4b3fb81 (patch)
tree2028dd2de25cf86c1ee6d2a5aa92c8a4b0001a68
parent771800634538752ddee777510bae894a50d3dbe2 (diff)
downloadmongo-32cabedc3d83446279ef0e78ed7de81cc4b3fb81.tar.gz
Import wiredtiger: b0d1b062b29133950081c5497a638ba8f574c988 from branch mongodb-master
ref: f2c48d93f0..b0d1b062b2 for: 6.2.0-rc0 WT-9577 Implement bounded cursor API for the Datastore cursor (#8264)
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_data_source.c9
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_ds.c24
3 files changed, 32 insertions, 3 deletions
diff --git a/src/third_party/wiredtiger/examples/c/ex_data_source.c b/src/third_party/wiredtiger/examples/c/ex_data_source.c
index 752e3fc95c9..c4bbf8ce793 100644
--- a/src/third_party/wiredtiger/examples/c/ex_data_source.c
+++ b/src/third_party/wiredtiger/examples/c/ex_data_source.c
@@ -234,6 +234,13 @@ my_cursor_remove(WT_CURSOR *wtcursor)
return (0);
}
static int
+my_cursor_bound(WT_CURSOR *wtcursor, const char *config)
+{
+ (void)wtcursor;
+ (void)config;
+ return (0);
+}
+static int
my_cursor_close(WT_CURSOR *wtcursor)
{
(void)wtcursor;
@@ -271,7 +278,7 @@ my_open_cursor(WT_DATA_SOURCE *dsrc, WT_SESSION *session, const char *uri, WT_CO
cursor->wtcursor.update = my_cursor_update;
cursor->wtcursor.remove = my_cursor_remove;
cursor->wtcursor.close = my_cursor_close;
-
+ cursor->wtcursor.bound = my_cursor_bound;
/*
* Configure local cursor information.
*/
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 7c68ca84cfa..ffbed21d4a1 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-master",
- "commit": "f2c48d93f0e3dec7a5576f74d78f85aa3a336f2c"
+ "commit": "b0d1b062b29133950081c5497a638ba8f574c988"
}
diff --git a/src/third_party/wiredtiger/src/cursor/cur_ds.c b/src/third_party/wiredtiger/src/cursor/cur_ds.c
index 0ab7395b8bc..9f1e01f14b5 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_ds.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_ds.c
@@ -95,6 +95,28 @@ __curds_cursor_resolve(WT_CURSOR *cursor, int ret)
}
/*
+ * __curds_bound --
+ * WT_CURSOR.bound method for the data-source cursor type.
+ */
+static int
+__curds_bound(WT_CURSOR *cursor, const char *config)
+{
+ WT_CURSOR *source;
+ WT_DECL_RET;
+ WT_SESSION_IMPL *session;
+
+ source = ((WT_CURSOR_DATA_SOURCE *)cursor)->source;
+
+ CURSOR_API_CALL(cursor, session, bound, NULL);
+
+ WT_ERR(__curds_key_set(cursor));
+ ret = __curds_cursor_resolve(cursor, source->bound(source, config));
+
+err:
+ API_END_RET(session, ret);
+}
+
+/*
* __curds_compare --
* WT_CURSOR.compare method for the data-source cursor type.
*/
@@ -426,7 +448,7 @@ __wt_curds_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, con
__curds_reserve, /* reserve */
__wt_cursor_config_notsup, /* reconfigure */
__wt_cursor_notsup, /* largest_key */
- __wt_cursor_config_notsup, /* bound */
+ __curds_bound, /* bound */
__wt_cursor_notsup, /* cache */
__wt_cursor_reopen_notsup, /* reopen */
__wt_cursor_checkpoint_id, /* checkpoint ID */