diff options
author | Alison Felizzi <alison.felizzi@mongodb.com> | 2021-07-15 05:57:38 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-07-15 06:24:49 +0000 |
commit | 74e097035e734216070b09bfe0570300a10d6d9d (patch) | |
tree | e389a17452dfb6594083e35000642e522d63e23a | |
parent | 5d1cc91f1fb9ed2dd5026fc8042d375bd320dd90 (diff) | |
download | mongo-74e097035e734216070b09bfe0570300a10d6d9d.tar.gz |
Import wiredtiger: ba6acb0a4bc648e9f8cc8d7f1bff5c436bf64733 from branch mongodb-master
ref: 6576b98e90..ba6acb0a4b
for: 5.1.0
WT-7752 Update packing code according to documentation
4 files changed, 67 insertions, 64 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data index aa67e4b765d..93e4be8c9f3 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": "6576b98e902746d9b54e2ef131330873da70a191" + "commit": "ba6acb0a4bc648e9f8cc8d7f1bff5c436bf64733" } diff --git a/src/third_party/wiredtiger/lang/python/wiredtiger/packing.py b/src/third_party/wiredtiger/lang/python/wiredtiger/packing.py index f2ec68c6a08..fd051b2d6c7 100755 --- a/src/third_party/wiredtiger/lang/python/wiredtiger/packing.py +++ b/src/third_party/wiredtiger/lang/python/wiredtiger/packing.py @@ -46,7 +46,7 @@ Format Python Notes s str fixed-length string S str NUL-terminated string t int fixed-length bit field - u str raw byte array + u bytes raw byte array """ from wiredtiger.packutil import _chr, _is_string, _ord, _string_result, \ diff --git a/src/third_party/wiredtiger/src/docs/schema.dox b/src/third_party/wiredtiger/src/docs/schema.dox index 872fdf395b8..57f2801884f 100644 --- a/src/third_party/wiredtiger/src/docs/schema.dox +++ b/src/third_party/wiredtiger/src/docs/schema.dox @@ -66,24 +66,23 @@ struct module to describe the types of columns in a table: http://docs.python.org/library/struct <table> -@hrow{Format, C Type, Java type, Python type, Notes} +@hrow{Format, C Type, Python type, Notes} @row{\c x, N/A, N/A, N/A, pad byte\, no associated value} -@row{\c b, \c int8_t, \c byte, \c int, signed byte} -@row{\c B, \c uint8_t, \c byte, \c int, unsigned byte} -@row{\c h, \c int16_t, \c short, \c int, signed 16-bit} -@row{\c H, \c uint16_t, \c short, \c int, unsigned 16-bit} -@row{\c i, \c int32_t, \c int, \c int, signed 32-bit} -@row{\c I, \c uint32_t, \c int, \c int, unsigned 32-bit} -@row{\c l, \c int32_t, \c int, \c int, signed 32-bit} -@row{\c L, \c uint32_t, \c int, \c int, unsigned 32-bit} -@row{\c q, \c int64_t, \c long, \c int, signed 64-bit} -@row{\c Q, \c uint64_t, \c long, \c int, unsigned 64-bit} -@row{\c r, \c uint64_t, \c long, \c int, record number} -@row{\c s, \c char[], \c String, \c str, fixed-length string} -@row{\c S, \c char[], \c String, \c str, NUL-terminated string} -@row{\c t, \c uint8_t, \c byte, \c int, fixed-length bit field} -@row{\c u, <code>WT_ITEM *</code>, <code>byte[]</code>, \c str, - raw byte array} +@row{\c b, \c int8_t, \c int, signed byte} +@row{\c B, \c uint8_t, \c int, unsigned byte} +@row{\c h, \c int16_t, \c int, signed 16-bit} +@row{\c H, \c uint16_t, \c int, unsigned 16-bit} +@row{\c i, \c int32_t, \c int, signed 32-bit} +@row{\c I, \c uint32_t, \c int, unsigned 32-bit} +@row{\c l, \c int32_t, \c int, signed 32-bit} +@row{\c L, \c uint32_t, \c int, unsigned 32-bit} +@row{\c q, \c int64_t, \c int, signed 64-bit} +@row{\c Q, \c uint64_t, \c int, unsigned 64-bit} +@row{\c r, \c uint64_t, \c int, record number} +@row{\c s, \c char[], \c str, fixed-length string} +@row{\c S, \c char[], \c str, NUL-terminated string} +@row{\c t, \c uint8_t, \c int, fixed-length bit field} +@row{\c u, <code>WT_ITEM *</code>, \c bytes, raw byte array} </table> The \c 'r' type is used for record number keys in column stores. It is diff --git a/src/third_party/wiredtiger/src/include/packing_inline.h b/src/third_party/wiredtiger/src/include/packing_inline.h index 84390ba7266..fd73ef8764c 100644 --- a/src/third_party/wiredtiger/src/include/packing_inline.h +++ b/src/third_party/wiredtiger/src/include/packing_inline.h @@ -212,51 +212,55 @@ next: } } -#define WT_PACK_GET(session, pv, ap) \ - do { \ - WT_ITEM *__item; \ - switch ((pv).type) { \ - case 'x': \ - break; \ - case 's': \ - case 'S': \ - (pv).u.s = va_arg(ap, const char *); \ - break; \ - case 'U': \ - case 'u': \ - __item = va_arg(ap, WT_ITEM *); \ - (pv).u.item.data = __item->data; \ - (pv).u.item.size = __item->size; \ - break; \ - case 'b': \ - case 'h': \ - case 'i': \ - (pv).u.i = va_arg(ap, int); \ - break; \ - case 'B': \ - case 'H': \ - case 'I': \ - case 't': \ - (pv).u.u = va_arg(ap, unsigned int); \ - break; \ - case 'l': \ - (pv).u.i = va_arg(ap, long); \ - break; \ - case 'L': \ - (pv).u.u = va_arg(ap, unsigned long); \ - break; \ - case 'q': \ - (pv).u.i = va_arg(ap, int64_t); \ - break; \ - case 'Q': \ - case 'r': \ - case 'R': \ - (pv).u.u = va_arg(ap, uint64_t); \ - break; \ - default: \ - /* User format strings have already been validated. */ \ - return (__wt_illegal_value(session, (pv).type)); \ - } \ +#define WT_PACK_GET(session, pv, ap) \ + do { \ + WT_ITEM *__item; \ + switch ((pv).type) { \ + case 'x': \ + break; \ + case 's': \ + case 'S': \ + (pv).u.s = va_arg(ap, const char *); \ + break; \ + case 'U': \ + case 'u': \ + __item = va_arg(ap, WT_ITEM *); \ + (pv).u.item.data = __item->data; \ + (pv).u.item.size = __item->size; \ + break; \ + case 'b': \ + case 'h': \ + case 'i': \ + case 'l': \ + /* Use the int type as compilers promote smaller sizes to int for variadic \ + * arguments. \ + * Note: 'l' accommodates 4 bytes \ + */ \ + (pv).u.i = va_arg(ap, int); \ + break; \ + case 'B': \ + case 'H': \ + case 'I': \ + case 'L': \ + case 't': \ + /* Use the int type as compilers promote smaller sizes to int for variadic \ + * arguments. \ + * Note: 'L' accommodates 4 bytes \ + */ \ + (pv).u.u = va_arg(ap, unsigned int); \ + break; \ + case 'q': \ + (pv).u.i = va_arg(ap, int64_t); \ + break; \ + case 'Q': \ + case 'r': \ + case 'R': \ + (pv).u.u = va_arg(ap, uint64_t); \ + break; \ + default: \ + /* User format strings have already been validated. */ \ + return (__wt_illegal_value(session, (pv).type)); \ + } \ } while (0) /* |