KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums KX Academy Capstone Project Partitioned table /dbs

  • Capstone Project Partitioned table /dbs

    Posted by philsing24 on December 21, 2022 at 12:00 am

    Hi,

    ls /dbs  // I get  the 4 partitioned values
    “2020.08.03”
    “2020.08.04”
    “2020.08.05”
    “2020.08.06”
    “sym”

    I don’t understand what sym represents.
    when I type cols trade, I don’t see the column sym but I can still run the following statement
    select sym from trade where date=2020.08.05

    what’s the difference between option_id and sym? I see only two 2 differences. Sym contains two more rows containing B and  S ?!

    sym
    —————–
    B
    FB20200720C230
    FB20200720C240

    ….

    S

     

    philsing24 replied 8 months, 2 weeks ago 2 Members · 1 Reply
  • 1 Reply
  • rocuinneagain

    Member
    December 21, 2022 at 12:00 am

    The sym file contains enumerated symbols for an symbol column in any table.

     

    The reason you can select it is that if q fails to find a column of that name it will try to use a global variable , which sym will be.

     

    q)`:tab/ set .Q.en[`:.] ([] a:1 2 3;b:`a`b`c) 
    `:tab/ 
    q)tab:get 
    `:tab/ 
    q)tab 
    a b 
    --- 
    1 a 
    2 b 
    3 c 
    q)select sym from tab 
    sym 
    --- 
    a 
    b 
    c 
    q)sym //sym is in memory 
    `a`b`c 2
    q)nonsense:`one`two`three 
    q)select nonsense from tab //nonsense is not a column but a global variable 
    nonsense 
    -------- 
    one 
    two 
    three 
    q)delete sym from `. /delete sym from memory 
    `. 
    q)tab / now any sym columns show indexes as they cannot resolve their text 
    a b 
    --- 
    1 0 
    2 1 
    3 2

     

    Review some documentation on enumeration and on disk data:

     

Log in to reply.