What is the difference between the sym files

https://learninghub.kx.com/forums/topic/what-is-the-difference-between-the-sym-files

In the splayed tables, is does each e.g. date partition have its own sym file for enlist symbols for that date.

Additionally how does this differ from the sym file that exists outside the partitions.


It is an unfortunate coincidence that one of the columns in the table happens to be called "sym". It could be called anything, but usually it is a symbol column that is used as some kind of key (e.g. instrument ID).

In a splayed table, symbol columns must be enumerated (see Splayed tables | Knowledge Base | kdb+ and q documentation - Kdb+ and q documentation (kx.com)). This is the reason for the sym file at the top level.

You could have multiple sym files in a DB, for example one per table, but all of them need to be in the DB root to work.


  1. The sym file in root of the partitioned database is an enumeration file.
  2. Each date does not have it's own enumeration file.
  3. The sym files inside the date/table folders are columns of name sym.

These names are not enforced but it is a common practice that ticker symbols are stored in a column named 'sym' of type symbol and are enumerated against a file called 'sym'.


  • https://code.kx.com/q4m3/14_Introduction_to_Kdb%2B/#143-partitioned-tables
  • https://code.kx.com/q4m3/14_Introduction_to_Kdb%2B/#1422-splayed-tables-with-symbol-columns
  • https://code.kx.com/q/ref/dotq/#ens-enumerate-against-domain