[Tarantool-discussions] Addition of NUMBER field type

Igor Munkin imun at tarantool.org
Fri Dec 20 17:35:20 MSK 2019


On 19.12.19, Konstantin Osipov wrote:
> * Mergen Imeev <imeevma at tarantool.org> [19/12/19 16:44]:
> > Hi all,
> > I would like to discuss once again the problem of adding a DOUBLE
> > field type.
> > 
> > Suppose we have added a DOUBLE field type to which we can insert
> > data of type MP_DOUBLE in the format MsgPack. The problem is that
> > inserting an integer from Lua, we get an error. This is not so bad
> > for integer cdata, but it is bad for integers od Lua type NUMBER.
> > Currently, we have 5 ways to solve the problem:
> > 

<snipped>

> > 
> > 4) Give to user a function to convert a number to DOUBLE in Lua
> > before inserting into space.
> > 
> > In this case, the user must convert the number to DOUBLE before
> > inserting. We do not add any implicit cast. Very easy to
> > understand and implement. Although the user may be a little
> > confused that he cannot insert INTEGER/UNSIGNED into a DOUBLE
> > field, but this can be solved by writing about this in the
> > documentation.
> > 
> > In addition, if we convert to LuaJIT DOUBLE cdata, then we can use
> > these cdata as the operand of an arithmetic operation. However,
> > arithmetic operations for this type do not work correctly. And it
> > will not be fixed, most likely. It should also be written in the
> > documentation, I think.
> > 

<snipped>

> 
> I like it #4 too - it's cheap & efficient.

Despite the broken arithmetics and assuming no one need this type in
Lua -- yes, this is a good one.

> 
> -- 
> Konstantin Osipov, Moscow, Russia

-- 
Best regards,
IM


More information about the Tarantool-discussions mailing list