什么可能导致 KDB 中展开的 table 的初始化类型不匹配?

What might cause a type mismatch on a init of a splayed table in KDB?

我正在尝试创建一个新的、空的、展开的 table:

price_data: ([] s:`$(); t:`timestamp$(); o:`float$(); h:`float$(); l:`float$(); c:`float$(); v:`int$())

`:/home/data/price_data/ set price_data

我遇到类型不匹配错误。我做错了什么?

设置展开表时需要枚举所有符号列,否则会抛出类型错误。

这可以使用包含交易品种值的 .Q.en, which converts the symbol columns to integral values and a corresponding sym 文件来实现。

枚举符号列的类型为 20h 而不是 11h。

/ pre enumeration
q)type price_data`s
11h
/ after enumeration
q)type .Q.en[`:.;price_data]`s
20h
/ since we have no symbols in our table an empty sym file is generated
q)get`:sym
`symbol$()