Size: a a a

2020 May 27

ЮС

Юрий Скляров... in Tarantool
Отлично, спасибо - запихнул изначально в Call скобки, поэтому не сработало
источник

ЮС

Юрий Скляров... in Tarantool
т.е box...:count()
источник

D

Dmitry in Tarantool
Добрый день! Пытаюсь реализовать автоинкрементный индекс.
    box.space.metric:create_index('primary', {
       parts = {{'id', 'unsigned'}},
       sequence = true,
   })

при создании записи, присваиваю полю id = nil
Но теперь ругается Tuple field 1 type does not match one required by operation: expected unsigned
nil же нужно передавать в поле автоинкрементного индека?
источник

MA

Mons Anderson in Tarantool
nil нельзя передать. если вы присваиваете nil, вы стираете поле в таблице.
используйте box.NULL
(а лучше не пользуйтесь кластерными id вместо автоинкрементов, которые могут работать только в рамках одного инстанса)
источник

D

Dmitry in Tarantool
а что посоветуете использовать? генерить uuid?
источник

DK

Dmitry Khominich in Tarantool
Mons Anderson
nil нельзя передать. если вы присваиваете nil, вы стираете поле в таблице.
используйте box.NULL
(а лучше не пользуйтесь кластерными id вместо автоинкрементов, которые могут работать только в рамках одного инстанса)
В примере указано, что можно передавать nil, если индекс с sequence=true задан:

box.space.T:insert{nil,0}

https://www.tarantool.io/en/doc/2.2/reference/reference_lua/box_schema/#lua-function.space_object.create_index

разве не так?
источник

MA

Mons Anderson in Tarantool
Dmitry
а что посоветуете использовать? генерить uuid?
Либо uuid, либо что-то из https://github.com/moonlibs/id
источник

D

Dmitry in Tarantool
Mons Anderson
Либо uuid, либо что-то из https://github.com/moonlibs/id
понял, спасибо!
источник

MA

Mons Anderson in Tarantool
Dmitry Khominich
В примере указано, что можно передавать nil, если индекс с sequence=true задан:

box.space.T:insert{nil,0}

https://www.tarantool.io/en/doc/2.2/reference/reference_lua/box_schema/#lua-function.space_object.create_index

разве не так?
nil в массиве — это undefined behaviour. на первой позиции он останется, на последней исчезнет, а про средние лучше не вспоминать. используйте NULL
источник

MA

Mons Anderson in Tarantool
а на доку зафайлил тикет :)
https://github.com/tarantool/doc/issues/1341
источник

NR

Nemat Rakhmatov in Tarantool
Mons Anderson
Либо uuid, либо что-то из https://github.com/moonlibs/id
У вас какой из них используется? А если сортировка необходимо?
источник

AP

Andrey Privalov in Tarantool
Парни, салют. В вот в роли картриджа есть функциия init, которая имеет аргумент opts. Я как-то туда свои опции могу прокинуть из instance файла?
источник

DS

Dmitry Sharonov in Tarantool
нет вроде, я как-то пытался
источник

AP

Andrey Privalov in Tarantool
так, значит как-то по другому надо конфиг получать? ну я про кастомные опции
источник

DS

Dmitry Sharonov in Tarantool
конфиг приезжает в apply_config
источник

AP

Andrey Privalov in Tarantool
validate_config говорит о том, что это можно?)
источник

KN

Konstantin Nazarov in Tarantool
Andrey Privalov
Парни, салют. В вот в роли картриджа есть функциия init, которая имеет аргумент opts. Я как-то туда свои опции могу прокинуть из instance файла?
можно
источник

DS

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

KN

Konstantin Nazarov in Tarantool
но не через opts
источник

KN

Konstantin Nazarov in Tarantool
для этого есть модуль argparse
источник