[patches] [PATCH 4/7] iproto: move IPROTO_METADATA fields to a new enum, start from 0
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Wed Feb 28 22:36:51 MSK 2018
IPROTO_FIELD_NAME is now a single metadata key, and it is stored
always only inside IPROTO_METADATA. So it can be moved to a
separate enum with metadata keys, starting from 0. This frees
space in enum iproto_key gaps.
Signed-off-by: Vladislav Shpilevoy <v.shpilevoy at tarantool.org>
---
src/box/iproto_constants.c | 3 +--
src/box/iproto_constants.h | 10 +++++++++-
src/box/lua/net_box.lua | 2 +-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/box/iproto_constants.c b/src/box/iproto_constants.c
index 21c3b1696..e90e0062b 100644
--- a/src/box/iproto_constants.c
+++ b/src/box/iproto_constants.c
@@ -86,7 +86,6 @@ const unsigned char iproto_key_type[IPROTO_KEY_MAX] =
/* 0x26 */ MP_MAP, /* IPROTO_VCLOCK */
/* 0x27 */ MP_STR, /* IPROTO_EXPR */
/* 0x28 */ MP_ARRAY, /* IPROTO_OPS */
- /* 0x29 */ MP_STR, /* IPROTO_FIELD_NAME */
/* }}} */
};
@@ -167,7 +166,7 @@ const char *iproto_key_strs[IPROTO_KEY_MAX] = {
"vector clock", /* 0x26 */
"expression", /* 0x27 */
"operations", /* 0x28 */
- "field name", /* 0x29 */
+ NULL, /* 0x29 */
NULL, /* 0x2a */
NULL, /* 0x2b */
NULL, /* 0x2c */
diff --git a/src/box/iproto_constants.h b/src/box/iproto_constants.h
index ea4ab3254..c06092386 100644
--- a/src/box/iproto_constants.h
+++ b/src/box/iproto_constants.h
@@ -87,7 +87,6 @@ enum iproto_key {
/* Also request keys. See the comment above. */
IPROTO_EXPR = 0x27, /* EVAL */
IPROTO_OPS = 0x28, /* UPSERT but not UPDATE ops, because of legacy */
- IPROTO_FIELD_NAME = 0x29,
/* Leave a gap between request keys and response keys */
IPROTO_DATA = 0x30,
@@ -115,6 +114,15 @@ enum iproto_key {
IPROTO_KEY_MAX
};
+/**
+ * Keys, stored in IPROTO_METADATA. They can not be received
+ * in a request. Only sent as response, so no necessity in _strs
+ * or _key_type arrays.
+ */
+enum iproto_metadata_key {
+ IPROTO_FIELD_NAME = 0,
+};
+
#define bit(c) (1ULL<<IPROTO_##c)
#define IPROTO_HEAD_BMAP (bit(REQUEST_TYPE) | bit(SYNC) | bit(REPLICA_ID) |\
diff --git a/src/box/lua/net_box.lua b/src/box/lua/net_box.lua
index 2710b8dad..18d1ce083 100644
--- a/src/box/lua/net_box.lua
+++ b/src/box/lua/net_box.lua
@@ -39,7 +39,7 @@ local IPROTO_SCHEMA_VERSION_KEY = 0x05
local IPROTO_METADATA_KEY = 0x32
local IPROTO_SQL_INFO_KEY = 0x43
local IPROTO_SQL_ROW_COUNT_KEY = 0x44
-local IPROTO_FIELD_NAME_KEY = 0x29
+local IPROTO_FIELD_NAME_KEY = 0
local IPROTO_DATA_KEY = 0x30
local IPROTO_ERROR_KEY = 0x31
local IPROTO_GREETING_SIZE = 128
--
2.14.3 (Apple Git-98)
More information about the Tarantool-patches
mailing list