function produce_on_replace(old, new, s, op) local err = producer:produce({ topic = "events", key = "on_replace", value = json.encode({ s = s, op = op, new = new, old = old, }), }) end
Ну если у вас всё так едет, значит, и в триггер всё долетает
долетает, но в print было и есть null вместо uuid. баг какойто
причем вообще неочевидно что нужно как-то дополнительно обрабатывать (null же возвращает без шаманства)
в общем явно какой-то баг, uuid не передает в функции самого тарантула в on_replace. например нельзя сделать select по uuid, который я получаю в on_replace. причем я могу этот uuid передать в кафку и все корректно. если я в этой же функции захардкодить этот uuid, а не использовать тот что получаю в on_replace, то select по нему уже работает.
выглядит, как баг tostring(tuple). @Totktonada можешь глянуть? tarantool> box.tuple.new(require('uuid')()) --- - [f26dea98-26c3-4d3b-a3ee-1fdb6aa9fa11] ... tarantool> tostring(box.tuple.new(require('uuid')())) --- - '[null]' ...
для общего инфо: поведение загадочное, строковые величины видно без танцев с бубном после table.deepcopy({space = s, op = op, new = new, old = old}) для копирования содержимого аргументов
Так если вытащить 1 элемент с uuid из table он тоже null
tarantool> box.tuple.new(require('uuid')())[1] --- - d4e71153-81bd-4d5d-9973-a41020a5fd14 ...
Разобрался. Селект делается
Обсуждают сегодня