[tarantool-patches] Re: [PATCH v2 1/1] schema:frommap() to create table or tuple

v.shpilevoy at tarantool.org v.shpilevoy at tarantool.org
Mon Apr 2 14:19:34 MSK 2018


Hello. Thanks for your contributing! A several (5) minor fixes are left:

1. Please, describe the patch in a commit message body. It would be good, if you
write why the feature is needed, who needs this, and very short description of
the feature itself: API usage example, options description. See Vladimir Davydov
patches as the perfect example.

> 	/* space.schema_version */
> 	lua_pushstring(L, "_schema_version");
> 	luaL_pushuint64(L, box_schema_version());
> 	lua_settable(L, i);

2. Please, update the comment too: /* space._schema_version */ (added '_').

> /**
>  * Get a C pointer for space structure.
>  * Caches the result. Cleans the user(negative) stack itself.
>  * @param Lua space object at top of the Lua stack
>  * @return C structure pointer
>  */
> static int
> lbox_space_ptr_cached(struct lua_State *L)

3. Please, use @retval instead of @return, and put '.' at the end of a sentence.

4. Seems like the following test crashes Tarantool. Please, fix it.

box.cfg{}
format = {{'field1', 'unsigned'}}
s = box.schema.create_space('test', {format = format})
pk = s:create_index('pk')
s:drop()
s:frommap({field1 = 100})

Process 67761 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xe8)
    frame #0: 0x0000000100100b68 tarantool`lbox_space_frommap(L=0x0000000103200378) at space.cc:465
   462 		lbox_space_ptr_cached(L);
   463 		space = (struct space *)lua_topointer(L, -1);
   464 	
-> 465 		dict = space->format->dict;
   466 		lua_createtable(L, space->def->field_count, 0);
   467 	
   468 		lua_pushnil(L);
Target 0: (tarantool) stopped.



> 		if (tuple_fieldno_by_name(dict, key, key_len, key_hash, &fieldno)) {
> 			lua_pushnil(L);
> 			lua_pushstring(L, "Unknown field");
> 			return 2;
> 		}
> 		lua_rawseti(L, -3, fieldno+1);


5. Please, return field name into error message. In the previous patch the error message
was ok. Just do not throw it. And put spaces before and after arithmetic operations.





More information about the Tarantool-patches mailing list