summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlison Felizzi <alison.felizzi@mongodb.com>2021-07-15 05:57:38 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-07-15 06:24:49 +0000
commit74e097035e734216070b09bfe0570300a10d6d9d (patch)
treee389a17452dfb6594083e35000642e522d63e23a
parent5d1cc91f1fb9ed2dd5026fc8042d375bd320dd90 (diff)
downloadmongo-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
-rw-r--r--src/third_party/wiredtiger/import.data2
-rwxr-xr-xsrc/third_party/wiredtiger/lang/python/wiredtiger/packing.py2
-rw-r--r--src/third_party/wiredtiger/src/docs/schema.dox33
-rw-r--r--src/third_party/wiredtiger/src/include/packing_inline.h94
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)
/*