diff options
author | Don Anderson <dda@ddanderson.com> | 2015-11-11 08:50:30 -0500 |
---|---|---|
committer | Don Anderson <dda@ddanderson.com> | 2015-11-11 08:50:30 -0500 |
commit | 962f79a091bcc062ce46eceb430ce714281ab416 (patch) | |
tree | b6f82cfe8c99095dffd46ee0754ba658be844f6e /src/include/cursor.h | |
parent | c73ee1b0a49184b5bf3ce34bc6fe57c046729f12 (diff) | |
download | mongo-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.h | 11 |
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 { |