[Tarantool-discussions] Implicit cast for COMPARISON

Nikita Pettik korablev at tarantool.org
Wed Jan 22 17:24:22 MSK 2020


On 22 Jan 17:13, Mergen Imeev wrote:
> Hi! Thanks for answering.
> 
> On Tue, Jan 21, 2020 at 11:09:25AM -0700, Peter Gulutzan wrote:
> > Hi,
> > 
> > On 2020-01-21 4:11 a.m., Mergen Imeev wrote:
> > If the above example is correct, it differs from NoSQL behaviour:
> > box.schema.space.create('T')
> > box.space.T:create_index('I')
> > box.space.T:insert{1}
> > box.space.T:select('A')
> > Currently, returns: Supplied key type of part 0 does not match index part
> > type
> > After fix, returns: Supplied key type of part 0 does not match index part
> > type
> > (No change because the proposed fix is for SQL not Lua)
> > 
> > And, since there is no change suggested for assignment,
> > implicit cast would still occur. Therefore:
> > 
> > CREATE TABLE t (s1 INTEGER PRIMARY KEY);
> > INSERT INTO t VALUES ('1');
> > Currently, returns: no error
> > After fix, returns: no error
> > (No change because assignments cause implicit cast)
> > 
> > SELECT UPPER(FALSE) FROM t;
> > Currently, returns: 'FALSE' (string)
> > After fix, returns: 'FALSE' (string)
> > (No change because functions can cause assignments)
> > 
> > I think that the proposed change is good.
> > 
> > Peter Gulutzan
> > 
> > 
> Still, I think the idea of using SCALAR rules is viable.
> But I suggest adding this as one of the session settings.

IMHO pretty bad idea: too much effort is required to support it;
on the other hand, I can't come up with real use case for this
feature. Configurable type system is an evil.
 


More information about the Tarantool-discussions mailing list