代码之家  ›  专栏  ›  技术社区  ›  A. Henderson

当我收到.Q.l错误时,如何重新加载hdb

kdb
  •  0
  • A. Henderson  · 技术社区  · 3 年前

    enter image description here

    没什么好说的。 我错误地申请了fncol:

    fncol[dir;`tab;`col;{$[x~`false;0b;1b]}]; // replaced all cols with 1 value instead of a list
    

    现在我无法加载hdb

    col对于所有值都需要为0b。

    然后我删除了col并将其正确添加回来,但hdb不再加载

    仅加载有问题的表时

    .z.ex是“in”

    .z.ey是桌子

    .z.ey看起来是这样的:

    (`;+`time`pubTime` ...
    
    0 回复  |  直到 3 年前
        1
  •  1
  •   A. Henderson    3 年前

    这是.d文件的结构问题。

    使用错误的参数应用fncol并没有弄乱.d文件。

    然而,我尝试修复这个问题的步骤(基本上是删除col并用一组默认值将其添加回来)更新了.d文件,使其成为一个空模式,而不是一个符号列表。

    这导致了上述问题。

    为了解决这个问题,我必须遍历所有分区,load.d文件只从模式中提取cols并将其保存下来。

    这是我运行的命令:

    {x set cols get x}each hsym`$system"find -type f -name .d | grep tableName"
    

    这对我很有效。

    hdb也没有加载,但它确实在EOD之后加载(因为.d文件会被EOD过程重置)。即使加载会起作用,但.d错误的所有分区都是不可查询的。

    推荐文章