diff --git a/src/box/alter.cc b/src/box/alter.cc index 681b00484afe005dea8efcd7850f62bf60dba697..e9a3ab0dfa082a4baba805487dcbb4e3a75b39f2 100644 --- a/src/box/alter.cc +++ b/src/box/alter.cc @@ -81,19 +81,16 @@ access_check_ddl(uint32_t owner_uid, enum schema_object_type type) * Support function for index_def_new_from_tuple(..) * Checks tuple (of _index space) and throws a nice error if it is invalid * Checks only types of fields and their count! - * Additionally determines version of tuple structure - * is_166plus is set as true if tuple structure is 1.6.6+ - * is_166plus is set as false if tuple structure is 1.6.5- */ static void -index_def_check_tuple(const struct tuple *tuple, bool *is_166plus) +index_def_check_tuple(const struct tuple *tuple) { - *is_166plus = true; - const mp_type common_template[] = {MP_UINT, MP_UINT, MP_STR, MP_STR}; + const mp_type common_template[] = + {MP_UINT, MP_UINT, MP_STR, MP_STR, MP_MAP, MP_ARRAY}; const char *data = tuple_data(tuple); uint32_t field_count = mp_decode_array(&data); const char *field_start = data; - if (field_count < 6) + if (field_count != 6) goto err; for (size_t i = 0; i < lengthof(common_template); i++) { enum mp_type type = mp_typeof(*data); @@ -101,33 +98,6 @@ index_def_check_tuple(const struct tuple *tuple, bool *is_166plus) goto err; mp_next(&data); } - if (mp_typeof(*data) == MP_UINT) { - /* old 1.6.5- version */ - /* TODO: removed it in newer versions, find all 1.6.5- */ - *is_166plus = false; - mp_next(&data); - if (mp_typeof(*data) != MP_UINT) - goto err; - if (field_count % 2) - goto err; - mp_next(&data); - for (uint32_t i = 6; i < field_count; i += 2) { - if (mp_typeof(*data) != MP_UINT) - goto err; - mp_next(&data); - if (mp_typeof(*data) != MP_STR) - goto err; - mp_next(&data); - } - } else { - if (field_count != 6) - goto err; - if (mp_typeof(*data) != MP_MAP) - goto err; - mp_next(&data); - if (mp_typeof(*data) != MP_ARRAY) - goto err; - } return; err: @@ -137,39 +107,11 @@ index_def_check_tuple(const struct tuple *tuple, bool *is_166plus) for (uint32_t i = 0; i < field_count && p < e; i++) { enum mp_type type = mp_typeof(*data); mp_next(&data); - const char *type_name; - switch (type) { - case MP_UINT: - type_name = "number"; - break; - case MP_STR: - type_name = "string"; - break; - case MP_ARRAY: - type_name = "array"; - break; - case MP_MAP: - type_name = "map"; - break; - default: - type_name = "unknown"; - break; - } - p += snprintf(p, e - p, i ? ", %s" : "%s", type_name); - } - const char *expected; - if (*is_166plus) { - expected = "space id (number), index id (number), " - "name (string), type (string), " - "options (map), parts (array)"; - } else { - expected = "space id (number), index id (number), " - "name (string), type (string), " - "is_unique (number), part count (number) " - "part0 field no (number), " - "part0 field type (string), ..."; + p += snprintf(p, e - p, i ? ", %s" : "%s", mp_type_strs[type]); } - tnt_raise(ClientError, ER_WRONG_INDEX_RECORD, got, expected); + tnt_raise(ClientError, ER_WRONG_INDEX_RECORD, got, + "space id (unsigned), index id (unsigned), name (string), "\ + "type (string), options (map), parts (array)"); } static int @@ -285,8 +227,6 @@ opts_create_from_field(void *opts, const struct opt_def *reg, const char *map, } /** - * Support function for index_def_new_from_tuple(..) - * 1.6.6+ * Decode distance type from message pached string to enum * Does not check message type, MP_STRING expected * Throws an error if the the value does not correspond to any enum value @@ -311,8 +251,6 @@ index_opts_decode_distance(const char *str) } /** - * Support function for index_def_new_from_tuple(..) - * 1.6.6+ * Fill index_opts structure from opts field in tuple of space _index * Throw an error is unrecognized option. * @@ -352,8 +290,7 @@ index_opts_create(struct index_opts *opts, const char *map) extern "C" struct index_def * index_def_new_from_tuple(struct tuple *tuple, struct space *old_space) { - bool is_166plus; - index_def_check_tuple(tuple, &is_166plus); + index_def_check_tuple(tuple); struct index_opts opts; uint32_t id = tuple_field_u32_xc(tuple, BOX_INDEX_FIELD_SPACE_ID); @@ -364,43 +301,20 @@ index_def_new_from_tuple(struct tuple *tuple, struct space *old_space) uint32_t name_len; const char *name = tuple_field_str_xc(tuple, BOX_INDEX_FIELD_NAME, &name_len); - uint32_t part_count; - const char *parts; - if (is_166plus) { - /* 1.6.6+ _index space structure */ - const char *opts_field = - tuple_field(tuple, BOX_INDEX_FIELD_OPTS); - index_opts_create(&opts, opts_field); - parts = tuple_field(tuple, BOX_INDEX_FIELD_PARTS); - part_count = mp_decode_array(&parts); - } else { - /* 1.6.5- _index space structure */ - /* TODO: remove it in newer versions, find all 1.6.5- */ - opts = index_opts_default; - opts.is_unique = - tuple_field_u32_xc(tuple, - BOX_INDEX_FIELD_IS_UNIQUE_165); - part_count = tuple_field_u32_xc(tuple, - BOX_INDEX_FIELD_PART_COUNT_165); - parts = tuple_field(tuple, BOX_INDEX_FIELD_PARTS_165); - } - if (name_len > BOX_NAME_MAX) + if (name_len > BOX_NAME_MAX) { tnt_raise(ClientError, ER_MODIFY_INDEX, tt_cstr(name, BOX_INVALID_NAME_MAX), space_name(old_space), "index name is too long"); + } + index_opts_create(&opts, tuple_field(tuple, BOX_INDEX_FIELD_OPTS)); + const char *parts = tuple_field(tuple, BOX_INDEX_FIELD_PARTS); + uint32_t part_count = mp_decode_array(&parts); struct key_def *key_def = key_def_new(part_count); if (key_def == NULL) diag_raise(); auto key_def_guard = make_scoped_guard([=] { box_key_def_delete(key_def); }); - if (is_166plus) { - /* 1.6.6+ */ - if (key_def_decode_parts(key_def, &parts) != 0) - diag_raise(); - } else { - /* 1.6.5- TODO: remove it in newer versions, find all 1.6.5- */ - if (key_def_decode_parts_165(key_def, &parts) != 0) - diag_raise(); - } + if (key_def_decode_parts(key_def, &parts) != 0) + diag_raise(); struct index_def *index_def = index_def_new(id, index_id, name, name_len, type, &opts, key_def, space_index_key_def(old_space, 0)); @@ -428,25 +342,8 @@ space_opts_create(struct space_opts *opts, struct tuple *tuple) return; const char *data = tuple_field(tuple, BOX_SPACE_FIELD_OPTS); - bool is_170_plus = (mp_typeof(*data) == MP_MAP); - if (!is_170_plus) { - /* Tarantool < 1.7.0 compatibility */ - const char *flags = - tuple_field_cstr_xc(tuple, BOX_SPACE_FIELD_OPTS); - while (flags && *flags) { - while (isspace(*flags)) /* skip space */ - flags++; - if (strncmp(flags, "temporary", strlen("temporary")) == 0) - opts->temporary = true; - flags = strchr(flags, ','); - if (flags) - flags++; - } - } else { - opts_create_from_field(opts, space_opts_reg, data, - ER_WRONG_SPACE_OPTIONS, - BOX_SPACE_FIELD_OPTS); - } + opts_create_from_field(opts, space_opts_reg, data, + ER_WRONG_SPACE_OPTIONS, BOX_SPACE_FIELD_OPTS); } /** diff --git a/src/box/key_def.cc b/src/box/key_def.cc index 65709b515588787552cc0e7350a5b8ff7202a4cf..35ae6740421718cb663cd725e1b43abb51cd0588 100644 --- a/src/box/key_def.cc +++ b/src/box/key_def.cc @@ -607,26 +607,6 @@ key_def_decode_parts(struct key_def *key_def, const char **data) return 0; } -int -key_def_decode_parts_165(struct key_def *key_def, const char **data) -{ - char buf[FIELD_TYPE_NAME_MAX]; - for (uint32_t i = 0; i < key_def->part_count; i++) { - uint32_t field_no = (uint32_t) mp_decode_uint(data); - uint32_t len; - const char *str = mp_decode_str(data, &len); - snprintf(buf, sizeof(buf), "%.*s", len, str); - enum field_type field_type = field_type_by_name(buf); - if (field_type == field_type_MAX) { - diag_set(ClientError, ER_WRONG_INDEX_PARTS, - "unknown field type"); - return -1; - } - key_def_set_part(key_def, i, field_no, field_type); - } - return 0; -} - const struct key_part * key_def_find(const struct key_def *key_def, uint32_t fieldno) { diff --git a/src/box/key_def.h b/src/box/key_def.h index 6126123a273428f6be97514f8d4e9dc852f14ebd..5c4067f322d31c874ff026f764f8df5f0c2ed392 100644 --- a/src/box/key_def.h +++ b/src/box/key_def.h @@ -623,7 +623,6 @@ char * key_def_encode_parts(char *data, const struct key_def *key_def); /** - * 1.6.6+ * Decode parts array from tuple field and write'em to index_def structure. * Throws a nice error about invalid types, but does not check ranges of * resulting values field_no and field_type @@ -633,17 +632,6 @@ key_def_encode_parts(char *data, const struct key_def *key_def); int key_def_decode_parts(struct key_def *key_def, const char **data); -/** - * 1.6.5- - * TODO: Remove it in newer version, find all 1.6.5- - * Decode parts array from tuple fieldw and write'em to index_def structure. - * Does not check anything since tuple must be validated before - * Parts expected to be a sequence of <part_count> 2 * arrays values this: - * NUM, STR, NUM, STR, .., - */ -int -key_def_decode_parts_165(struct key_def *key_def, const char **data); - /** * Returns the part in index_def->parts for the specified fieldno. * If fieldno is not in index_def->parts returns NULL. diff --git a/src/box/schema.h b/src/box/schema.h index 21e4dbccb437a7ac4f9ee4cae6b70847eba73855..6c5e0d97d14b6bc6b810234ab6026c697914da84 100644 --- a/src/box/schema.h +++ b/src/box/schema.h @@ -86,10 +86,7 @@ enum { BOX_INDEX_FIELD_NAME = 2, BOX_INDEX_FIELD_TYPE = 3, BOX_INDEX_FIELD_OPTS = 4, - BOX_INDEX_FIELD_IS_UNIQUE_165 = 4, BOX_INDEX_FIELD_PARTS = 5, - BOX_INDEX_FIELD_PART_COUNT_165 = 5, - BOX_INDEX_FIELD_PARTS_165 = 6, }; /** _user fields. */ diff --git a/test/box/alter.result b/test/box/alter.result index b82666ac3c7285d8768ed66f6392f8f666133f5f..6bebfc468e9554edc6f2cb4d38146adf9942503a 100644 --- a/test/box/alter.result +++ b/test/box/alter.result @@ -148,32 +148,32 @@ space:replace{0} --- - error: Space '331' does not exist ... -_index:insert{_space.id, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'} +_index:insert{_space.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}}} --- - error: Duplicate key exists in unique index 'primary' in space '_index' ... -_index:replace{_space.id, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'} +_index:replace{_space.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}}} --- -- [280, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'] +- [280, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]] ... -_index:insert{_index.id, 0, 'primary', 'tree', 1, 2, 0, 'unsigned', 1, 'unsigned'} +_index:insert{_index.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}, {1, 'unsigned'}}} --- - error: Duplicate key exists in unique index 'primary' in space '_index' ... -_index:replace{_index.id, 0, 'primary', 'tree', 1, 2, 0, 'unsigned', 1, 'unsigned'} +_index:replace{_index.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}, {1, 'unsigned'}}} --- -- [288, 0, 'primary', 'tree', 1, 2, 0, 'unsigned', 1, 'unsigned'] +- [288, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]] ... _index:select{} --- - - [272, 0, 'primary', 'tree', {'unique': true}, [[0, 'string']]] - - [280, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'] + - [280, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]] - [280, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]] - [280, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]] - [281, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]] - [281, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]] - [281, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]] - - [288, 0, 'primary', 'tree', 1, 2, 0, 'unsigned', 1, 'unsigned'] + - [288, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]] - [288, 2, 'name', 'tree', {'unique': true}, [[0, 'unsigned'], [2, 'string']]] - [289, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]] - [289, 2, 'name', 'tree', {'unique': true}, [[0, 'unsigned'], [2, 'string']]] @@ -211,9 +211,9 @@ _space:insert{1000, ADMIN, 'hello', 'memtx', 0} --- - [1000, 1, 'hello', 'memtx', 0] ... -_index:insert{1000, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'} +_index:insert{1000, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}}} --- -- [1000, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'] +- [1000, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]] ... box.space[1000]:insert{0, 'hello, world'} --- diff --git a/test/box/alter.test.lua b/test/box/alter.test.lua index e88b78773e55b5c3c34ef81b931cc3e40da201bb..af0f468bb69404e5c8a1daeac8935b5cadcd1c3d 100644 --- a/test/box/alter.test.lua +++ b/test/box/alter.test.lua @@ -59,15 +59,15 @@ t = _space:delete{space.id} space_deleted = box.space[t[1]] space_deleted space:replace{0} -_index:insert{_space.id, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'} -_index:replace{_space.id, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'} -_index:insert{_index.id, 0, 'primary', 'tree', 1, 2, 0, 'unsigned', 1, 'unsigned'} -_index:replace{_index.id, 0, 'primary', 'tree', 1, 2, 0, 'unsigned', 1, 'unsigned'} +_index:insert{_space.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}}} +_index:replace{_space.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}}} +_index:insert{_index.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}, {1, 'unsigned'}}} +_index:replace{_index.id, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}, {1, 'unsigned'}}} _index:select{} -- modify indexes of a system space _index:delete{_index.id, 0} _space:insert{1000, ADMIN, 'hello', 'memtx', 0} -_index:insert{1000, 0, 'primary', 'tree', 1, 1, 0, 'unsigned'} +_index:insert{1000, 0, 'primary', 'tree', {unique=true}, {{0, 'unsigned'}}} box.space[1000]:insert{0, 'hello, world'} box.space[1000]:drop() box.space[1000] diff --git a/test/box/rtree_misc.result b/test/box/rtree_misc.result index f7878369891b96886c633c222d58dd1c7bd75618..e2c3c02f68ce77cefa1764088627d44e78844bea 100644 --- a/test/box/rtree_misc.result +++ b/test/box/rtree_misc.result @@ -547,29 +547,21 @@ f(box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{2, 'array'} s.index.s:drop() --- ... --- support of 1.6.5 _index structure -f(box.space._index:insert{s.id, 2, 's', 'rtree', 0, 1, 2, 'array'}) ---- -- [0, 2, 's', 'rtree', 0, 1, 2, 'array'] -... -s.index.s:drop() ---- -... -- with wrong args empty_map = setmetatable({}, {__serialize = 'map'}) --- ... box.space._index:insert{s.id, 2, 's', 'rtree', nil, {{2, 'array'}}} --- -- error: 'Wrong record in _index space: got {number, number, string, string, unknown, - array}, expected {space id (number), index id (number), name (string), type (string), - options (map), parts (array)}' +- error: 'Wrong record in _index space: got {unsigned, unsigned, string, string, nil, + array}, expected {space id (unsigned), index id (unsigned), name (string), type + (string), options (map), parts (array)}' ... box.space._index:insert{s.id, 2, 's', 'rtree', {}, {{2, 'array'}}} --- -- error: 'Wrong record in _index space: got {number, number, string, string, array, - array}, expected {space id (number), index id (number), name (string), type (string), - options (map), parts (array)}' +- error: 'Wrong record in _index space: got {unsigned, unsigned, string, string, array, + array}, expected {space id (unsigned), index id (unsigned), name (string), type + (string), options (map), parts (array)}' ... box.space._index:insert{s.id, 2, 's', 'rtree', empty_map, {{2, 'array'}}} --- @@ -613,21 +605,20 @@ box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{}}} - error: 'Wrong index parts: expected a non-empty array; expected field1 id (number), field1 type (string), ...' ... -box.space._index:insert{s.id, 2, 's', 'rtree', 0, 1, 2, 'thing'} +box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{2, 'thing'}}} --- - error: 'Wrong index parts: unknown field type; expected field1 id (number), field1 type (string), ...' ... -box.space._index:insert{s.id, 2, 's', 'rtree', 0, 1, 2, 'array', 'wtf'} +box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{2, 'array'},{'wtf'}}} --- -- error: 'Wrong record in _index space: got {number, number, string, string, number, - number, number, string, string}, expected {space id (number), index id (number), - name (string), type (string), is_unique (number), part count (number) part0 field - no (number), part0 field type (string), ...}' +- error: 'Wrong index parts: a field type is missing; expected field1 id (number), + field1 type (string), ...' ... -box.space._index:insert{s.id, 2, 's', 'rtree', 0, 0} +box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{}}} --- -- error: 'Can''t create or modify index ''s'' in space ''s'': part count must be positive' +- error: 'Wrong index parts: expected a non-empty array; expected field1 id (number), + field1 type (string), ...' ... -- unknown args checked f(box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false, holy = 'cow'}, {{2, 'array'}}}) diff --git a/test/box/rtree_misc.test.lua b/test/box/rtree_misc.test.lua index 7f84d589496c6242465f675301a1f6cbdc09b18c..83f54be2e8b2f57edd8f564b08e7956c48f2ae5d 100644 --- a/test/box/rtree_misc.test.lua +++ b/test/box/rtree_misc.test.lua @@ -199,9 +199,6 @@ function f(t) local r = {} for i, v in ipairs(t) do r[i] = v end r[1] = 0 return -- new index through inserting to _index space f(box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{2, 'array'}}}) s.index.s:drop() --- support of 1.6.5 _index structure -f(box.space._index:insert{s.id, 2, 's', 'rtree', 0, 1, 2, 'array'}) -s.index.s:drop() -- with wrong args empty_map = setmetatable({}, {__serialize = 'map'}) @@ -216,9 +213,9 @@ box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{'no','time'}} box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false, distance = 'lobachevsky'}, {{2, 'array'}}} box.space._index:insert{s.id, 2, 's', 'rtee', {unique = false}, {{2, 'array'}}} box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{}}} -box.space._index:insert{s.id, 2, 's', 'rtree', 0, 1, 2, 'thing'} -box.space._index:insert{s.id, 2, 's', 'rtree', 0, 1, 2, 'array', 'wtf'} -box.space._index:insert{s.id, 2, 's', 'rtree', 0, 0} +box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{2, 'thing'}}} +box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{2, 'array'},{'wtf'}}} +box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false}, {{}}} -- unknown args checked f(box.space._index:insert{s.id, 2, 's', 'rtree', {unique = false, holy = 'cow'}, {{2, 'array'}}}) diff --git a/test/box/temp_spaces.result b/test/box/temp_spaces.result index f0d9a684ef458fb816e59f9cdce5ef7c979143f7..eb4bdb3423a0a1a80f57871e725863e1b5a89ed0 100644 --- a/test/box/temp_spaces.result +++ b/test/box/temp_spaces.result @@ -56,14 +56,14 @@ s:len() --- - 1 ... -_ = _space:update(s.id, {{'=', FLAGS, 'temporary'}}) +_ = _space:update(s.id, {{'=', FLAGS, {temporary = true}}}) --- ... s.temporary --- - true ... -_ = _space:update(s.id, {{'=', FLAGS, ''}}) +_ = _space:update(s.id, {{'=', FLAGS, {temporary = false}}}) --- - error: 'Can''t modify space ''t'': can not switch temporary flag on a non-empty space' @@ -106,12 +106,6 @@ test_run = env.new() --- ... test_run:cmd('restart server default') -FLAGS = 6 ---- -... -_space = box.space._space ---- -... s = box.space.t --- ... @@ -123,66 +117,6 @@ s.temporary --- - true ... --- <!-- Tarantool < 1.7.0 compatibility -_ = _space:update(s.id, {{'=', FLAGS, 'no-temporary'}}) ---- -... -s.temporary ---- -- false -... -_ = _space:update(s.id, {{'=', FLAGS, ',:asfda:temporary'}}) ---- -... -s.temporary ---- -- false -... -_ = _space:update(s.id, {{'=', FLAGS, 'a,b,c,d,e'}}) ---- -... -s.temporary ---- -- false -... -_ = _space:update(s.id, {{'=', FLAGS, 'temporary'}}) ---- -... -s.temporary ---- -- true -... -s:get{1} ---- -... -s:insert{1, 2, 3} ---- -- [1, 2, 3] -... -_ = _space:update(s.id, {{'=', FLAGS, 'temporary'}}) ---- -... -s.temporary ---- -- true -... -_ = _space:update(s.id, {{'=', FLAGS, 'no-temporary'}}) ---- -- error: 'Can''t modify space ''t'': can not switch temporary flag on a non-empty - space' -... -s.temporary ---- -- true -... -s:delete{1} ---- -- [1, 2, 3] -... -_ = _space:update(s.id, {{'=', FLAGS, 'no-temporary'}}) ---- -... --- Tarantool < 1.7.0 compatibility //--> s:drop() --- ... diff --git a/test/box/temp_spaces.test.lua b/test/box/temp_spaces.test.lua index c485b42f1f70cda00cbeb6699a22cc4730f0cefb..4d9f680bd7a3a2d18a85cc07866c2b5118c1fcde 100644 --- a/test/box/temp_spaces.test.lua +++ b/test/box/temp_spaces.test.lua @@ -23,9 +23,9 @@ s:insert{1, 2, 3} s:get{1} s:len() -_ = _space:update(s.id, {{'=', FLAGS, 'temporary'}}) +_ = _space:update(s.id, {{'=', FLAGS, {temporary = true}}}) s.temporary -_ = _space:update(s.id, {{'=', FLAGS, ''}}) +_ = _space:update(s.id, {{'=', FLAGS, {temporary = false}}}) s.temporary -- check that temporary space can be modified in read-only mode (gh-1378) @@ -41,34 +41,8 @@ env = require('test_run') test_run = env.new() test_run:cmd('restart server default') -FLAGS = 6 -_space = box.space._space - s = box.space.t s:len() s.temporary - --- <!-- Tarantool < 1.7.0 compatibility -_ = _space:update(s.id, {{'=', FLAGS, 'no-temporary'}}) -s.temporary -_ = _space:update(s.id, {{'=', FLAGS, ',:asfda:temporary'}}) -s.temporary -_ = _space:update(s.id, {{'=', FLAGS, 'a,b,c,d,e'}}) -s.temporary -_ = _space:update(s.id, {{'=', FLAGS, 'temporary'}}) -s.temporary - -s:get{1} -s:insert{1, 2, 3} - -_ = _space:update(s.id, {{'=', FLAGS, 'temporary'}}) -s.temporary -_ = _space:update(s.id, {{'=', FLAGS, 'no-temporary'}}) -s.temporary - -s:delete{1} -_ = _space:update(s.id, {{'=', FLAGS, 'no-temporary'}}) --- Tarantool < 1.7.0 compatibility //--> - s:drop() s = nil