Согласно документации, ascli должен иметь возможность принимать аргументы при применении записи udf к записи (docs on ascli command 'udf-record-apply').Передача параметров для записи udf с ascli-bug?
Однако, мне не удалось заставить это работать. Вот минимальный пример:
-- Minimal failing example
function testfunc(rec, param1, param2, param3)
local ret = map()
-- Just print what was passed into UDF
ret['debug_param1'] = param1
ret['debug_param2'] = param2
ret['debug_param3'] = param3
return ret
end
Зарегистрировано ascli udf-put minimal-example.lua
. При использовании с AQL, запись UDF работает отлично:
aql> execute minimal-example.testfunc(12345) on test.test where PK = '1'
+----------------------------------------------------------------+
| testfunc |
+----------------------------------------------------------------+
| {"debug_param1":12345, "debug_param2":NIL, "debug_param3":NIL} |
+----------------------------------------------------------------+
1 row in set (0.000 secs)
Однако при использовании из кли с param1 = 12345, он игнорирует любые параметры, передаваемые в UDF:
$ ascli udf-record-apply test test 1 minimal-example testfunc 12345
{ "debug_param1": null, "debug_param2": null, "debug_param3": null }
Являются ли мои звонки в ascli неверно или это ошибка?
Я нашел, что вы можете использовать квадратные скобки для передачи целых чисел в виде списка отдельных элементов, например. '... testfunc [12345] [23456] [34567]'. Но это не так удобно, и я не понял, как передать строки. – Aaron
Спасибо Aaron, вы хотите опубликовать это как ответ? Попробуй скоро. –
Конечно, Мануэль. Это не идеальный ответ, но он полезен в некоторых случаях. – Aaron