Size: a a a

2021 July 15

VG

Vladislav Grubov in Tarantool
это да, надо тикет забить
источник

DS

Dmitry Sharonov in Tarantool
какой влад?
источник

DS

Dmitry Sharonov in Tarantool
на 3.х?)
источник

VG

Vladislav Grubov in Tarantool
"нормальный tomap", еще можно было бы каррирование в map поддержать, тогда можно было бы вот так писать:

box.space.test:pairs():drop(0):take(1):map(box.tuple.tomap, {names_only=true}):totable()
источник

AK

Alexey Kuzin in Tarantool
В cartridge-java можно обращаться по полям тупла, он в схему лазит
источник

AK

Alexey Kuzin in Tarantool
А можно вернуть луа-таблицу и она автоматически превратится в Map
источник

AK

Alexey Kuzin in Tarantool
Работает это не только с crud, но и без него (со схемами спейсов на инстансе)
источник

EL

Eugene Leonovich in Tarantool
обращаться это понятно, мне именно интересно возврат результата через iproto-вский select, в которой информации о именах полей нет, поэтому приходится делать доп реквест чтобы вычитать формат
источник

AK

Alexey Kuzin in Tarantool
Все коннекторы так или иначе прикапывают у себя схему для этого
источник

AK

Alexey Kuzin in Tarantool
Хотя возврат схемы вроде как предусмотрен в протоколе
источник

EL

Eugene Leonovich in Tarantool
на сколько я знаю, только в execute. вычитать схему не проблема, мне интересно как построить апи на факте, что она может быть, а может и не быть. как это красиво изобразить в апи
источник

VG

Vladislav Grubov in Tarantool
Мб просто возвращать луа таблички? Или там такой поток, что нужна оптимизация?
источник

EL

Eugene Leonovich in Tarantool

> Мб просто возвращать луа таблички?
а что это значит. вот есть s:select{} который возвращает

- - [1, 'A']
 - [1, 'B']
 - [1, 'C']
 - [2, 'D']
нужно чтобы возвращалось

- - [{id=1, key= 'A']}
     ...
источник

AK

Alexey Kuzin in Tarantool
Ах да, это для SQL, точно.
источник

AK

Alexey Kuzin in Tarantool
Если речь о коннекторе, то только прикапывать схему, если речь о box API
источник

AK

Alexey Kuzin in Tarantool
crud API приносит схему с результатом (но даже у нас пока руки не дошли поддержать такой вариант)
источник

EL

Eugene Leonovich in Tarantool
о коннекторе. не, меня не реализация интересует, а высокоуровневое апи, которое будет юзер дергать. например, на клиенте он может сделать select() и получить числовые ключи, если формат не задан, либо строковые, если задан. Возвращать разный формат данных в зависимости от какого-то внешнего скрытого состояния не есть хорошо с точки зрения эргономики, поэтому нужно либо вводить какой-то явный флажок "верни мне результат со строковыми ключами или ошибку, если формат не задан", либо отдельные методы под каждый вариант. я вот больше про это, думал может кто уже таким озадачился в своем коннекторе
источник

VG

Vladislav Grubov in Tarantool
Если делается execute, то все равно вызывается луа. Можно из нее вернуть луа таблицы, которые сделают :tomap() на таплы, как выше
источник

EL

Eugene Leonovich in Tarantool
а как это будет по скорости, если сравнивать с голым селектом + :format() перед этим
источник

AK

Alexey Kuzin in Tarantool
Я за явный выбор. Хочешь по именам обращаться к полю, дёргай функцию которая возвращает тебе тупл с именами
источник