使用 ascli 传递记录 udf 的参数 - 错误?

Passing parameters for record udf with ascli - bug?

根据文档,ascli 应该能够在对记录应用记录 udf 时接受参数 (docs on ascli command 'udf-record-apply')。

但是,我没能让它发挥作用。这是一个最小的例子:

-- 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 的 cli 中使用时,它会忽略传递给 udf 的任何参数:

$ ascli udf-record-apply test test 1 minimal-example testfunc 12345
{ "debug_param1": null, "debug_param2": null, "debug_param3": null }

我对 ascli 的调用是错误的还是这是一个错误?

您可以通过 ascli 将整数列表(或空列表)传入 UDF。例如:

ascli udf-record-apply test test 1 udfModule funcName [123] [234,235] [1,[2]] []

一些注意事项:
- 参数传递似乎仅适用于整数列表(无字符串、映射等)
- 列表中逗号后没有白色space

与其使用 ascli,不如使用功能更丰富且维护良好的 aql 工具。