Size: a a a

2021 June 27

DO

Dmitry Oboukhov in Tarantool
Если индекс так работает, то именно так и должно быть по идее
источник

DO

Dmitry Oboukhov in Tarantool
если сравниваешь скаляр стр со скаляр инт, то один результат
если стр с инт то другой
источник

DO

Dmitry Oboukhov in Tarantool
надо в луа сделать биндинг scalar(bla) (если ещё нет)
источник

MA

Mons Anderson in Tarantool
Нет, не нормально
источник

MA

Mons Anderson in Tarantool
Со скаляром дело не в перфе, а в неочевидности и неопределённости поведения
источник

MA

Mons Anderson in Tarantool
Единственный валидный кейс за скаляр — тот что упомянул Влад: конвертация поля. Всю остальную дичь выпилить и забанить нахрен.
Имплиситы над скалярами работают нормально только тогда, когда полностью разделены операторы над числами (+, <, >, ==) и над строками (.., lt, gt, eq)
источник

DO

Dmitry Oboukhov in Tarantool
вот это должно работать со скалярами
источник

MA

Mons Anderson in Tarantool
По скаляру такое должно быть запрещено
источник

DO

Dmitry Oboukhov in Tarantool
индекс так работает уже
источник

DO

Dmitry Oboukhov in Tarantool
работа индекса в скл должна же поддерживаться
источник

MA

Mons Anderson in Tarantool
И это бред, который надо спилить
источник

IA

Ilya Anfimov in Tarantool
А что, можно вспомнить хоть как типизированный язык программирования без имплисит кастов?
По-моему, это вполне показатель того, что так оно несработает.
источник

MA

Mons Anderson in Tarantool
Это в каком типизированном языке можно сделать string > uuid или number > string?
источник

IA

Ilya Anfimov in Tarantool
Во многих.
Напомню, что всякие python/javascript -- это вполне себе (динамически) типизированные языки.
Впрочем, в C дажэ, например, можно.

Впрочем, что гораздо важнее -- список доступных имплисит кастов и их правила бывают очень разные. Но совсем без них языки не взлетают.
источник

MI

Mergen Imeev in Tarantool
Python 3.8.5 (default, May 27 2021, 13:30:53) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 > '2'
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'
источник

MI

Mergen Imeev in Tarantool
Про джаваскрипт - я не уверен, что это подходящий пример
источник

MI

Mergen Imeev in Tarantool
Честно говоря, не знаю, насколько это правда
источник

MI

Mergen Imeev in Tarantool
Переслано от Kirill Yukhin
источник

MI

Mergen Imeev in Tarantool
Кроме того, имплисит касты между числами планируется оставить в любом случае. Так что нельзя сказать, что никаких не будет
источник

MA

Mons Anderson in Tarantool
Я к тому, что когда ты выходишь за класс чисел, становится абсурдом сравнивать на больше/меньше без явного приведения
То, что индекс как-то для себя упорядочивает классы (он не может этого не делать) — никак не должно влиять на пользователя.
Т.е. с точки зрения реализации индекса должно быть можно в любой момент поменять местами, например, uuid и number в индексе
источник