Size: a a a

2021 March 26

n

nvkv in Tarantool
% cartridge version
Tarantool Cartridge CLI v2.7.2 linux/amd64 commit: fde10b1
% cartridge pack tgz --version=v1-2021.03.26 |& dumb
  • Packing foods into tgz  
  ⨯ Version should be semantic (major.minor.patch[-count][-commit])
источник

MA

Mons Anderson in Tarantool
Ага, понял, спасибо.
Если забьёте тикет с предложением в https://github.com/tarantool/cartridge-cli/issues/, будет вообще супер
источник

n

nvkv in Tarantool
Mons Anderson
Ага, понял, спасибо.
Если забьёте тикет с предложением в https://github.com/tarantool/cartridge-cli/issues/, будет вообще супер
Спасибоньки, сделаю. Я уже два тикета вам торчу :)
источник

n

nvkv in Tarantool
один тикет
источник

S

Sunsh1ne in Tarantool
Добрый день, нашел багу с SQL запросом. Выполняю его - тарантул падает. можно проверить здесь https://www.tarantool.io/ru/try-dev/

box.execute([[SELECT lua('return math.random(1,100)') as "rand" FROM "_space" ORDER BY "rand" DESC LIMIT 1]])


Проблема в ORDER BY и LIMIT, тк если убрать что либо из этого, то всё работает как надо
источник

АД

Арефьев Дмитрий... in Tarantool
Sunsh1ne
Добрый день, нашел багу с SQL запросом. Выполняю его - тарантул падает. можно проверить здесь https://www.tarantool.io/ru/try-dev/

box.execute([[SELECT lua('return math.random(1,100)') as "rand" FROM "_space" ORDER BY "rand" DESC LIMIT 1]])


Проблема в ORDER BY и LIMIT, тк если убрать что либо из этого, то всё работает как надо
Стесняюсь спросить, а что вы хотели таким добиться?
источник

АД

Арефьев Дмитрий... in Tarantool
Со своей стороны заметил что они не работаю когда делаешь count(1). Но такое в реальном коде не зашьешь...
источник

S

Sunsh1ne in Tarantool
Арефьев Дмитрий
Стесняюсь спросить, а что вы хотели таким добиться?
Это пример чтобы можно было повторить без окружения. Вообще нужно по одному полю исполнять луа код, некая логика по значению поля, потом по получившемуся значению сортировка и ограничение на кол-во записей в ответе.
rand лишь пример. я завел issue https://github.com/tarantool/tarantool/issues/5942
Так же попробовал через хранимку тот же функционал - всё отлично. Мы и так планировали хранимку использовать, просто пока функционал тестил, нашел такую странность
источник

R

R-omk in Tarantool
Sunsh1ne
Это пример чтобы можно было повторить без окружения. Вообще нужно по одному полю исполнять луа код, некая логика по значению поля, потом по получившемуся значению сортировка и ограничение на кол-во записей в ответе.
rand лишь пример. я завел issue https://github.com/tarantool/tarantool/issues/5942
Так же попробовал через хранимку тот же функционал - всё отлично. Мы и так планировали хранимку использовать, просто пока функционал тестил, нашел такую странность
может память лаушке закончилаьс?   что  вообще такое  lua()  ?    оно чтоли на каждую строку в спейсе  парсит и создает новый луашный код?
источник

S

Sunsh1ne in Tarantool
lua() исполняет код на каждую строчку в БД
источник

R

R-omk in Tarantool
хотя в _space все равно не может  быть "много"
источник

R

R-omk in Tarantool
возник  острый вопрос про "стабильные" итераторы.

Если создать итератор  и пока его не крутить , а подождать пару секунд и в противоположное направление от итератора навставлять записей в индекс,   то     должна ли "стабильность" итераторов обеспечивать то что в момент получения первой записи   она  будет удовлетворять начальному условию в итераторе
источник

R

R-omk in Tarantool
R-omk
возник  острый вопрос про "стабильные" итераторы.

Если создать итератор  и пока его не крутить , а подождать пару секунд и в противоположное направление от итератора навставлять записей в индекс,   то     должна ли "стабильность" итераторов обеспечивать то что в момент получения первой записи   она  будет удовлетворять начальному условию в итераторе
источник

VG

Vladislav Grubov in Tarantool
то есть, если не читать из итератора, то он видит будущее?
источник

R

R-omk in Tarantool
судя по коду  если не было инфы предыдущем тапле (первый запуск) то он ищет ближайший который изначально был по условию ..
короче lazy
как тут и написано
https://github.com/tarantool/tarantool/commit/2160e4cbdb90caff0a3c766bd92003d1f7d67d7b

правда с тех пор все переписали уже
источник

AL

Andrey L in Tarantool
Vladislav Grubov
то есть, если не читать из итератора, то он видит будущее?
квантовый итератор
источник

R

R-omk in Tarantool
хах, ну он обладал неопределенностью  до того как это пофиксили)
источник

VG

Vladislav Grubov in Tarantool
R-omk
судя по коду  если не было инфы предыдущем тапле (первый запуск) то он ищет ближайший который изначально был по условию ..
короче lazy
как тут и написано
https://github.com/tarantool/tarantool/commit/2160e4cbdb90caff0a3c766bd92003d1f7d67d7b

правда с тех пор все переписали уже
если я правильно понял, то вот такой код должен выдавать таплы, хотя интуитивно может казаться, что не должен. Чекнул код с 1.10.6 до 2.8.0, вроде везде одинаково. Наверное, на 1.7 он вел себя иначе
do 
  box.cfg{ wal_mode = 'none' }
  box.schema.space.create('test'):create_index('pri')
  iter = box.space.test:pairs({1}, { iterator = box.index.GT })
  for i = 1, 5 do box.space.test:replace{i} end
  return iter:totable()
end
источник

VG

Vladislav Grubov in Tarantool
А, блин, вспомнил! Это кстати абьюзить можно. Если из итератора считать null, то он больше вперед не пойдет, но вот если "знать", что дальше таплов нет, то можно съелдить, дождаться данных, и потом продолжить читать
источник

R

R-omk in Tarantool
> если "знать", что дальше таплов нет, то можно съелдить, дождаться данных, и потом продолжить читать

мы так и делаем в своих gc)
источник