KDB - 更新表时一次调用的函数数量是否有限制?
KDB - Is there a limit to the number of functions called at one time when updating tables?
我已经 运行使用了一些函数来更新 table,并且我不断添加更多函数,因为我希望更新和调用其他各种项目。我还没有 运行 遇到任何问题(目前有 7 个函数),但我知道可能会有一个限制。我确实发现单个函数有 8 个参数的限制,但没有注意到下面的限制。如果没有,很好。我想在扩大规模时保持警惕。
updateTable: FuncG FuncF FunE FuncD FuncC FuncB FuncA ::; // max number of functions?
t: updateTable t;
我伪造了一个包含大量函数调用的更新语句,看来你没问题:
q)t:([]a:1 2 3)
q)f:{x+1}
q)value "update ",(raze 1000#enlist"f "),"a from t"
a
----
1001
1002
1003
您可能想要做的一件事是从您的函数列表中创建一个函数 composed
:
q)f:{x+1}
q)g:{2*x}
q)h:{x+1+2}
q)(('[;])/)(f;g;h)
{x+1}{2*x}{x+1+2}
q)composed:(('[;])/)(f;g;h)
q)t:([]a:1 2 3)
q)update composed a from t
a
--
9
11
13
这样您的更新语句中只有一个函数,并且它应该可以缩放。
我已经 运行使用了一些函数来更新 table,并且我不断添加更多函数,因为我希望更新和调用其他各种项目。我还没有 运行 遇到任何问题(目前有 7 个函数),但我知道可能会有一个限制。我确实发现单个函数有 8 个参数的限制,但没有注意到下面的限制。如果没有,很好。我想在扩大规模时保持警惕。
updateTable: FuncG FuncF FunE FuncD FuncC FuncB FuncA ::; // max number of functions?
t: updateTable t;
我伪造了一个包含大量函数调用的更新语句,看来你没问题:
q)t:([]a:1 2 3)
q)f:{x+1}
q)value "update ",(raze 1000#enlist"f "),"a from t"
a
----
1001
1002
1003
您可能想要做的一件事是从您的函数列表中创建一个函数 composed
:
q)f:{x+1}
q)g:{2*x}
q)h:{x+1+2}
q)(('[;])/)(f;g;h)
{x+1}{2*x}{x+1+2}
q)composed:(('[;])/)(f;g;h)
q)t:([]a:1 2 3)
q)update composed a from t
a
--
9
11
13
这样您的更新语句中只有一个函数,并且它应该可以缩放。