summaryrefslogtreecommitdiff
path: root/src/include/cursor.h
diff options
context:
space:
mode:
authorDon Anderson <dda@ddanderson.com>2015-11-11 08:50:30 -0500
committerDon Anderson <dda@ddanderson.com>2015-11-11 08:50:30 -0500
commit962f79a091bcc062ce46eceb430ce714281ab416 (patch)
treeb6f82cfe8c99095dffd46ee0754ba658be844f6e /src/include/cursor.h
parentc73ee1b0a49184b5bf3ce34bc6fe57c046729f12 (diff)
downloadmongo-962f79a091bcc062ce46eceb430ce714281ab416.tar.gz
WT-1315. Change the 'ends' array to be dynamically sized, needed for
disjunctions of equality joins.
Diffstat (limited to 'src/include/cursor.h')
-rw-r--r--src/include/cursor.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/include/cursor.h b/src/include/cursor.h
index d0825d307c1..a65a95e91f5 100644
--- a/src/include/cursor.h
+++ b/src/include/cursor.h
@@ -281,7 +281,9 @@ struct __wt_cursor_join_endpoint {
#define WT_CURJOIN_END_LT 0x01 /* include values < cursor */
#define WT_CURJOIN_END_EQ 0x02 /* include values == cursor */
#define WT_CURJOIN_END_GT 0x04 /* include values > cursor */
-#define WT_CURJOIN_END_OWNKEY 0x08 /* must free key's data */
+#define WT_CURJOIN_END_GE (WT_CURJOIN_END_GT | WT_CURJOIN_END_EQ)
+#define WT_CURJOIN_END_LE (WT_CURJOIN_END_LT | WT_CURJOIN_END_EQ)
+#define WT_CURJOIN_END_OWN_KEY 0x08 /* must free key's data */
uint8_t flags; /* range for this endpoint */
};
@@ -294,10 +296,13 @@ struct __wt_cursor_join_entry {
uint64_t count; /* approx number of matches */
#define WT_CURJOIN_ENTRY_BLOOM 0x01 /* use a bloom filter */
-#define WT_CURJOIN_ENTRY_OWN_BLOOM 0x02 /* this entry owns the bloom */
+#define WT_CURJOIN_ENTRY_DISJUNCTION 0x02 /* endpoints are or-ed */
+#define WT_CURJOIN_ENTRY_OWN_BLOOM 0x04 /* this entry owns the bloom */
uint8_t flags;
- WT_CURSOR_JOIN_ENDPOINT ends[2]; /* reference endpoints */
+ WT_CURSOR_JOIN_ENDPOINT *ends; /* reference endpoints */
+ size_t ends_allocated;
+ size_t ends_next;
};
struct __wt_cursor_join {